session和过滤器

本文介绍了Servlet中的Session,包括其特点如存储任意类型数据,无严格大小限制,以及如何获取、设置和销毁Session。同时,讲解了过滤器Filter的概念,它是Servlet API中的接口,用于拦截请求和响应。并阐述了Filter的配置方式,既可以通过注解,也可以在web.xml中配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session

1.介绍

特点
  1. 一个Session对象可以存储多个键值对信息,并且支持任意类型,包括中文字符串
  2. Session没有严格的大小限制
  3. Session是保留在服务器端,从理论角度分析,只要硬盘足够大,存什么都行,数量不限制
  4. 每一个浏览器请求会对应一个Session对象,如果需要在之后的请求中想要继续获取Session,需要保存一个核心的Cookie信息 JSESSIONID

2.方法

通过HttpServletRequest对象获取Session对象

HttpSession session = getSession(boolean create);
request.getSession()

获取Session对象的ID号,在当前服务器中具有唯一性

String getId();

设置Session对象的有效时间,所谓有效时间,是从用户请求时间开始计算,如果在有效时间内用户重新发送了带有对应SessionID Cookie的请求,有效时间从新计算,如果设置0或者负数,有效时间为永久

setInactiveInterval(int sec);
invalidate();

在服务器端销毁Session对象

Session也是一个域对象

request.getSession().setAttribute("user",user);
request.getSession().getAttribute("user");
request.getSession().removeAttribute("user");

Filer 过滤器

什么是过滤器

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

@WebFilter("/myservlet1")//过滤路径
public class MyFilter1 implements Filter {

    //初始化过滤器
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
 
    }

    //执行过滤
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        //放行
        chain.doFilter(request, response);
    }
    //销毁
    @Override
    public void destroy() {
    }
}

过滤器的配置

1.在自定义的Filter类上使用注解@WebFilter(“/*”)

2.在web.xml中进行过滤器的配置

<!--过滤器的xml配置  -->
  <filter>
  <!--名称-->
    <filter-name>sf</filter-name>
    <!--过滤器类全称-->
    <filter-class>com.qf.web.filter.SecondFilter</filter-class>
  </filter>
 <!--映射路径配置-->
  <filter-mapping>
     <!--名称-->
    <filter-name>sf</filter-name>
     <!--过滤的url匹配规则和Servlet的一模一样-->
    <url-pattern>/*</url-pattern>
  </filter-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值