servlet基础知识3

请求域:
request(请求域)赋值:
request.setAttribute("key", 值);
HttpServletRequest常用获得客户机信息的方法: 


session(会话域)
获得session(回话域)
HttpSession session = request.getSession();
给session(请求域)赋值:
session.setAttribute("key",值);

获得sessionID:session.getId();


HttpServletRequest常用获得客户机信息的方法:


servlet基础知识3

重点:

浏览器发送一次请求到服务器,服务器首先判断,该请求是否携带一个SessionID值
如果这次请求没有携带一个SessionID值,服务器就知道了,这是第一次来访问该服务器
浏览器与该服务器开始建立会话
服务器会在相应请求的同时,将产生一个SessionID,作为该次会话的标识
再把这个SessionID发给浏览器,浏览器就拥有一个SessionID了
当再次访问该服务器时,浏览器会携带那个SessionID,被传到服务器
服务器首先判断该请求是否携带一个SessionID值,此时有了,代表这不是一个新的会话的请求
如果浏览器两个请求之间的时间太长,超出服务器等待的时间,服务器会删除这个session对象
删除后,再次发送到该服务器,因为服务器里没有这个session对象了,就不能判断请求是否携带SessionID值
也就是说判断不出来,就认为这是一个新的会话开始,又会产生一个SessionID,作为这次新会话的标识
又把这个SessionID发给浏览器,浏览器就拥有一个新的SessionID了
在会话开始时,服务器会自动分配一个空间(session对象),SessionID就在session对象里


关闭浏览器或者服务器就会没有配对的session


<init-param>
    <param-name>country</param-name>
    <param-value>Chian</param-value>
    </init-param>
    <init-param>
    <param-name>provincce</param-name>
    <param-value>SiChuan</param-value>
    </init-param>


填写init-name主要是为servlet初始化时,进行一些配置时候用的,一般做业务(doGet doPost的时候很少用这个参数)

可以在init()方法里调用这个参数的值,如:System.out.println(this.getInitParameter("country")); 就会输出这个servlet里 打印init-name 名为"SiChuan"的值。

通过this.getServletConfig() 获得 servletconfig 对象

对象.getInitParameter("key") 获得值

servlet基础知识3


ServletContext 接口 一个web 项目中都共享一个ServletContext
//获得一个ServletContext
ServletContext appliction  = this.getServletContext();
//ServletContext 赋值 前面是钥匙 后面是值
appliction .setAttribute("name", "myname");

ServletContext 接口 一个web 项目中都共享一个ServletContext
//获得一个ServletContext
ServletContext appliction = this.getServletContext();
//通过 钥匙 取值
System.out.println(appliction .getAttribute("name"));