模拟实现一个用户登录功能,用户登陆成功后,跳转后的页面显示用户的用户名和密码。假设用户登录的用户名为admin,密码为123,要求使用EL表达式实现用户名和密码的显示。 提示:可以通过servlet实现参数设置,将请求转发至jsp页面进行显示。
时间: 2024-11-06 12:36:37 浏览: 23
为了模拟实现一个用户登录功能,并通过EL表达式在JSP页面上显示用户名和密码,你可以按照以下步骤操作:
1. 创建一个简单的Servlet(例如LoginServlet.java),用于处理用户登录请求:
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = "admin";
String password = "123";
// 检查用户名和密码是否匹配(这里仅为演示,实际应用应从数据库查询)
if (username.equals(request.getParameter("username")) && password.equals(request.getParameter("password"))) {
// 设置session属性存储用户信息
HttpSession session = request.getSession();
session.setAttribute("username", username);
session.setAttribute("password", "****"); // 对密码进行安全处理,显示部分字符
// 使用EL表达式设置重定向目标URL
response.sendRedirect("display.jsp?username=" + username);
} else {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid credentials");
}
}
}
```
2. 创建一个JSP页面(例如display.jsp),使用EL表达式获取并显示用户名:
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Display User</title>
</head>
<body>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<h1>Welcome, <%= ((UserSession)session.getAttribute("username")).getUsername() %>!</h1>
</body>
</html>
```
在这里,`UserSession`是一个自定义的标签库,用于简化对session数据的访问。它包含一个`getUsername()`方法返回用户名。
阅读全文