登录界面,保留用户输入的信息
Posted bear-19970220
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录界面,保留用户输入的信息相关的知识,希望对你有一定的参考价值。
问题描述:
当判断出用户输入的 "密码错误" 或 "用户不存在" 返回登录界面后,默认情况下,输入框会被清空,那该如何保留用户输入的信息呢?
运用方法:
1、服务器把获取到的表单数据保存至 request 域中,然后请求转发回登录界面;
2、登录界面(JSP)获取 request 域中的内容,使其成为 <input> 标签的 value 属性值。
服务器端:
如:登录页面 ( Login.jsp ) 把表单提交到服务器 ( LoginServlet ) 中,获取到的参数分别为:username, password,那么:
1、LoginServlet:
request.setAttribute( "usernameInput", username ); // 保存输入的用户名
request.setAttribute( "passwordInput", password ); // 保存输入的密码
request.getRequestDispatcher( "Login.jsp" ).forward( request, response ); // 请求转发至登录页面
2、Login.jsp:
<%
String usernameInput = ""; // 防空处理
String passwordInput = ""; // 防空处理
if( request.getAttribute( "usernameInput" ) != null )
{
usernameInput = ( String ) request.getAttribute( "usernameInput" ); // 获取 request 域中保存的用户名输入
passwordInput = ( String ) request.getAttribute( "passwordInput" ); // 获取密码输入
}
%>
<!-- 替换输入框的 value 值 -->
<form method = " POST " action = " /XXX项目/LoginServlet ">
<input type = " text " value = " <%= usernameInput %> " />
<input type = "password" value = " <%= passwordInput %> " />
</form>
问题追加:
之前用 Session 域保存,好像每次显示的都是上一次的输入。
猜测:Session 域是在获取的时候才进行保存?所以会慢一拍?
以上是关于登录界面,保留用户输入的信息的主要内容,如果未能解决你的问题,请参考以下文章
软件工程02组软件工程组队项目——课程管理小助手界面设计文档