web.xml servlet、servlet-mapping配置

Servlet常称为服务器端小程序,即运行在服务器端的程序,用于处理及响应客户的请求。

Servlet类是个特殊的java类,继承于HttpServlet。

---------------------------------------------------------------

方法

客户端通常只有GET和POST两种请求方式,Servlet为了响应则两种请求,必须重写doGet()和doPost()方法。大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写service()方法即可响应客户端的所有请求。

另外,HttpServlet还有两个方法:

(1). init(ServletConfig config):创建Servlet实例时,调用该方法的初始化Servlet资源。

(2). destroy():销毁Servlet实例时,自动调用该方法的回收资源。

通常无需重写init()和destroy()两个方法,除非需要在初始化Servlet时,完成某些资源初始化的方法,才考虑重写init()方法,如果重写了init()方法,应在重写该方法的第一行调用super.init(config),该方法将调用HttpServlet的init()方法。

如果需要在销毁Servlet之前,先完成某些资源的回收,比如关闭数据库连接,才需要重写destory方法()。

---------------------------------------------------------------

Servlet创建时机

(1). 客户端第一次请求某个Servlet时,系统创建该Servlet的实例,大部分Servlet都是这种Servlet。

(2). Web应用启动时立即创建Servlet实例,即load-on-start Servlet。

---------------------------------------------------------------

Servlet的生命周期

(1). 创建Servlet实例。

(2). Web容器调用Servlet的init()方法,对Servlet进行初始化。

(3). Servlet初始化后,将一直存在于容器中,用于响应客户端请求,如果客户端发送GET请求,容器调用Servlet的doGet()方法处理并响应请求;如果客户端发送POST请求,容器调用Servlet的doPost()方法处理并响应请求。或者统一使用service()方法处理来响应用户请求。

(4). Web容器决定销毁Servlet时,先调用Servlet的destory()方法,通常在关闭Web应用时销毁Servlet实例。

---------------------------------------------------------------

Servlet配置

配置Servlet有两种方式:

(1). 在Servlet类中使用@WebServlet Annotation进行配置。

(2). 在web.xml文件中进行配置。

我们用web.xml文件来配置Servlet为例

<servlet>

声明一个Servlet

<icon>、<display-name>和<description>元素的用法和<filter>的用法相同。

<init-param>元素与<context-param>元素具有相同的元素描述符,可以使用<init-param>子元素将初始化参数名和参数值传递给Servlet,

<description>:为Servlet指定一个文本描述。

<display-name>:为Servlet提供一个简短的名字被某些工具显示。

<icon>:为Servlet指定一个图标,在图形管理工具中表示该Servlet。

<servlet>必须含有<servlet-name>和<servlet-class>,或者<servlet-name>和<jsp-file>。 描述如下:

1). <servlet-name>用来定义servlet的名称,该名称在整个应用中必须是惟一的。

2). <servlet-class>用来指定servlet的完全限定的名称。

3). <jsp-file>用来指定应用中JSP文件的完整路径。这个完整路径必须由/开始。

备注:JSP文件可以被编译成Servlet

<load-on-startup>

如果load-on-startup元素存在,而且也指定了jsp-file元素,则JSP文件会被重新编译成Servlet,同时产生的Servlet也被载入内存。

<load-on-startup>的内容可以为空,或者是一个整数。这个值表示由此servlet被Web容器载入内存的顺序,小的会被先加载。

例如:有两个Servlet元素都含有<load-on-startup>子元素,则<load-on-startup>子元素值较小的Servlet将先被加载。

如果<load-on-startup>子元素值为空或负值,则由Web容器决定什么时候加载Servlet。如果两个Servlet的<load-on-startup>子元素值相同,则由Web容器决定先加载哪一个Servlet。<load-on-startup>1</load-on-startup>表示启动容器时,初始化Servlet。

---------------------------------------------------------------

Servlet-mapping配置

<servlet-mapping>

1). <servlet-name>:Servlet的名字,与<servlet>元素中声明的名字一致。

2). <url-pattern>:指定相对于Servlet的URL的路径。该路径相对于web应用程序上下文的根路径。<servlet-mapping>将URL模式映射到某个Servlet,即该Servlet处理的URL。

---------------------------------------------------------------

加载Servlet的过程 

容器的Context对象对请求路径(URL)做出处理,去掉请求URL的上下文路径后,按路径映射规则和Servlet映射路径(<url- pattern>)做匹配,如果匹配成功,则调用这个Servlet处理请求。

---------------------------------------------------------------

ServletConfig

访问Servlet配置参数通过ServletConfig对象来完成,ServletConfig提供如下方法:

java.lang.String.getInitParameter(java.lang.String name):用于获取初始化参数

ServletConfig获取配置参数的方法和ServletContext获取配置参数的方法完全一样,只是ServletConfig是取得当前Servlet的配置参数,而ServletContext是获取整个Web应用的配置参数。

---------------------------------------------------------------

引入springmvc.xml

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

例子:

<servlet>
    <servlet-name>business</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>publishContext</param-name>
      <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<!-- </span><span style="font-family:SimSun;">用户登出</span><span style="font-family:Times New Roman;"> -->
<servlet>
    <servlet-name>LogOutServlet</servlet-name>
    <servlet-class>com.yonyou.mcloud.cas.web.servlet.LogOutServlet</servlet-class>
    <init-param>
      <param-name>serverLogoutUrl</param-name>
      <param-value>https://dev.yonyou.com:443/sso-server/logout</param-value>
    </init-param>
    <init-param>
      <param-name>serverName</param-name>
      <param-value>http://10.1.215.40:80/business/</param-value>
    </init-param>
</servlet>
<!--****************************servlet</span><span style="font-family:SimSun;">映射关系配置</span><span style="font-family:Times New Roman;">*************************-->
<servlet-mapping>
    <servlet-name>LogOutServlet</servlet-name>
    <url-pattern>/logout</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>business</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

原文地址:https://www.cnblogs.com/yanze/p/10457924.html

时间: 2024-10-28 19:38:55

web.xml servlet、servlet-mapping配置的相关文章

java web.xml listener servlet 和filter的加载顺序

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servle

Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]

前言 今天研究了一下tomcat上web.xml配置文件中url-pattern的问题. 这个问题其实毕业前就困扰着我,当时忙于找工作. 找到工作之后一直忙,也就没时间顾虑这个问题了. 说到底还是自己懒了,没花时间来研究. 今天看了tomcat的部分源码 了解了这个url-pattern的机制.  下面让我一一道来. tomcat的大致结构就不说了, 毕竟自己也不是特别熟悉. 有兴趣的同学请自行查看相关资料. 等有时间了我会来补充这部分的知识的. 想要了解url-pattern的大致配置必须了解

Servlet(五岁以下儿童)web.xml一些常用的配置

(1)lode-on-startup,这Servlet该项目启动时它将被称为(从主要的电话init办法,为了安全起见,一般不应为Servlet建立URL制图).一些数据通常被用作前处理,或使用多线程建立经常性的任务 <servlet><pre name="code" class="html"><span style="font-family:Arial, Helvetica, sans-serif;"> <

Servlet(五)web.xml常用的一些配置

(1)lode-on-startup,该Servlet会在项目启动时被调用(主要调用起init方法,为安全着想,一般不应该为该Servlet建立URL映射),一般用作预处理一些数据,或者配合多线程建立定时任务 <servlet><pre name="code" class="html"><span style="font-family:Arial, Helvetica, sans-serif;"> </s

j2ee之web.xml (Servlet 3.0)配置讲解

web.xml :是j2ee 项目最基本的配置文件,是服务器加载项目的入口,当然3.0开始也可以在代码中中配置项目所需要的一系列参数.在tomcat conf中存在web.xml,项目中的配置都会继承和覆盖该文件的配置. 基本配置:1.欢迎文件设置:  <welcome-file-list>  <welcome-file>index.html</welcome-file>  <welcome-file>index.htm</welcome-

web.xml中servlet的配置

<servlet>元素是配置Servlet所用的元素. <servlet-mapping>元素在Servlet和URL样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问你的servlet. 下面给出一段配置代码: <servlet> <servlet-name>ServletName</servlet-name> <servlet-class>xxxpackage.xxxServlet<

Spring项目的配置文件们(web.xml context servlet springmvc)

我们的spring项目目前用到的配置文件包括1--web.xml文件,这是java的web项目的配置文件.我理解它是servlet的配置文件,也就是说,与spring无关.即使你开发的是一个纯粹jsp页面的web项目,你也必须配置这个文件.我们的java web项目肯定写了很多servlet代码,这些servlet需要运行在servlet容器中,这个容器就是tomcat的重要组件.也就是,你的web项目需要运行在tomcat中,那么你必须提供一个web.xml文件作为配置文件.在这个文件中,通过

web xml在servlet中的作用

web.xml其实就是servlet的一个配置文件,通过这个配置文件来寻找对应的servlet处理业务. <servlet> <servlet-name>MyServlet </servlet-name> //这里是servlet 的名字,自己定义 的 <servlet-class>package.Servlet </servlet-class> //这里是servlet的位置 . 如果在 一个包下, 就写 包名.类名 </servlet&

Tomcat部署web项目,虚拟目录,上下文(Context),WEB-INF,web.xml,servlet

Web项目的uri模型大致如下: http://localhost:8080 (/context) (/resource) 站点/上下文/资源 一. Tomcat中指定上下文(Context) 方法一,位于webapps文件夹中的web项目,无需指定Context,Tomcat默认解析为该web项目根文件夹的名称,即为真实目录名称. 方法二,在server.xml中指定Context. 编辑conf\server.xml文件,在元素之间加入子元素,内容如下: <Context docBase=”

SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】

配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-c