jsp web.xml文件的作用及基本配置


一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。

那什么时候需要,什么时候可以不需要呢?
要想回答上面的问题,得先了解web.xml文件使用来干什么的。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。
那么web.xml能做的所有事情都有那些?
其实,web.xml的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个web.xml使用的是哪个模式文件。如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>
而且web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,也即标签元素的种类会越来越多,但有些是不常用的,我们只需记住一些常用的就可以了。

下面列出web.xml常用的标签元素及这些标签元素的功能:
1、指定欢迎页面,例如:
<welcome-file-list>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index1.jsp</welcome-file>
</welcome-file-list>
上面的例子指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。
关于欢迎页面:
访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但web.xml并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。
对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时, 如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,而在文中没有web.xml文件,或虽然有web.xml,但web.xml也没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。如果没找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和index.jsp都没找到,又没有用web.xml文件指定欢迎页面,那此时tomcat就不知道该返回哪个文件了,它就显示The requested resource (/XXX) is not available的页面。其中XXX表示web的根名。但如果你指定了具体页面,是可以正常访问的。
2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。下面拿serlet来举例:
(1)、为Servlet命名:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
</servlet>
(2)、为Servlet定制URL、
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。下面哪servlet来举例:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
<init-param>
<param-name>userName</param-name>
<param-value>Tommy</param-value>
</init-param>
<init-param>
<param-name>E-mail</param-name>
<param-value>Tommy@163.com</param-value>
</init-param>
</servlet>
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
-----------------------------
<error-page>
<exception-type>java.lang.Exception<exception-type>
<location>/exception.jsp<location>
</error-page>
5、设置过滤器:比如设置一个编码过滤器,过滤所有资源
<filter>
<filter-name>XXXCharaSetFilter</filter-name>
<filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XXXCharaSetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6、设置监听器:
<listener>
<listener-class>net.test.XXXLisenet</listener-class>
</listener>
7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:
<session-config>
<session-timeout>60</session-timeout>
</session-config>
除了这些标签元素之外,还可以往web.xml中添加那些标签元素呢,那些标签元素都能起什么作用呢?我们只要去查看web.xml的模式文件就能知道。直接看模式文件看不懂,可以找一些中文教程来看看。



相关阅读:
利用Windows注册表来清理系统垃圾文件
java 中文字符串数组按照音序排列
jQuery EasyUI 中文API Layout(Tabs)
javascript中的作用域scope介绍
回收临时表空间ORA-03297解决-入门基础
在Linux上搭建一个简单的vsftpd服务器
PHP5.0对象模型探索之抽象方法和抽象类
JavaScript进阶教程(第三课第二部分)
PHP与ASP.NET的比较
css中用javascript判断浏览器版本
菜鸟乐园:Linux系统Shell命令介绍
用CSS改变鼠标箭头
防止SQLSERVER的事件探查器跟踪软件
Vista自带语音工具可以听到标准的英语
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 我是小当家作文500字 【春之韵】散文诗组章之一:醒来 给台湾小朋友的一封信作文350字 所以纵使失望也是一种幸福,虽然这种幸福有点痛。 军旅之歌作文700字 高中高三作文1000字:善意的谎言 《中国合伙人》观后感作文1200字 一种灵性的修行是绘画 空瓶子的爱情 实用送花祝福语 环保类材料作文写作导引650字 街道政工科长先进事迹 伤感的QQ说说大全:面对你调侃的嘴唇,我无法抗拒 播种机 好玩的夹珠子——李昌豪作文200字 六年一班的那些娃儿(7)作文1600字 初中教师个人工作总结 初中环保作文 父亲励志书籍:《父与子》 我们到底还能[混]多久? 《两只狮子》后传作文150字 书包迷失案 中学体育卫生工作自评报告 读《红楼梦》有感(1000字) 2015中秋节个性祝福语 仅以稻香为题、听风吟唱童年。作文1000字 2016青年联欢会主持词 孙中山先生与卫兵的故事 有趣的科学实验 史铁生散文集读后感 行政费用管理制度 看鱼不如钓鱼500字 出游的经历作文 企业招聘最喜内部推荐 求职者应尝试多种方法 拥有伤感,珍视伤感 端午节传说 让你喜欢的女孩喜欢上你的秘籍 植物园作文700字 情人节给男朋友留言 有趣的义卖活动作文300字 无为而为的蝉(外一篇) 二年级暑假日记200字 从不同方向看教学反思 温暖天涯(前言) 2015最新精准扶贫小康驻村工作计划 小学四年级英语教学反思 神奇的梦200字 学习《教师怎样做教育叙事研究》心得体会 凡卡作文600字 与父亲相伴的日子

Copyright © 2016 phpStudy |