需求:现在有一个用HTML和javascript写的Web登陆页面,你输入用户名和密码后,会通过servlet访问Oracle数据库,检查用户名和密码是否正确。正确却跳转到成功页面;不正确的时候就返回登陆界面,并且登陆页面里有你刚刚输入的用户名和密码。请问:怎么实现返回到这个“有你刚刚输入的用户名和密码”的登陆界面?是用javascript还是用JSP,还是其他?
调试欢乐多
第一行的“<form name="logform" action="#">”的action=“#”,这是提交给本页面处理?他怎么实现判断密码正确性的?<form name="logform" action="#"><table> <tr> <td width="60">用户名:</td> <td><input type="text" id="u" name="u" class="inputbox" maxlength="100" /></td> </tr> <tr> <td>密 码:</td> <td><input type="password" id="p" class="inputbox" maxlength="50" /></td> </tr> <tr id="tr_c" style="display:none;"> <td>验证码:</td> <td><input type="text" id="c" class="inputbox" maxlength="10" /></td> </tr> <tr id="tr_vc" style="display:none;"> <td></td> <td><img id="vcImg" alt="" src="/images/bit.gif" /><a id="aRecode" href="javascript:void(0);" class="font_gray">看不清,换一张</a></td> </tr> <tr> <td></td> <td><input type="checkbox" id="chkRemember" name="chkRemember" style="vertical-align:middle" class="checkbox" /><label for="chkRemember" class="font_red">两周内自动登录</label></td> </tr> <tr> <td></td> <td> <a id="aLogin" class="btn_login" href="javascript:void(0);"><span>登 录</span></a> <a href="/account/forgotpassword" class="font_gray" target="_top">忘记密码</a> </td> </tr> <tr> <td></td><td><span id="sp_err" style="color:#ff0000;"></span></td> </tr> <tr> <td></td> <td><a href="http://news.csdn.net/a/20111223/309628.html" class="font_gray" target="_blank">CSDN会员账号信息修改说明</a></td> </tr></table></form>
我用servlet,strust这个听都没听过。
String password = request.getAtrribute("password"); %>
<input type = "text" name="username" <%if(username!=null)%> value="<%=username %>" <% }%> ....password...那里也一样!!!提交到servlet
后台servlet:首先把用户名跟密码从request中取出来,如果正确把用户名放到session中,否则放到response返回回去登录页面response.setAtrribute("username",username)
,response.setAtrribute("password",password)
1.用ajax实现异步,不刷新页面,直接到数据库验证,这样就可以让相应的用户名和密码报错到了登陆页面上面
2.用el,你现在是跳转到servlet里,但是还是用的是request,这样你的request里面就储存了
然后你在servlet里面做了验证以后,还是要跳转到login页面
在input里面写一个value就行:<input type="text" name="username" value="param.username">
<!--param里是上次的请求,如果没有就不显示也不报错-->
我看到CSDN的登陆表单是:“<form name="logform" action="#">”,这个我不知道他怎么实现的。
<a id="aLogin" class="btn_login" href="javascript:void(0);"><span>登 录</span></a>
应该是js提交的。
request.getRequestDispatcher("login.jsp").forward(request,response);
在登陆页面login.jsp中取得绑定值login_error
我也是java初学者,呵呵
就是让servlet跳转到出错页面:passwordNotCorrect.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
window.alert("用户密码错误!");
history.go(-1);
</script>
</body>
</html>
由javascript调用history.go(-1)方法,回退到前一页面,其实就是调用了浏览器的后退按钮。
只是这个方法后退的有点慢哎~~~
response.sendRedirect("ss.jsp?username="+username+"&password="+password)然后在页面中用request.getParameter(username)来获取
<input type="text" name="username" value="${param.username}">
<!--param里是上次的请求,如果没有就不显示也不报错-->
<!--param外面少了一点东西-->在servlet里面进行判断不就行吗?然后在每个判断下面放一个
request.setAttribute("error","错误提示");
在login里面接受,用js的alert不就行了吗? <%
request.setAttribute("error","密码错误");
%>
<a href="read.jsp">read</a>
<%
if(request.getAttribute("error") != null){
String error = request.getAttribute("error").toString();
//System.out.println(error);
%>
<script language="javascript">
alert("<%=error%>");
</script>
<%
}
%>对于功能的实现我觉得重要的实现效果,对于别人的情况可以仿真,没有必要特别刻意追求被人的实现,技术层面也不再一起,我也是初学者,就是提供一下我实现的方式