当前位置:编程学习 > JAVA >>

登录错误(登录错误后返回之前登录输入的用户名)

index.jsp
登录界面
<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用户登录</title>
<script type="text/javascript">
function check(form){
if(document.getElementById("username").value=="")
{
form.username.focus();
alert("请输入用户名!");
return false;
}

if(document.getElementById("pwd").value=="")
{
form.pwd.focus();
alert("请输入密码!");
return false;
}
}
</script>
</head>
<body>
<form id="form1" name="form1" onsubmit="return check(this);" method="post" action="${pageContext.request.contextPath}/DengLu">
用户名:
<input name="username" type="text" id="username" onblur="check();" value="${username}"/><span>${info}</span><br />
密  码:
<input name="pwd" type="password" id="pwd" onblur="check1();"/><br />
<input type="submit" name="submit" value="提交"/>
<input type="reset" name="reset" value="重置"></input>
</form>
</body>
</html>





servlet  
String uname,upass;
try
{
uname=request.getParameter("username"); //获得用户名和密码,为了防止空指针,进行了异常处理
upass=request.getParameter("pwd");
}
catch(NullPointerException e)
{
System.out.println("非法传递参数");
return;
}
if(uname.trim().equals("")||upass.trim().equals(""))
{
System.out.println("用户名和密码为空");
request.setAttribute("username", uname);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
PreparedStatement st=null;
Connection con=null;
ResultSet rs=null;
String driveclass="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://127.0.0.1:1433;integratedSecurity=true;DatabaseName=CourseDesign_hotel";
String sql = "select * from House_manage where uname=? and upass=?";
try {
Class.forName(driveclass);
con=DriverManager.getConnection(url);
st=con.prepareStatement(sql);
st.setString(1, uname);
st.setString(2, upass);
rs=st.executeQuery();
if(rs.next())
{
System.out.println("用户通过验证");
rs.close();
st.close();
con.close();
response.sendRedirect("operate.jsp");
}
else
{
rs.close();
st.close();
con.close();
request.setAttribute("info","用户或者密码不正确");
request.getRequestDispatcher("index.jsp").forward(request, response);
}

catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



--------------------编程问答-------------------- --------------------编程问答-------------------- 呵呵,也许你可以将这个urname再后台判断完后再传回jsp页面中去,这样不就得到你想要的结果了吗? --------------------编程问答-------------------- 其实你自己想一想很简单啊。
一个form表单的话,value可以从session中读取。
这样在提交表单的时候吧用户名保存到session当中,如果登陆不成功返回的话就从session读取出来然后添加到form的username的value上就可以了。 --------------------编程问答-------------------- 没登陆成功不用放入session.
request.setAttribute("username", uname);
这里都放进去了,前台直接取
request.getAttribute("username"); --------------------编程问答-------------------- 首先用户名和密码最好在前台判断是否为空,如果不为空再进入servlet
在servlet中设置name和pass的get()Set方法,在jsp中直接Namevalue=${name}即可 --------------------编程问答-------------------- <input name="username" type="text" id="username" onblur="check();" value="${username}"/楼主这里不是有了吗? --------------------编程问答-------------------- 然后在request.setAttribute("info","用户或者密码不正确");
后面加一句request.setAttribute("username", uname);
就可以了。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,