java - 将 Servlet 错误消息重定向到 JSP 后保存表单数据
问题描述
我有一个用户登录表单,当密码与数据库中的密码不匹配时,它会显示一条错误消息。我将错误消息重定向到如下所示的表单,但是当它在表单上显示错误消息时,它会删除电子邮件/密码输入字段上的数据。显示错误消息后,我该怎么做才能将数据保留在输入字段中?先感谢您。
//SERVLET 重定向到 JSP
request.setAttribute("errorMessage", "Wrong credentials!");
request.getRequestDispatcher("/Login.jsp").forward(request, response);
//JSP 表单页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>User Log in</title>
</head>
<body>
<form action = "LoginServlet" method="POST">
<h3>Sign In</h3><br>
Email: <input type="text" name="email" required><br>
Password: <input type="password" name="pass" required><br>
<div style="color: #FF0000;">${errorMessage}</div><br>
<input type="submit" name="submit" value="Sign in">
</form>
</body>
</html>
解决方案
我通过添加以下几行解决了这个问题:
//伺服器
request.setAttribute("email",request.getParameter("email"));
request.setAttribute("pass", request.getParameter("pass"));
request.setAttribute("errorMessage", "Wrong credentials!");
request.getRequestDispatcher("/Login.jsp").forward(request, response);
//JSP页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>User Log in</title>
<%@ include file="PageHeader.html" %>
</head>
<body>
<form action = "LoginServlet" method="POST">
<h3>Sign In</h3><br>
Email: <input type="text" name="email" required value="${email}"><br>
Password: <input type="password" name="pass" required value="${pass}"><br>
<div style="color: #FF0000;">${errorMessage}</div><br>
<input type="submit" name="submit" value="Sign in" id="sButton">
</form>
</body>
</html>
推荐阅读
- css - 添加带有边框和集中文本的 Bootstrap 面板
- azure - 将 PySpark Dataframe 写入 Azure Synapse 时面临的问题
- dynamic - 黑鸭动态参考问题
- amazon-web-services - 无法为 ECR 验证我的 AWS 凭证
- autodesk-forge - 将 Forge Viewer 按钮映射到外部按钮
- sas - 如何在SAS的新行中合并两列?
- sql - 如何在 Microsoft SQL Server 中构建实用程序矩阵表?
- laravel - 在 vuejs 中处理 Http Exception 错误消息的最佳方法是什么?
- odoo - 继承家庭控制器odoo 13
- html - 我的浏览器如何解释“
“?