这次学习的目的:
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>
check.jsp
<%@ 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");
}
%>
loginsuccess.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>
图片的插入就是在Web-Root下加一个文件夹,将图片导入,src到文件夹名+图片名即可