ServletContext:application范围内的参数

此所设定的参

数,在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>

 

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

  1. J2EE监听器和过滤器基础

    Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文. 监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会 ...

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

    Servlet过滤器和监听器知识总结(转)  Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤.判断用户的登录状态.过滤器使得Servlet开发者能 ...

  3. Servlet过滤器和监听器知识总结

    Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤.判断用户的登录状态.过滤器使得Servlet开发者能够在客户端请求到达 Servlet资源之前被截 ...

  4. solr英文使用的基本分词器和过滤器配置

    solr英文应用的基本分词器和过滤器配置 英文应用分词器和过滤器一般配置顺序 索引(index): 1:空格 WhitespaceTokenizer    2:过滤词(停用词,如:on.of.a.an ...

  5. day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间

    day58 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承它使用) 2. 在母版中定义block块(可以定义多个,整个页面任意位置) {% block co ...

  6. Spring Boot2(七):拦截器和过滤器

    一.前言 过滤器和拦截器两者都具有AOP的切面思想,关于aop切面,可以看上一篇文章.过滤器filter和拦截器interceptor都属于面向切面编程的具体实现. 二.过滤器 过滤器工作原理 从上图 ...

  7. strits2初始配置总结

    **************************************************************************************************** ...

  8. Spring拦截器和过滤器

    什么是拦截器 拦截器(Interceptor): 用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略.它通过动态拦截Action调用的对象,允许开发者 ...

  9. 面试题:struts 拦截器和过滤器

    拦截器和过滤器的区别 过滤器是servlet规范中的一部分,任何java web工程都可以使用. 拦截器是struts2框架自己的,只有使用了struts2框架的工程才能用. 过滤器在url-patt ...

随机推荐

  1. docker-nginx-标记一下

    拉取nginx镜像 然后启动容器: docker run -p : --name mynginx -d -v $PWD/nginx.conf:/etc/nginx/conf.d/default.con ...

  2. Ajax 实现文件的下载

    JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...

  3. Java 一个?格式的解决

    用Java 出现了这样的一个问题?好几天都没解决掉 然后最近一直找资料 截个图: 本来格式中时没有这个?号的,代码里面用GBK和utf-8都不能解决. 即使我加了 Str.trim(Str)去除 字符 ...

  4. Apache Beam 传 大数据杂谈

    1月10日,Apache软件基金会宣布,Apache Beam成功孵化,成为该基金会的一个新的顶级项目,基于Apache V2许可证开源. 2003年,谷歌发布了著名的大数据三篇论文,史称三驾马车:G ...

  5. BeagleBone Black Industrial系统更新设置一贴通

    前言 原创文章,转载引用务必注明链接.水平有限,欢迎指正. 本文使用markdown写成,为获得更好的阅读体验,推荐访问我的博客原文: http://www.omoikane.cn/2016/09/1 ...

  6. CMS - 认识目录

    Tips:如果网页图片(文字)看不清,请按CTRL+鼠标滚轮 一个完整的小程序模板目录结构如下! 本章节给出的建议: 1.推荐使用flex布局 2.其它图片路径建议引入网络路径(tabBar不支持网络 ...

  7. weex stream 方法封装

    1.封装 api.js // 配置API接口地址 const baseUrl = 'http://www.kuitao8.com/'; // 引入 弹窗组件 var modal = weex.requ ...

  8. hdu 4707 Pet(DFS &amp;&amp; 邻接表)

    Pet Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  9. hdu3076ssworld VS DDD 概率dp

    //ssworld VS DDD 两个人有血量值 hp1 , hp2  //两人掷骰子得到每一点的概率已知 //ssword赢的概率 //dp[i][j]  表示有第一个人血量为i.第二个人的血量为j ...

  10. java开始到熟悉63-65

    本次内容:java常用类 1.包装类 package array; public class wrapperclass { public static void main(String[] args) ...