session
1.介绍
特点
- 一个Session对象可以存储多个键值对信息,并且支持任意类型,包括中文字符串
- Session没有严格的大小限制
- Session是保留在服务器端,从理论角度分析,只要硬盘足够大,存什么都行,数量不限制
- 每一个浏览器请求会对应一个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>