此Web应用程序开发的基础知识

时间:2016-01-03 04:44:28

标签: java eclipse tomcat servlets web-applications

我正在创建一个薪资系统。我有一个包含employee_id和密码的数据库。我的index.html是登录页面,您输入employee_id和密码,数据库检查详细信息是否正确,如果是,则Welcome.java servlet将您带到打印的页面" Welcome用户"

我想要的是,当员工登录时,它会将他们带到一个带有以下按钮的页面,而不是一个简单地说“#34;欢迎用户":

的屏幕

查看个人信息,查看工资单信息,更改密码

我不知道该怎么做。

以下是我的文件。

的index.html

resources contacts

Login.java(servlet)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="login" method="post">
<h3>
Employee Login
</h3>
 <b>Employee ID:</b> <br>
 <input type="text"name="employee_id" size="20"><br><br>
<b>Password:</b><br>
<input type="password" name="password" size="20"><br><br>
<input type="submit" value="Login"><br><br>
</form>
</body>
</html>

Validate.java(类文件)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Login extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String employee_id = request.getParameter("employee_id");
        String password = request.getParameter("password");
        if(Validate.checkUser(employee_id, password)) { 
            RequestDispatcher rs = request.getRequestDispatcher("Welcome");
            rs.forward(request, response);
        }
        else
        {
           out.println("Employee ID or Password is incorrect. Please try again.");
           RequestDispatcher rs = request.getRequestDispatcher("index.html");
           rs.include(request, response);
        }
    }  


        }

Welcome.java(servlet)

import java.sql.*;
public class Validate
{
    public static boolean checkUser(String employee_id, String password)
    {
        boolean st = false;
        try { 
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", ""); 
            PreparedStatement ps = con.prepareStatement("select * from employee_login where employeeID = ? and pwd = ?");
            ps.setString(1, employee_id);
            ps.setString(2, password);
            ResultSet rs =ps.executeQuery();
             st = rs.next();

         }catch(Exception e)
          {
              e.printStackTrace();
          }
             return st;                 
      }   
    }

的web.xml

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Welcome extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("Welcome user");
      }  
}

2 个答案:

答案 0 :(得分:-1)

您必须更改一行登录servlet RequestDispatcher rs = request.getRequestDispatcher("Welcome"); as RequestDispatcher rs = request.getRequestDispatcher("Options");的代码 并创建一个创建3个按钮的html文件。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Options</title>
</head>

<body>
  <form action="Mainservlet" method="post">
    <h3>
Options
</h3>

    <input type="submit" value="Personalinformation" name="pi">
    <br>
    <br>
    <input type="submit" value="PayslipInformation" name="psi">
    <br>
    <br>
    <input type="submit" value="ChangePassword" name="cp">
    <br>
    <br>
  </form>
</body>

</html>

  

在mainservlet中

if(request.getParameter("pi") != null) {
// Invoke PersonalInformation's job here.
} else if (request.getParameter("psi") != null) {
// Invoke PayslipInformation's job here.
}else if (request.getParameter("cp") != null) {
// Invoke ChangePassword's job here.
}

答案 1 :(得分:-1)

使用您的按钮和其他内容创建一个html或jsp页面,然后通过请求调度程序或仅通过response.sendRedirect()方法从登录servlet重定向到您的页面而不是welcome servlet。