工程架构:
Login:登录界面
Verify 验证界面
注意其逻辑问题,先创建Session,先要获取Session键属性(user)。
如果为空,说明它是新用户。则为其添加两个属性(用户名和访问时间)。
如果不为空,则获取其Session键与值,将内容传至msg字符串。
最后通过重定向或者请求转发共享到Welcome界面
源码:
package com.session.day1019;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class ValidateSession
*/
@WebServlet("/VerifySession")
public class VerifySession extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public VerifySession() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
response.setContentType("text/html;charset=utf-8");
// PrintWriter out = response.getWriter();
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
String msg="welcome";
// 创建session
HttpSession session = request.getSession();
// 获取session键值 如果初识没有user 则为null,为其创建一个user,username
/*先获取它的user键,判断它是新用户(没有user)还是老用户*/
String user = (String)session.getAttribute("user");
// String vt = (String)session.getAttribute("vt");
/*判断用户名密码*/
if("qin".equals(username)&&"123".equals(password)) {
if(user == null) {
// String username = request.getParameter("username");
msg+=username;
/*新用户则为其添加属性*/
session.setAttribute("user", username);
session.setAttribute("vt", System.currentTimeMillis()+"");
}else {
String vt1 = (String)session.getAttribute("vt");
String user1 = (String)session.getAttribute("user");
msg = "welcome back" + user1 +" your last visited time is:"
+new Date(Long.parseLong(vt1)).toString();
}
response.sendRedirect("WelcomeSession?msg="+msg);
}else {
response.sendRedirect("LoginSession");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Welcome界面:
package com.session.day1019;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class WelcomeSession
*/
@WebServlet("/WelcomeSession")
public class WelcomeSession extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public WelcomeSession() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
PrintWriter out = response.getWriter();
out.println(request.getParameter("msg"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
1.输入用户名密码,正确则跳转到verify,不正确则重定向回登录Login界面
2.有Session属性存在,则返回用户名和上次访问时间
3.删除Cookie
显示新用户名