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

Basics of this web application development

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

的页面

我想要的是,当员工登录时,它会将他们带到一个带有以下按钮的页面,而不是一个简单显示 "Welcome user" 的屏幕:

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

我不知道该怎么做。

下面是我的文件。

index.html

<!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>

Login.java (servlet)

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);
        }
    }  


        }

Validate.java(class 文件)

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;                 
      }   
    }

Welcome.java (servlet)

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");
      }  
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >

    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>Login</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Welcome</servlet-name>
        <servlet-class>Welcome</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Welcome</servlet-name>
        <url-pattern>/Welcome</url-pattern>
    </servlet-mapping>

</web-app>

您必须更改登录 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>

In 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.
}

使用您的按钮和其他内容创建一个 html 或 jsp 页面,然后通过请求调度程序或仅通过 response.sendRedirect( ) 方法。