Servlet的cookie、session、ServletContext、ServletConfig

cookie:

Cookie是一种在客户端保持HTTP状态信息的技术

Cookie是在浏览器访问服务器的某个资源时,由web服务器在响应头传送给浏览器的数据

浏览器如果保存了某个cookie,那么以后每次访问服务器的时候,都会在请求头传递给服务端

一个cookie只能记录一种信息,是key-value形式

一个web站点可以给浏览器发送多个cookie,一个浏览器也可以存储多个站点的cookie

cookie的基本原理:

cookie的java操作:

创建cookie对象

Cookie cookie = new Cookie(String key,String value);

设置cookie参数

cookie.setMaxAge(int seconds)

cookie.setPath(String url)

响应Cookie给客户端

response.addCookie(Cookie cookie)

获取cookie属性

Cookie[] cookies = request.getCookies()

 

session:

Session表示会话,在一段时间内,用户与服务器之间的一系列的交互操作。

session对象:用户发送不同请求的时候,在服务器端保存不同请求共享数据的存储对象

特点:

Session是依赖cookie技术的服务器端的数据存储技术

由服务器进行创建

每个用户独立拥有一个session对象

默认存储时间是30分钟

Session机制:

用户使用浏览器第一次向服务器发送请求, 服务器在接受到请求后, 调用对应的 Servlet 进行处理。 在处理过程中会给用户创建一个 session 对象, 用来存储用户请求处理相关的公共数据, 并将此 session 对象的 JSESSIONID 以 sessoin 的形式存储在浏览器中(临时存储, 浏览器关闭即失效)。 用户在发起第二次请求及后续请求时, 请求信息中会附带 JSESSIONID, 服务器在接收到请求后,调用对应的 Servlet 进行请求处理, 同时根据 JSESSIONID 返回其对应的 session 对象

Session的java操作:

获取sessoin对象

HttpSession session = request.getSession()

向Session对象中添加值

sessoin.setAttribute(String name,Object object)

获取Session中的值

session.getAttribute(String name)

设置sessoin属性

session.setMaxInactiveInterval(5)//设置存活时间

session.invalidate(); //session强制失效

 

ServletContext:

Servlet上下文,web应用程序在JVM中运行的servlet运行环境,所有servlet共享

ServletContext对象是web服务器中的一个已知路径的根

ServletContext API:

void setAttribute(String name,Object obj)    设置共享属性
Object getAttribute(String name)    读取共享属性
void removeAttribute(String name)    移除共享属性
ServletContext getContext(String uri)    获取指定uri的上下文对象
String getContextPath()    返回web程序的上下文路径
String getInitParameter(String param)    获取上下文初始化参数
String getRealPath(String path)    返回资源在服务器上的真实路径
RequestDispatcher getRequestDispatcher(String path)    返回一个包装了路径信息的Dispatcher

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取servletContext对象
        //1
        ServletContext context = this.getServletContext();
        //2
        ServletContext context1 = this.getServletConfig().getServletContext();
        //3
        ServletContext context2 = request.getSession().getServletContext();

        System.out.println(context==context1);
        System.out.println(context == context2);
        System.out.println(context1==context2);

        //设置属性值
        context.setAttribute("val1","zhangsan");

        //从web.xml中获取参数值
        String value = context.getInitParameter("param1");
        System.out.println(value);
        //获取某个文件的绝对路径
        String path = context.getRealPath("web.xml");
        System.out.println(path);

        //获取web项目的上下文路径
        String path2 = context.getContextPath();
        System.out.println(path2);
    }

ServletConfig:

ServletConfig对象是Servlet的专属配置对象,每个Servlet都单独拥有一个ServletConfig对象 ,用来获取web.xml中的配置信息

<servlet>
        <servlet-name>xxxServlet</servlet-name>
        <servlet-class>com.XxxServlet</servlet-class>
        <init-param>
            <param-name>name</param-name>
            <param-value>zhangsan</param-value>
        </init-param>
        
    </servlet>

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取对象
        ServletConfig config = this.getServletConfig();
        String value = config.getInitParameter("name");
        System.out.println(value);
        //获取所有的key
        Enumeration<String> initParameterNames = config.getInitParameterNames();
        while (initParameterNames.hasMoreElements()){
            String key = initParameterNames.nextElement();
            String value2 = config.getInitParameter(key);
            System.out.println(key+"----"+value2);
        }
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值