这次学习的目的:
1继续熟悉用户登录的各种写法
2体会session的用法
3在登录失败后在页面显示5秒后自动跳转
session对象常用方法:
1 getCreation Time()返回session对象的建立时间(注意是秒,所以需要更改时间格式)
2,String getId()返回seeion创建时的唯一编号
3setAttribute(String name ,Object value)//将某个值value赋给变量名为name的字符串//比如你提交了表单,表单提交到某一个页面处理,但是如果除了这两个页面,其他页面也想获得用户信息,就可以在处理时放入session中,以后请求session中的name即可(类似全局变量的感觉))
4,getAttribute(String name)//获得对象名
自动跳转:<meta http-equiv="refresh" content="5;url=login.jsp">
content里是时间,这里是5秒,url是5秒后跳转的页面,比如可以用于登录失败后自动跳转回登录界面
request.getRequestDispatcher("loginsuccess.jsp").forward(request,response);
请求重定向与请求转发的区别
- 请求重定向
- :客户端行为,request.sendRedirect(location),本质上说等同于两次请求,前一次请求的对象不会保存,地址栏的URL地址会改变
- 请求转发
- :服务器行为,request.getRequestDispatcher(location).forward(request,response),一次请求,转发后请求对象会保存,地址栏的URL地址不会改变
- 现在说明下两种方式的不同,重定向只是单纯的跳转到指定页面,而转发实际上是服务器把你提交的数据一起重定向到指定页面
- 通俗的说,重定向不携带数据,转发携带数据
比如我处理数据是在check.jsp里的,我用请求重定向来处理登录失败的情况,那么会跳转到loginfail.jsp(当然loginfail.jsp里又有一个自动跳转到login.jsp)
而用请求转发来处理登录成功的情况,并不会跳转,还是check.jsp
login.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <html> <head> <title> 用户登录 </title> </head> <body> <div> <a href="#"><img src="sor/2.jpg" width="1000" height="200"></a> </div> <div> <form action="check.jsp" method="post"> <label>用户名:</label> <input name="username" value="" /> <label>密码:</label> <input type="password" name="password" value=""> <input type="submit" value="登录:"/> </form> </div> </body> </html>
<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <% String username =""; String password =""; request.setCharacterEncoding("utf-8"); username =request.getParameter("username"); password= request.getParameter("password"); if (username.equals("fengsigaoju")&&password.equals("123456")) { session.setAttribute("loginusername",username);//这里保存时因为接下来loginsuccess.jsp里要显示***登录成功,提前存入session中 request.getRequestDispatcher("loginsuccess.jsp").forward(request,response); } else { response.sendRedirect("loginfail.jsp"); } %>
<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <% String login=""; if (session.getAttribute("loginusername")!=null) login=session.getAttribute("loginusername").toString(); %> <html> <head> <title> 用户登录 </title> </head> <body> <div> <a href="#"><img src="sor/2.jpg" width="1000" height="600"></a> </div> <div> 登陆成功,欢迎您<%= login %> </div> </body> </html>
loginfail.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <meta http-equiv="refresh" content="5;url=login.jsp"> <html> <head> <title> 用户登录 </title> </head> <body> <div> <a href="#"><img src="sor/2.jpg" width="1000" height="400"></a> </div> <div> <h1>登录失败</h1> </div> </body> </html>