版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LY121600HACKER/article/details/78302072
Servlet作为web组件可以处理http请求/响应,因而对外要求一个唯一的URL地址。Servlet可以在
web的配置文件/WEB-INF/web.xml中进行配置,也可以在注释中进行配置。
Servlet的配置分为声明和映射两个步骤:
1.声明:
(1).Servlet声明:通知web容器这个Servlet的存在。
<servlet>
<servlet-name>SignIn</servlet-name>
<servlet-class>cn.mirror6.servlet.SignIn</servlet-class>
</servlet>
<servlet-name>声明Servlet的名字,一般与Servlet的类名相同即可,要求在一个web.xml文件内名字唯一。
<servlet-class>指定Servlet的全名,即包名.类名。
(2).Servlet初始参数:在Servlet中可以读取参数信息,从而避免在Servlet代码中定义这些参数。当这些信息修改时,只修改配置文件即可。
<servlet>
<init-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
</servlet>
<init-param>标签里的就是参数。
<param-name>指定参数的名字。
<param-value>指定参数的值。
在Servlet中可以通过ServletConfig(config.getInitParameter(“”))取得定义的初始化参数.
(3).Servlet启动时机:在配置Servlet时,可以指定Servlet跟随web容器一起自动启动,这时Servlet就可
以在没有请求的情形下就行实例化和初始化,完成特定的任务。
<load-on-startup>2</load-on-startup>
数字表示启动的顺序,数字越小越先启动,最小为0,表示紧跟web容器启动后,第一个启动。原则上不同的
Servlet应该使用不同的启动顺序。
<servlet>
<servlet-name>action</servlet-name>
<servlet-value>org.apache.struts.action.ActionServlet</servlet-value>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
2.映射:
Servlet被外部访问,需要一个映射地址。
<servlet-mapping>
<servlet-name>servlet名称</servlet-name>
<url-pattern>URL</url-pattern>
</servlet-mapping>
(1).绝对地址映射:绝对地址只能映射到一个地址,URL的格式如下:/目录/目录/文件名.扩展名。
<servlet-mapping>
<servlet-name>LoginAction</servlet-name>
<url-pattern>/login.action</url-pattern>
</servlet-mapping>
(2).匹配目录模式映射:这类映射重点是匹配目录,只要目录符合映射模式,不考虑文件名,可以响应多个地址。
URL的格式如下:/目录/目录/*。
<servlet-mapping>
<servlet-name>MainAction</servlet-name>
<url-pattern>/main/*</url-pattern>
</servlet-mapping>
(3).匹配扩展名模式映射:以匹配扩展名的方式进行URL映射,不考虑文件的目录信息,也可以响应多个地址。
URL的格式如下:*.扩展名。
<servlet-mapping>
<servlet-name>MainAction</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
注意:不能混合使用映射模式,否则会出错。
注释的方法这里不做详细的介绍。
参照教材整理的学习笔记