用Session检测初访者

工程架构:

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

显示新用户名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值