JavaWeb基础 session isNew 判断session是新生成的 还是旧有的

礼悟:
     好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
          虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。


javaEE:7           
       javaSE:1.8
          JSTL:1.2.2  
      server:tomcat 8.5
    browser:Chrome/Firefox
             os:windows7 x64
            ide:MyEclipse 2017

项目结构

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Day11</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
  	<servlet-name>NewSessionServlet</servlet-name>
  	<servlet-class>com.jizuiku.servlet.NewSessionServlet</servlet-class>
  </servlet>

  <servlet-mapping>
  	<servlet-name>NewSessionServlet</servlet-name>
  	<url-pattern>/NewSessionServlet</url-pattern>
  </servlet-mapping>

  <servlet>
  	<servlet-name>OldSessionServlet</servlet-name>
  	<servlet-class>com.jizuiku.servlet.OldSessionServlet</servlet-class>
  </servlet>

  <servlet-mapping>
  	<servlet-name>OldSessionServlet</servlet-name>
  	<url-pattern>/OldSessionServlet</url-pattern>
  </servlet-mapping>

</web-app>

NewSessionServlet.java

package com.jizuiku.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 *
 * @author 博客园-给最苦
 * @version V2017.11.21
 */
public class NewSessionServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		// 服务器不会马上创建session.而是 在第一次获取session时,才会创建session。理论通的重要性!
		// req.getSession();获取session
		if (req.getSession().isNew()) {
			response.getWriter().print("新生成的");
		} else {
			response.getWriter().print("旧有的");
		}

	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub

	}

}

OldSessionServlet.java

package com.jizuiku.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 *
 * @author 博客园-给最苦
 * @version V2017.11.21
 */
public class OldSessionServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		// 服务器不会马上创建session.而是 在第一次获取session时,才会创建session。理论通的重要性!
		// req.getSession();获取session
		if (req.getSession().isNew()) {
			response.getWriter().print("新生成的");
		} else {
			response.getWriter().print("旧有的");
		}

	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub

	}

}

浏览器进行访问

  这里要注意的是访问的先后顺序,页面的效果与访问的先后顺序是有关的

注:

  给最苦 在做这个测试的时候,web.xml没写好,各种出错。



学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。

时间: 2024-09-28 22:08:14

JavaWeb基础 session isNew 判断session是新生成的 还是旧有的的相关文章

JavaWeb基础—会话管理之Session

一.什么是session session类似于客户端在服务器端的账户.使用Map存放 一个会话锁定一个用户(一般情况下是一个客户端,即一个浏览器独占一个session对象),即使使用浏览器访问其他程序资源,也可以共享这个session (如何确定是同一个用户?创建session时把sessionID以cookie的形式传给客户端,客户端访问时再把此sessionID传过去进行校验 JSESSIONID ) 二.session和cookie的区别 cookie 把用户的数据保存到浏览器端,sess

javaWeb基础知识----Cookie,Session

?HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的,浏览器的每一次请求都是完全孤立的 ?即使 HTTP1.1支持持续连接,但当用户有一段时间没有提交请求,连接也会关闭. ?怎么才能实现网上商店中的购物车呢:某个用户从网站的登录页面登入后,再进入购物页面购物时,负责处理购物请求的服务器程序必须知道处理上一次请求的程序所得到的用户信息. ?作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态 1.会话和会话状态 ?WEB应用中的会

第二百六十九节,Tornado框架-Session登录判断

Tornado框架-Session登录判断 Session需要结合cookie来实现 Session的理解 1.用户登录系统时,服务器端获取系统当前时间,进行nd5加密,得到加密后的密串 2.将密串作为一个字典的键,值为一个字典,也就是嵌套字典,键为密串的字典里保存用户信息 3.将这个密串当做cookie值写入浏览器 4.当用户访问时,判断值为密串的cookie是否存在,如果存在,获取cookie的值也就是密串,将这个密串在服务端的字典里查找是否存在,如果存在就可以拿到用户保存的各种信息,判断用

JavaWeb学习总结(十二)——Session

一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务. 二.Session和Cookie的主要区别 Cookie是把用户的数据写给用户的浏览器. Session技术把用户的数据写到用户独占的sess

JavaWeb学习总结(十二)——Session【转】

一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况 下).因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用 户的session中取出该用户的数据,为用户服务. 二.Session和Cookie的主要区别 Cookie是把用户的数据写给用户的浏览器. Session技术把用户的数据写到用户独占的se

Tomcat的基础知识和一些应用,session cluster和session server

Tomcat简单来说就是JAVA 2 EE 加上Servlet和JSP类库的实现,tomcat=JWS(Sun)+ Jserv(ASF) Tomcat的核心组件: catalina:servlet container Coyote:http connection Jasper:JSP Engine 执行引擎 TomcatInstance: 运行中的tomcat进程(java进程) Server:即一个tomcat实例: Service:用于将connector关联至engine组件:一个serv

对Ajax请求做Session过期判断

1 // 全局Ajax设置, 用于session过期判断 2 function ajaxSetup() { 3 $.ajaxSetup({ 4 timeout : 10000, 5 beforeSend : function(xhr) { 6 //添加ajax请求标识 7 xhr.setRequestHeader("ajaxReq", "ajax"); 8 }, 9 complete : function(xhr, ts) { 10 if (xhr.statusTe

在基类里边判断session的时候出错的处理方法

当我在pagebase类中判断session时,出现了:“  未将对象引用设置到对象的实例”: if (System.Web.HttpContext.Current.Session["username"] != null) 百度一下 原来 “没有相应的用户访问所以没有current ” 所以需要 判断一下 if (System.Web.HttpContext.Current!= null&& System.Web.HttpContext.Current.Session)

PHP基础(谈一谈Session&Cookie)

cookie和sessiond的主要区别 (1).保存位置稍有区别 cookie数据存放在客户的浏览器上,服务器端不用保存.session数据放在服务器上,本地内存也有一份. (2).安全性不同 cookie安全性不如session.因为普通cookie保存在本地硬盘上,黑客可以伪造url等方式发起xss攻击,获取本地硬盘保存状态的cookie,进而窃取用户的敏感信息. session则不同,只有在用户登录此网站时发起xss攻击才能获取session信息,关闭浏览器之后,session即被销毁,