当前位置:文档之家› 使用JSP做了一个简单的登录框架

使用JSP做了一个简单的登录框架

使用JSP做了一个简单的登录框架2008-05-05 11:47功能分析:当用户提交表单时,在当前的页面判断用户的名称及密码是否正确,如果不正确则提示“登录失败”。

如果正确则跳转到“欢迎界面”。

问题:防止用户未经登录而直接访问“欢迎界面”。

解决方法:在登录界面里设置session的属性值,在欢迎界面里判断session的属性值不等于空。

此时可以判断出用户是否是通过登录界面登录成功之后跳转到欢迎界面的!共两个文档login.jsp ; 登录界面,提供一个表单供用户输入,并判断是否正确welcome.jsp : 欢迎界面,登录成功后显示信息,如果用户未经登录直接访问,则提示未登录,并自动跳转到登录界面!login.jsp 代码如下:<%@ page contentType="text/html;charset=gb2312"%><!--这是一个表单,用于提交用户名,密码--><form action="login.jsp" method="post">用户名:<input type="text" name="uname"><br>密&nbsp;&nbsp码:<input type="password" name="upass"><br><input type="submit" value="提交"></form><%//判断表单是否输入了内容if(request.getParameter("uname")!=null &&request.getParameter("upass")!=null){//获取表单的内容String name = request.getParameter("uname");String password = request.getParameter("upass");//判断输入的内容是否正确,此处使用字符串与变量进行比较,可以防止第一次运行时出现空指针错误if("yk".equals(name)&&"123".equals(password)) {//设置Session的属性值,用于wellcome页面进行判断是否有属性session.setAttribute("flag","ok");//跳转到欢迎页面response.sendRedirect("welcome.jsp");}else {%><h3>登录失败!!!<h3><%}}%>welcome.jsp代码如下:<%@ page contentType="text/html;charset=gb2312"%><%//判断属性是否为空,防止用户从另外的窗口中未经登录成功便打开此页面而出现登录成功的信息if(session.getAttribute("flag")!=null) {%><h1>登录成功!<h1><%}else {//自动跳转到登录界面response.setHeader("refresh","2;URL=login.jsp");%><h1>您还没有登录,2秒后跳到登录页面<h1><%}%><p>密码<input type="password" name="Password" class="input1"id="mima1" /> <BR>确认密码<input type="password" name="PwdConfirm" class="input1"id="mima2"/><BR><input type="button" value="确认"onclick="panduan()"></p>//Js脚本部分<script type="text/javascript">function panduan(){var mima1=document.getElementById("mima1").value//取出第一个文本框里输如的值密码一var mima2=document.getElementById("mima2").value//取出第二个文本框里输如的值密码二if(mima1==mima2)//2个值比较,做判断{alert("2个密码一样拉")//输出对话框提示document.getElementById("mima1").focus()//焦点定位}else//否则{alert("密码和密码确认不同,请重新输入")//输出对话框提示document.getElementById("mima1").focus()//焦点定位}}</script>登录页面login.jsp,登录后提交到servlet验证<form name="login" action="LoginServlet"><TABLE width="100%" style="cellpadding: 0px; cellspacing: 0px; margin-top: 0px; margin-Left: 0px" style="table-layout:fixed;WORD-BREAK: break-all; WORD-WRAP: break-word"><TR><TD style="color:#4c4743;line-height:160%;" valign="top"width="30%">用户名:</TD><TD style="color:#4c4743;line-height:160%;" valign="top"><input type="text" name="userName" /></TD></TR><TR><TD style="color:#4c4743;line-height:160%;" valign="top"width="30%">密&nbsp;&nbsp;码</TD><TD style="color:#4c4743;line-height:160%;" valign="top"><input type="text" name="password" /></TD></TR><TR><TD style="color:#4c4743;line-height:160%;" valign="top"width="30%"><input type="submit" value="提交" /></TD><TD style="color:#4c4743;line-height:160%;" valign="top"><input type="reset" value="重置" /></TD></TR></TABLE></form>LoginServlet验证:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=GBK");String userName=request.getParameter("userName");String password=request.getParameter("password");Users users=new Users(userName,password);UserBo userbo=new UserBo();if(userbo.checkLogin(users)){HttpSession session=request.getSession();session.setAttribute("users", users);response.sendRedirect("SelectServlet");}else{String script = "<script>alert('用户名或密码错误,请重新登陆');location.href='index.jsp'</script>";response.getWriter().println(script);}}<form>密码1:<input type="password" id="pwd" /><br />密码2:<input type="password" onchange="checkpwd(this);" /><div id="tishi" style="color:red;visibility:hidden;">两次密码不一致!</div></form><script type="text/javascript">function checkpwd(inp){var pwd1=document.getElementById("pwd");var div1=document.getElementById("tishi");if(inp.value!=pwd1.value){div1.style.visibility="visible";inp.focus();}elsediv1.style.visibility="hidden";}</script>out.println(ss);out.println(password2);if(password2.equals(ss))out.println("输入正确");elseout.println("输入错误");。

相关主题