web.xml配置文件和监听器

1. web.xml 配置文件

WEB-INF
|- lib 放第三方jar包
|- classes 自己写的servlet等java类
|- web.xml web应用程序的配置文件

写一个servlet 要在类上加一个 @WebServlet(urlPatterns="")
写一个filter 要在类上加一个 @WebFilter(urlPatterns="")
这种基于注解的写法在servlet 3.0 才有的

web.xml是另一种配置方式,跟注解方式配置的地位是一样的

xml (x 可扩展 markup 标记 language 语言) 标签可以进行扩展
html (超文本标记语言) 标签都是规定死的 <a> <h1> <p> ...

例如:

<!-- 配置一个servlet -->
<servlet>
    <!-- servlet名字 -->
    <servlet-name>servlet1</servlet-name>
    <!-- servlet对应的java类 -->
    <servlet-class>controller.Servlet1</servlet-class>
	<!-- 在tomcat启动时就创建servlet的实例,而不是等到第一次请求时
         其中数字表示优先级,数字小的优先级高
    -->
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>servlet1</servlet-name>
    <!-- servlet的路径 -->
    <url-pattern>/s1</url-pattern>
</servlet-mapping>

<!-- 等价于 @WebServlet(urlPatterns = "/s1", loadOnStartup = 1 ) -->

例如:

<filter>
    <!-- 过滤器名字 -->
    <filter-name>f1</filter-name>
    <!-- 过滤器对应的java类 -->
    <filter-class>filter.Filter1</filter-class>
</filter>
<filter-mapping>
    <filter-name>f1</filter-name>
    <!-- 过滤器要过滤的路径 -->
    <url-pattern>/ *</url-pattern>
</filter-mapping>
<!-- 等价于 @WebFilter(urlPatterns="/*") -->

过滤器的过滤顺序可以通过 filter-mapping标签的顺序调整,先进入filter-mapping在前面的过滤器

HttpSession 会话
当第一次调用 request.getSession() 会创建会话
销毁有两种:

  1. session.invalidate(); 会立刻销毁session
  2. 两次请求的时间间隔超过30分钟,session会销毁
    例如:
<session-config>
    <!-- 配置session的超时时间, 单位是分钟 -->
    <session-timeout>10</session-timeout> 
</session-config>

2. 监听器 (Listener)

ServletContextListener 监听应用程序启动和停止事件
ServletRequestListener request对象创建和销毁事件
HttpSessionListener session对象创建和销毁事件

ServletContextAttributeListener application作用域 setAttribute,removeAttribute事件
ServletRequestAttributeListener request作用域 setAttribute,removeAttribute事件
HttpSessionAttributeListener session 作用域 setAttribute,removeAttribute事件

HttpSessionActivationListener session 的激活和钝化
HttpSessionBindingListener session变量绑定事件

session的激活和钝化
1) 当tomcat服务器停止时,会把session中所有变量存储到磁盘上, 称为钝化
2) 当tomcat服务器重新启动时,把刚才存入磁盘的信息读取出来,恢复至session作用域, 称为激活
钝化过程调用是java序列化
激活过程调用是java反序列化

向Session中存储的变量要实现序列化接口(Serializable)
都是针对自定义的java类,如:Student, Hero

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值