jsp中登录框如果密码错误 用户名保留怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp中登录框如果密码错误 用户名保留怎么做相关的知识,希望对你有一定的参考价值。

JSP做的页面中有用户 名和密码登录框。经判定,如果用户名正确,密码错误,那么用户名保留,让光标在密码框 内,
问具体怎么实现,现在其他都已实现,就是用户名正确 ,密码错误时,用户名和密码全空。请帮助谢谢
给出个很简单的例子。。
比如 用STRUST回显。。
不知道怎么向文本框传值
新手快帮帮忙啊~~

如果你只是提交到当前页面,用简单的script判断用户名和密码都不为空就提交,只需再判断密码为不为空的后面加一个if判断密码是否正确,如果错误,用document.all.username.focus();return false;就可以了.
如果你是提交到servlet的话,servlet经过判断转发到该页面时就是一次刷新页面的过程.所以你的值会全部清空,刷新后相当与一个全新的页面.这种解决的方案是采用异步提交方式,也就通常所说的AJAX技术来实现.
以下是ajax代码.随便写了下,你可以直接拿来用,可以看到效果.
var xmlHttpRequest;
function getXmlHttpRequest()

if(window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
return new XMLHttpRequest();



function get(url)

xmlHttpRequest = getXmlHttpRequest();
xmlHttpRequest.onreadystatechange = check;
xmlHttpRequest.open("get",url,true);
xmlHttpRequest.send(null);


function check()

if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200)
var ret = xmlHttpRequest.responseText;
alert(ret);



你只需调用这里的get()方法传一个你提交的路径上去就可以了,然后在你提交的那个路径的servlet里写一个out.print("密码错误");
他会自动打印密码错误,而不会清空文本框的值.

手动清空文本框的script代码是document.all.username.value="";
参考技术A 用Ajax进行登录判断,当前页面根本不刷新。 参考技术B 先把用户名放到session里,并设置一个标志位来判断是否是这种情况。然后写一段js代码到页面的载入事件中给用户名赋值。
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%
request.getSession().setAttribute("UserName", "cx");
request.getSession().setAttribute("LoginFlag", 1);
%>
<script language="javascript">
function mytest()
var flag;
flag = "<%=session.getAttribute("LoginFlag")%>";
var username;
username = "<%=session.getAttribute("UserName")%>";
if(flag==1)
document.test.name.value = username;

else
document.test.name.value = "";

</script>
</head>
<body onLoad="JavaScript:mytest();">
<form name = "test">
<input type="text" name="name" />
</form>
</body>
</html>
参考技术C 我有三种方案:
一,用框架提供的回显功能:struts或JSF都行。
二,用java或javascript的cookies。
三,用jsp的session内置对象。
具体做法,请稍等......

struts:form结合它所提供的html标签本身就是有回显功能

session:
你的servlet可能是这样

String userName = request.getParameter("userName");
String password = request.getParameter("password");
//验证正确性
//如果正确登录,否则进行下列操作
request.setAttribute(userName, userName);
request.getRequestDispatcher("/index.jsp").forward(request, response);

静态页面应该这样:

...
<input type="text" value="$userName "/>
...
<!--用el来取到服务器发回来的值,也就是你提交的userName-->

这样,就会显示你先前所填写的了!
刚才开会让你久等里,不要意思,向你道歉!
呵呵...本回答被提问者采纳
参考技术D 在Index.jsp页面有(代码:使用Struts)
主要如下:
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> //导入标签

/*
这里的value: user是在Action中查询假如有这个用户名的话就用session.setattribute("user",user);保存之后return mapping.findforward(index);即返回index.jsp主页
*/
<html:form action="/user">
<html:text property="username" value="$user.username"></html:text>
<html:password property="pwd"></html:password>
</html:form>

在formBean (User.java)中有 用户名和密码2个属性:

private String password;
private String username;
Getter 和Setter方法

在Action 中查询 假如有这个用户名的话就用
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
UserForm userForm = (UserForm) form;
String name=userForm.getUsername();
String pwd=userForm.getPassword();
SearchDAO sz=new SearchDAO();
if(sz.search(user))//调用方法查询:这里只查询用户名你可以根据你的实际情况处理

session.setattribute("username",name);
return mapping.findForward(index);//index是Strust配置文件中转向的页面

return null;

/*注:最好:formbean 中用javabean(User.java) 实体对象,以实体进行保存传递,获取,session中也最好保存实体*/

以上是关于jsp中登录框如果密码错误 用户名保留怎么做的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面怎么对齐下面的文字,就是让用户名和密码右对齐,下面提示的小字和文本框对齐

用servlet做一个简单登录,页面用jsp

登录界面,保留用户输入的信息

springboot登录密码错误保留用户名

在CRT中用SSH登录ASA怎么总是显示用户名和验证密码错误啊?怎么解决呢?

java登录窗口,如果用户输入用户名或者密码正确了怎么跳转到一个jsp页面或者是servlet?