Java写一个网站登录功能

需求分析:

  1. 用户打开登录页面,输入用户名和密码。
  2. 系统判断用户名和密码是否正确,若正确,则登录成功,跳转至用户首页;否则提示用户用户名或密码错误。

完整代码:

登录页面(login.jsp):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>
<form method="post" action="login">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>

登录处理Servlet(LoginServlet.java):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

// 获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");

// 验证用户名和密码是否正确
boolean isValidUser = checkUser(username, password);

if (isValidUser) {
// 登录成功,跳转至用户首页
response.sendRedirect("user.jsp");
} else {
// 登录失败,提示用户名或密码错误
PrintWriter out = response.getWriter();
out.println("<script>alert('Username or password is incorrect.');</script>");
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
rd.include(request, response);
}
}

private boolean checkUser(String username, String password) {
// 这里可以进行验证用户名和密码的逻辑处理,例如访问数据库或者文件系统等。
// 如果用户名和密码正确,返回true;否则返回false。
// 在此演示中,假设用户名为admin,密码为123456。
if (username.equals("admin") && password.equals("123456")) {
return true;
} else {
return false;
}
}
}

用户首页(user.jsp):

1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>User Page</title>
</head>
<body>
<h1>Welcome, User!</h1>
<p>You have successfully logged in.</p>
</body>
</html>

测试:

  1. 在Eclipse中创建一个Dynamic Web Project,将上述代码分别保存为login.jsp、LoginServlet.java和user.jsp。

  2. 在WebContent/WEB-INF目录下创建web.xml文件,配置Servlet。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <web-app>
    <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
    </web-app>
  3. 运行项目,打开登录页面,输入用户名和密码,点击登录按钮。

  4. 如果用户名和密码正确,则跳转至用户首页;否则提示
    用户名或密码错误,提示信息会出现在登录页面,并且不会跳转到用户首页。

上线:

  1. 将项目部署到一个Web服务器上,例如Tomcat。
  2. 配置服务器的相关参数,例如端口号、上下文路径等。
  3. 配置服务器的安全参数,例如HTTPS、访问控制等。
  4. 将代码和配置文件打包成war包,上传至服务器,并启动Web服务器。
  5. 在浏览器中输入服务器的地址和端口号,打开登录页面,进行登录。

注意事项:

  1. 密码应该采用加密存储,不应该明文存储在数据库或文件中。
  2. 用户名和密码应该采用HTTPS协议传输,避免被窃听或篡改。
  3. 应该对用户输入的用户名和密码进行安全性检查,防止SQL注入、XSS攻击等漏洞。