難得糊塗,吃虧是福。

Servlet & JSP : web.xml 配置学习

7-16 阅读:1,275 次

Writer      :BYSocket(泥沙砖瓦浆木匠)

微         博:BYSocket

豆         瓣:BYSocket

FaceBook:BYSocket

Twitter    :BYSocket

一.定义

定义时注意:xml元素是区分大小写的,以下必须小写:

<web-app></web-app>

二.url-pattern

1)url-pattern 的值必须以/或者*.开头

  <servlet>
    <servlet-name>TestName</servlet-name>
    <servlet-class>sedion.jeffli.servlet.AServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestName</servlet-name>
    <url-pattern>/UrlTest1</url-pattern>
  </servlet-mapping>
<!--
  <servlet-mapping>
      <servlet-name>TestName</servlet-name>
      <url-pattern>*.urlTest1</url-pattern>
    </servlet-mapping>
-->

2)匹配模式的规则

①优先处理完全匹配

/test1/aa 和 /test1/* 都是一个url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa

②目录映射优先于扩展名映射

/test1/aa 和 /test1/*.html 都是合法的url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa/test.html

③对于重复映射,越长路径越优先

/test1/aa/* 和 /test1/* 都是一个url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa/test.html

三.过滤器

在web.xml文件中使用 filter元素和 filter-name(任意名),filer-class(完全限定类名)声明:

<filter>
  <filter-name>
    TestFilterName
  </filter-name>
  <filter-class>
    sedion.jeffli.testFilter
  </filter-class>
</filter>

通过filter-mapping与

①【servlet-name】一个元素或者多个servlet关联

<filter-mapping>
    <filter-name>TestFilterName</filter-name>
    <servlet-name>SomeServletName</servlet-name>
</fitler-mapping>

【url-pattern】jsp页面关联

<filter-mapping>
    <filter-name>TestFilterName</filter-name>
    <url-pattern>/*</url-pattern>
</fitler-mapping>

四、配置jsp页面

jsp-config 中有两个子元素【taglib】【jsp-property-group】,注意,前者必须出现在后者之前。

【taglib】替代jsp页面中taglib指令

<jsp-config>
    <taglib>
        <taglib-uri>/taglibtest</taglib-uri>
        <taglib-location>/WEB-INF/tlds/test-tags.tld</taglib-location>
    </taglib>
</jsp-config>

配置后,在页面可以用下面简单方式调用标签库

<% taglib uri="/taglibtest" prefix="somePrefix">

五、面向群集环境的开发

例如,tomcat自带一个软件负载器,存在Web应用的tomcat_dir/weapps/blalancer中。

开发一个应用于群集环境的Web应用注意以下几点:

①避免创建实例化变量和静态数据来共享数据。

②不要将数据存储在 ServletContext

③存储在HttpSession中的对象需要实现Serializable接口

如果HttpSession保存的对象不实现Serializable接口,容器便不能迁移会话。

④尽量少在HttpSession中存储信息

在HttpSession中存储大量数据,会降低Web应用性能,特别是请求量相当高时。

泥瓦匠学习的代码都在github上(同步osc git),欢迎大家点star,提意见,一起进步。地址:https://github.com/JeffLi1993

Writer      :BYSocket(泥沙砖瓦浆木匠)

微         博:BYSocket

豆         瓣:BYSocket

FaceBook:BYSocket

Twitter    :BYSocket

图解 & 深入浅出 JavaWeb:Servlet 再说几句

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  &n...

阅读全文

图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter    :BYSocket “眨眼间,离上一篇...

阅读全文

Servlet & JSP : 一、小姐,来桶全家桶不?(Servlet)

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  &nb...

阅读全文

"万千世界,飘过的我是竹叶般..."

博主:BYSocket,博主的\'编程之美\'群(365234583
自言自语:
写写博,编编书,听听歌,健健身,练练字,写写文。医科大信息本科生,开源作者,半吊子书法爱好者,半吊子创业爱好者,半吊子...... 我在试错,我不知道以后会干什么,但我享受现在试错给我的惊讶的生活~

如果你喜欢,可以及时得到博客文章的推送或者留言给我,扫下左边我的公众号

这是我喜欢的一些话:
“路漫漫其修远兮,吾将上下而求索”
任何事情,方向对了,千方百计地去做,做任何事情朝这个方向,物理上的正功也有,负功也有,像溪水向下流碰到石头就转弯,肯定会有小成就。还有最主要的开心~





代码牛平台,让技术学习变的更高效、更简单 !
如果你的技术脆弱得需要提升,向有经验的人学习吧 !
如果你技术足够牛逼,有偿帮助那些需要技术提高的人吧 !


大牛或即将成为大牛的小白,欢迎加入\'代码牛JavaEE技术交流\'群(522369560

来找我吧,扫下左边二维码下载 APP,填上我的邀请码:CaEcmQ ,成为大牛吧~