Servlet初始配置 监听器和过滤器

ServletContext:application范围内的参数

此所设定的参

来源: http://note.sdo.com/my

数,在JSP网页中可以使用下列方法来取得:

${initParam.param0},

<%=application.getInitParameter("param0") %><br/>

若在Servlet可以使用下列方法来获得:

String param_name=getServletContext().getInitParameter("param0")

=this.getServletConfig().getServletContext().getInitParameter("param0")

=application.getInitParameter("param0");

使用上下文初始化参数:


1

2

3

4

5

6

7

8


<context-param> 

           <param-name>param_name</param-name> 

           <param-value>avalible during application</param-value> 

  </context-param>

<context-param> 

    <param-name>contextConfigLocation</param-name> 

    <param-value>/WEB-INF/spring-configuration/*.xml</param-value> 

</context-param>

<wiz_tmp_tag class="wiz-block-scroll">

部署在同一容器中的多个Web项目,要配置不同的webAppRootKey,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”


1

2

3

4

5

6

7

8

9


    <context-param>   

        <param-name>webAppRootKey</param-name>   

        <param-value> business.root </param-value>   

    </context-param>   

<!—public-base应用路径  -->   

    <context-param>   

        <param-name>webAppRootKey</param-name>   

        <param-value> pubbase.root</param-value>   

    </context-param>

在web.xml中该Servlet的定义标记中,比如:

servlet范围内的参数,只能在servlet的init()方法中取得(或者通过注解配置在对应的类上:@WebServlet("/MyServlet")

System.out.println(this.getInitParameter("param1")=this.getServletConfig().getInitParameter(name));


1

2

3

4

5

6

7

8


<servlet>

     <servlet-name>TimeServlet</servlet-name>

     <servlet-class>com.allanlxf.servlet.basic.TimeServlet</servlet-class>

    <init-param>

        <param-name>param1</param-name>

        <param-value>avalible in servlet init()</param-value>

    </init-param>

    <load-on-startup>0</load-on-startup>//标记容器是否在启动的时候就加载这个servlet,执行init()方法,初始化参数</servlet>

配置监听器:(启动Web容器时,自动装配ApplicationContext、log4j的配置信息。)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24


<context-param

    <param-name>contextConfigLocation</param-name

    <param-value>/WEB-INF/spring-configuration/*.xml</param-value

</context-param>

<context-param>  

      <param-name>log4jConfigLocation</param-name>  

      <param-value>WEB-INF/log4j.properties</param-value>  

  </context-param>  

  <context-param>  

      <param-name>log4jRefreshInterval</param-name>  

      <param-value>6000</param-value>  

  </context-param>   

<!-- Spring的log4j监听器 -->

<listener

    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class

</listener

<listener

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class

</listener

<!-- 与CAS Single Sign Out Filter配合,注销登录信息  -->

<listener

<listener-class>com.yonyou.mcloud.cas.client.session.SingleSignOutHttpSessionListener</listener-class

</listener>

配置过滤器:

Filter可认为是Servle的一种“加强版”,主要用于对用户请求request进行预处理,也可以对Response进行后处理,是个典型的处理链。使用Filter的完整流程是:Filter对用户请求进行预处理,接着将请求HttpServletRequest交给Servlet进行处理并生成响应,最后Filter再对服务器响应HttpServletResponse进行后处理。Filter与Servlet具有完全相同的生命周期,且Filter也可以通过<init-param>来配置初始化参数,获取Filter的初始化参数则使用FilterConfig的getInitParameter()。

换种说法,Servlet里有request和response两个对象,Filter能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response,Filter其实是一个Servlet链。以下是Filter的一些常见应用场合,创建一个过滤器,实现Filter接口。重新init(), doFilter(), destroy().

注解的方式配置:@WebFilter(filterName="FirstFilter",urlPatterns={"/index.jsp"},initParams={WWebInitParam(name="mood",value="awake")})

urlPatterns:哪些URL可以过滤,默认“/*”

initParams: 初始化哪些参数。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108


<!--****************************过滤器配置*********************************-->

  <!-- 字符集过滤器 -->

  <filter

    <filter-name>CharacterEncodingFilter</filter-name

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class

    <init-param

      <param-name>encoding</param-name

      <param-value>UTF-8</param-value

    </init-param

    <init-param

      <param-name>forceEncoding</param-name

      <param-value>true</param-value

    </init-param

  </filter

  <!-- 单点登出过滤器 -->

  <filter

    <filter-name>CAS Single Sign Out Filter</filter-name

    <filter-class>com.yonyou.mcloud.cas.client.session.SingleSignOutFilter</filter-class

  </filter

  <!-- 认证过滤器 -->

  <filter

    <filter-name>CAS Authentication Filter</filter-name

<filter-class>com.yonyou.mcloud.cas.client.authentication.ExpandAuthenticationFilter</filter-class

    <init-param

      <param-name>casServerLoginUrl</param-name

      <param-value>https://dev.yonyou.com:443/sso-server/login</param-value

    </init-param

    <init-param

      <!--这里的server是服务端的IP -->

      <param-name>serverName</param-name

      <param-value>http://10.1.215.40:80</param-value

    </init-param

  </filter

  <!-- 验证ST/PT过滤器 -->

  <filter

    <filter-name>CAS Validation Filter</filter-name

<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class

    <init-param

      <param-name>casServerUrlPrefix</param-name

      <param-value>https://dev.yonyou.com:443/sso-server</param-value

    </init-param

    <init-param

      <param-name>serverName</param-name

      <param-value>http://10.1.215.40:80</param-value

    </init-param

    <init-param

      <param-name>proxyCallbackUrl</param-name

      <param-value>https://dev.yonyou.com:443/business/proxyCallback</param-value

    </init-param

    <init-param

      <param-name>proxyReceptorUrl</param-name

      <param-value>/proxyCallback</param-value

    </init-param

    <init-param

      <param-name>proxyGrantingTicketStorageClass</param-name

<param-value>com.yonyou.mcloud.cas.client.proxy.MemcachedBackedProxyGrantingTicketStorageImpl</param-value

    </init-param

    <!-- 解决中文问题 -->

    <init-param

      <param-name>encoding</param-name

      <param-value>UTF-8</param-value

    </init-param

  </filter

  <filter

    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name

    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class

  </filter

  <filter

    <filter-name>CAS Assertion Thread Local Filter</filter-name

    <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class

  </filter

  <filter

    <filter-name>NoCache Filter</filter-name

    <filter-class>com.yonyou.mcloud.cas.client.authentication.NoCacheFilter</filter-class

  </filter

  <!--****************************映射关系配置********************************-->

  <filter-mapping

    <filter-name>CharacterEncodingFilter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>NoCache Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS Single Sign Out Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS Validation Filter</filter-name

    <url-pattern>/proxyCallback</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS Authentication Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS Validation Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping

  <filter-mapping

    <filter-name>CAS Assertion Thread Local Filter</filter-name

    <url-pattern>/*</url-pattern

  </filter-mapping>

配置失效时间:


1

2

3


<session-config>  

   <session-timeout>120</session-timeout>  

</session-config>


1

2

3


<welcome-file-list

    <welcome-file>index.html</welcome-file

</welcome-file-list></span>

 

原文地址:https://www.cnblogs.com/shuchen007/p/9385034.html

时间: 2024-10-08 07:01:05

Servlet初始配置 监听器和过滤器的相关文章

J2EE监听器和过滤器基础

Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文. 监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听. ServletContex监听器 ServletContex又叫application,存在范围是整个Servlet容器生命周期,当系统启动时就会创建,系统关闭时会销毁,该对象通常存放一些非常通用的数据,但是不推荐存放太多

JavaWeb学习——监听器和过滤器

监听器 与 Filters 一.概述 监听器是用于监听Web应用而实现了特定接口的Java类.监听器可以在事件发生前.后做一些有必要的处理. Servlet API提供了一系列的事件和事件监听接口.上层的servlet/JSP应用能够通过调用这些API进行事件驱动的开发. 这里监听的所有事件都继承自java.util.EventObject对象. Servlet 中的监听器分类: 监听三个域对象(ServletContext.HttpSession.ServletRequest)的创建和销毁的三

JavaWeb监听器和过滤器

JavaWeb监听器 ServletContextListener监听器 Servlet的上下文监听,它主要实现监听ServletContext的创建和销毁.可以完成自己想要的初始化工作.主要包括下面两个方法 //启动服务的时候调用该方法 public void contextInitialized(ServletContextEvent sce); //销毁该服务的时候调用该方法 public void contextDestroyed(ServletContextEvent sce); Se

Spring监听器和过滤器的全局配置

<!-- 监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>cl

监听器和过滤器

过滤器生命周期的四个阶段: 1.实例化:Web容器在部署Web应用程序时对所有过滤器进行实例化.Web容器回调它的无参构造方法.2.初始化:实例化完成之后,马上进行初始化工作.Web容器回调init()方法. 3.过滤:请求路径匹配过滤器的URL映射时.Web容器回调doFilter()方法--主要的工作方法. 4.销毁: Web容器在卸载Web应用程序前,Web容器回调destroy()方法. 监听器概述 监听你的web应用,监听许多信息的初始化,销毁,增加,修改,删除值等 Servlet监听

java web监听器和过滤器

2019-3-26 监听器:6+2 1.j监听器种类 2.监听器的编写步骤(重点): a.编写一个监听器类去实现监听器接口 b.覆盖监听器的方法 c.需要在web.xml中进行配置---注册 过滤器 Filter 过滤器的编写步骤(重点): a.编写一个过滤器类去实现过滤器接口 b.覆盖过滤器的方法 c.需要在web.xml中进行配置---注册 原文地址:https://www.cnblogs.com/houchen/p/10604782.html

Servlet过滤器和监听器知识总结(转)

 Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤.判断用户的登录状态.过滤器使得Servlet开发者能够在客户端请求到达 Servlet资源之前被截获,在处理之后再发送给被请求的Servlet资源,并且还可以截获响应,修改之后再发送给用户.而Servlet监听器可以  监听客户端发出的请求.服务器端的操作,通过监听器,可以自动激发一些操作,如监听在线人数.  Servlet过滤器简介绍      Servlet过滤器是在Java Servle

JSP详细篇——Servlet过滤器和监听器

过滤器和监听器 Servlet过滤器是从Servlet2.3规范开始新增的功能,并在Servlet2.4规范中得到增强,监听器可以监听到Web应用程序启动和关闭.创建监听器需要实现响应的接口,并对其进行配置. Servlet过滤器 1.什么是过滤器 Servlet过滤器与Servlet十分相似,但是它具有拦截客户端请求的功能.Servlet过滤器可以改变请求中的内容,来满足实际开发中的需要.对于程序开发人员来说,过滤器实质上就是在Web应用服务器上的一个Web应用组件,用于拦截客户端与目标资源之

open Session In View和过滤器配置

Open Session In View模式的主要思想是:当Web Request(浏览器请求)开始时,自动打开Session,当Web Request结束时,自动关闭Session.也就是说,Session的生命周期与页面请求保持同步. 实现步骤:(分层架构)(web工程) 1.entity层(实体层) 2.dao层(数据访问层) 3.util层(工具层) 4.biz层(业务逻辑层) 5.filter层(过滤器) 6.进行过滤器在网站xml的配置 结构图如下: 1.entity层 <1>.进