浅析web.xml文件里的一些常用的标签

这段时间在培训jsp,上午老师讲了web.xml的一些常用的标签,现在总结一下笔记,晒晒,网各位网友们指教一二。

web.xmlWeb应用程序的部署描述文件,是用来给Web服务器解析并获取Web应用程序相关描述的

<servlet>用来在Web应用中定义一个Servlet

<servlet>

<servlet-name>LoginServlet</servlet-name>

<servlet-class>javaweb.LoginServlet</servlet-class>

<init-param>

<param-name>driver</param-name>

<param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<init-param>:是给servletinit()方法传递需要的信息的,这些值会被封装成ServletConfig对象。如:连接数据库需要的driverurluserpassword等数据,就可以写在<init-param>标签里,然后重载init()方法,new 一个ServletConfig对象,就可以取到这些值了。

如:public void init() throws ServletException{

ServletConfigconfig=getServletConfigString ;

driver = config.getParameter(“driver”);

}

由于<init-param>是在<servlet>里面,属于<servlet>内部的标签,因此里面的值也只能是这一个servlet能取到,并且也只能在该servletinit()方法里取到。其他的servlet是不能取到这个servlet里的值的,因此如果遇到,大一点的一些项目,里面有很多servlet,这些servlet都需要访问数据库,那么这样写就很麻烦了。

<context-param>为了解决<init-param>的局限性,我们有了<context-param>,它就相当于全局变量似的,整个工程中任何的servlet都可以用里面的值,并且也不仅限于在init()方法中取值,哪个方法里都可以取到值。

<context-param>

<param-name>configLocation</param-name>

<param-value>/WEB-INF/myAppCofig.xml</param-value>

</context-param>

整个参数表明了一个配置文件的所在路径,在任一Servlet代码中可以使用如下方式获取其值

String configLocation=getServletContext().getInitParameter(“configLocation”);

不过它的缺点是:耗费资源。当访问量大的时候,用数据库连接池会比较好。

因此我们在这里总结:

小型项目:<init-param> ,中型项目:<context-param>,大型项目:连接池。

<load-on-startup>设置服务器装载的顺序,如果你的级别高(也就是数字小),那么你就会被首先装载。

<servlet-mapping>提供了能够使用某一Servlet处理请求的映射地址

当客户端发送请求:http://www.yourserver.com/youwebapp/login,路径中含有“/login”,所以Web服务器将会把此请求交给匹配此路径的LoginServlet处理

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

 

<error-page>可以通过定义特定的错误页面,当服务器产生错误时会选择相应的页面展示给用户。可以通过web.xml中的<error-page>元素来定义产生异常时需要返回的页面

<error-page>

<error-code>404</error-code>

<location>/404.html</location>

</error-page>

<error-page>

<exception-type>java.lang.NullPointerException</exception-type>

<location>/exception.html</location>

</error-page>

<welcome-file-list>:默认页面,在这里可以设置工程默认页

 

<filter>:标签和<servlet>标签功能类似,这里是向容器定义并注册一个filter对象的

<filter>

    <filter-name>Filter1</filter-name>

    <filter-class>com.neu.filter.filter1</filter-class>

</filter>

<filter>中的<init-param><servlet>中的功能一样,不过这个是封装成filterConfig

<filter-mapping>

    <filter-name>Filter1</filter-name>

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

</filter-mapping>

<filter-mapping>标签和<servlet-mapping>功能类似,来匹配客户端请求路径的,如上面的<filter-mapping>就是对所有的请求都要经过过滤器的。

<filter-mapping>中有个<servlet-name>这个标签的功能是指定该filter只对这个servlet有效,而对其他的无效。

 

 

 

你可能感兴趣的:(浅析web.xml文件里的一些常用的标签)