【摘要】:表2.2@WebServlet 的属性列表2.web.xml 手动配置注意:这一步不是必须的,如果已经使用@WebServlet 配置了信息,那么请不要进行这步操作。例2.1 中Web 应用程序的配置文件web.xml 内容如下:web.xml 是Java Web 应用程序部署描述符文件,它是一个XML 文件,用来描述Web应用程序的配置和部署信息,位于WEB-INF 目录下。web.xml 部署描述符文件的顶层(根)元素为。在web.xml 中,不仅大小写是敏感的,而且定义它们的次序也很重要。
1.web.xml 注解配置
在例2.1 中,访问HelloWorldServlet 的路径为什么是下面这样的呢?
在servlet3.0 以后,可以不用再web.xml 里面配置servlet,只需要加上@WebServlet 注解就可以修改该servlet 的属性了。换句话说,如果你不想在web.xml中配置servlet 信息,那么你就可以在@WebServlet 注解中修改它的属性。例2.1 中Servlet 的注解内容如下:
下面是@WebServlet 的属性列表,见表2.2。
表2.2 @WebServlet 的属性列表
2.web.xml 手动配置
注意:这一步不是必须的,如果已经使用@WebServlet 配置了信息,那么请不要进行这步操作。
例2.1 中Web 应用程序的配置文件web.xml 内容如下:
web.xml 是Java Web 应用程序部署描述符文件,它是一个XML 文件,用来描述Web应用程序的配置和部署信息,位于WEB-INF 目录下。
部署描述符文件就像所有XML 文件一样,必须以一个XML 头开始。这个XML 头声明可以使用的XML 版本并给出文件的字符编码。DOCYTPE 声明必须立即出现在此XML 头之后。这个声明告诉服务器适用的Servlet 规范的版本(如3.0),并指定管理此文件其余部分内容的语法的Schema。
➢ web.xml 部署描述符文件的顶层(根)元素为<web-app>。
➢ <servlet>元素是配置Servlet 所用的元素。
➢ <servlet-mapping>元素在Servlet 和URL 样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问你的servlet。
具体的配置如下:
<servlet>元素主要用于在web.xml 中注册一个已存在的Servlet、为Servlet 定义初始化参数等。最常见的格式包括<servlet-name>和<servlet-class>子元素,如下:(www.chuimin.cn)
表示 com.servlet.HelloWorldServlet 的 Servlet 已经得到了注册名HelloWorldServlet。其中<description>元素给出与此有关的说明性文本,<display-name>元素提供GUI 工具可能会用来标记这个特定的Web 应用的一个名称,这些元素都是可选的。<servlet-name>可以是任意的自定义的Servlet 名称,而<servlet-class>指定指向的Servlet 类(包含包名)。
给Servle 命名之后,就可以在获取初始化参数、定制URL 以及其他定制通过此注册名而不是类名引用此Servlet。例如,在<servelt-mapping>中通过注册名HelloWord Servlet 引用com.servlet.HelloWorldServlet。
上述代码其实就是在定制Servlet URL(映射Servlet)。在Tomcat 服务器中,缺省(即默认)的Servlet URL 形式为:
如“http://localhost:8080/first_servlet/servlet/HelloWorldServlet”就是使用的缺省的Servlet URL 形式。
缺省形式的Servlet URL 虽然在开发中使用起来方便,但是由于这种形式是公开的,所以安全性不高,而且比较长。所以常常也希望自己定制URL,比如使用“http://localhost:8080/first_servlet/sayhello”,这样的URL 与缺省的URL 相比,简短多了,也大大提高了安全性。
定制Servlet URL,可使用<servlet-mapping>元素及其<servlet-name>和<url-pattern>子元素。<servlet-name>元素引用在<servlet>元素中注册的Servlet;<url-pattern>元素描述了相对于Web 应用程序根目录的URL。<url-pattern>元素的值必须以斜杠(/)起始。例如为HelloWorldServlet 定制URL:
这样就可以使用“http://localhost:8080/first_servlet/sayhello”来访问HelloWorldServlet 了,只是URL 发生了变化。运行结果与图2.7 所示的一致,如图2.8 所示。
图2.8 定制Servlet URL
在定制URL 之后,就不可以使用缺省的URL 访问了。
在web.xml 中,不仅大小写是敏感的,而且定义它们的次序也很重要。例如,<web-app>元素内所有<servlet>元素必须位于所有<servlet-mapping> 元素之前。类似地,在<servlet>元素中,<servlet-name>元素也必须出现在<servlet-class>元素之前;在<servlet-mapping>元素中,<servlet-name>元素也必须出现在<url-pattern>元素之前。
在前面提到的web.xml 中,<web-app>元素下还有一个<welcome-file-list>元素。<welcome-file-list>元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。<welcome-file>子元素用于指定默认文件。例如:
<welcome-file-list>元素可以包含一个或多个<welcome-file>子元素。如果没有找到第一个<welcome-file>元素所指定的文件,Web 容器就会尝试显示第二个,以此类推。若所有<welcome-file>元素所指定的文件都未在网站中找到,就会报错404 错误。
相关推荐