利用EL和JSTL技术,改进用户登录页面(login.jsp),当用户信息验证成功则转到主页面(main,jsp)显示问候语,如“用户liming,你好!”,否则转回login.jsp,保留原来用户输入的用户名,并有提示信息:“用户名或密码错误,请重新输入”。
时间: 2023-12-08 11:03:05 浏览: 29
好的,针对您的问题,我可以提供以下解决方案:
1. 在login.jsp页面中添加表单,包括用户名和密码的输入框,以及“登录”按钮。
2. 在表单提交时,将输入的用户名和密码传递给后台进行验证。
3. 后台利用EL表达式和JSTL标签库获取表单中传递的用户名和密码,并与数据库中的数据进行比对。
4. 如果验证成功,则将用户名存入Session中,并跳转至main.jsp页面,利用EL表达式和JSTL标签库获取Session中的用户名,并在页面上显示问候语。
5. 如果验证失败,则返回login.jsp页面,并利用EL表达式和JSTL标签库在页面上显示错误提示信息和保留原来用户输入的用户名。
下面是示例代码(仅供参考,具体实现可能需要根据项目情况进行修改):
login.jsp页面代码:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<h2>用户登录</h2>
<c:if test="${not empty errorMsg}">
<p style="color: red;">${errorMsg}</p>
</c:if>
<form method="post" action="login.do">
<p>
<label>用户名:</label><input type="text" name="username"
value="${not empty param.username ? param.username : ''}" />
</p>
<p>
<label>密码:</label><input type="password" name="password" />
</p>
<button type="submit">登录</button>
</form>
</body>
</html>
```
login.do后台代码:
```
// 获取用户输入的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// 进行验证
if ("admin".equals(username) && "123456".equals(password)) {
// 验证成功,将用户名存入Session中
HttpSession session = request.getSession();
session.setAttribute("username", username);
// 跳转至主页面
response.sendRedirect("main.jsp");
} else {
// 验证失败,返回登录页面,并显示错误提示信息和保留原来用户输入的用户名
request.setAttribute("errorMsg", "用户名或密码错误,请重新输入");
request.setAttribute("username", username);
request.getRequestDispatcher("login.jsp").forward(request, response);
}
```
main.jsp页面代码:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主页面</title>
</head>
<body>
<h2>主页面</h2>
<p>用户<c:out value="${sessionScope.username}" />,你好!</p>
</body>
</html>
```