工程架构:

用Session检测初访者

Login:登录界面

用Session检测初访者

Verify 验证界面

用Session检测初访者

注意其逻辑问题,先创建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界面
用Session检测初访者

2.有Session属性存在,则返回用户名和上次访问时间

用Session检测初访者

3.删除Cookie

用Session检测初访者

显示新用户名

用Session检测初访者

相关文章:

  • 2022-12-23
  • 2021-04-24
  • 2021-10-05
  • 2021-09-28
  • 2022-12-23
  • 2021-06-28
  • 2021-11-16
  • 2022-01-14
猜你喜欢
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
  • 2021-04-25
  • 2022-12-23
相关资源
相似解决方案