1、Servlet的基本配置
Servlet的基本配置包括Servlet的名字、实现类、初始化参数和启动装入优先级的设置。这些都是最基本、最一般的配置,只有掌握它们才能更好地实现Servlet的功能。
Servlet的名字:例如,可用
<servlet-name>GlobleConfigServlet</servlet-name>
来定义com.example.config.GlobleConfigServlet的名字。Servlet类:指的是实现该Servlet的具体文件。分为两种情况:
当是Servlet文件时,用标签<servlet-class>
来表示。
当是JSP文件时,则要用标签<jsp-file>
来表示。例如,现有Register.jsp文件,通过访问它来完成用户注册。要配置该JSP文件,可以用<jsp-file>Register.jsp</jsp-file>
来定义RegisterServlet。它表明RegisterServlet是通过Register.jsp文件实现的。- 描述:
<description>这是一个Global Servlet</description>
显示名:显示名用来指定某Servlet在IDE工具中显示的名字。IDE工具可能会用此名字来标记此Web应用。如:
<display-name>WebApplication</display-name>
综合上述的小例子:
<servlet>
<description>该Servlet实现全局配置</description>
<servlet-name>GlobalConfigServlet</servlet-name>
<display-name>GlobalConfig Reloading Servlet</display-name><!--Servlet的现实名-->
<servlet-class>com.example.config.GlobalConfigServlet</servlet-class><!--实现类的完整路径-->
</servlet>
<servlet-mapping>
<servlet-name>GlobalConfigServlet</servlet-name>
<url-pattern>/GlobalConfig</url-pattern><!--访问该Servlet的 -->
</servlet-mapping>
2、servlet的初始化参数
Servlet的初始化参数是指在其配置文件中定义好的参数。使用它们可以方便参数的更改,并可保证Servlet的通用性。初始化参数在配置文件中的格式如下:
<init-param>
<param-name>这里设置参数的名字</param-name>
<param-value>这里设置参数的值</param-value>
</init-param>
3、servlet初始化参数的调用,通过一个例子来讲解:
编写一个使用JDBC来连接数据库的servlet程序。一些比较恒定的信息,如驱动程序、连接数据库的URL、用户名和密码,最好把它们放在web.xml中。在该servlet的实现类中可以通过特定的方法来获得这些参数的值,从而用他们去连接数据库。
JDBCServlet在web.xml中的配置如下:
<servlet>
<servlet-name>JDBCServlet</servlet-name>
<servlet-class>com.dao.JDBCServlet</servlet-class>
<init-param>
<param-name>Driver</param-name><!--定义驱动器参数-->
<param-value>com.mysql.jdbc.driver</param-value>
</init-param>
<init-param>
<param-name>Url</param-name><!--定义路径参数-->
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</init-param>
<init-param>
<param-name>UserName</param-name><!--定义用户名-->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>Password</param-name><!--定义密码-->
<param-value>root</param-value>
</init-param>
</servlet>
JDBCServlet实现类的代码如下所示,在该类的init()方法中获取上面设置的初始化参数。
public class JDBCServlet extends HttpServlet{
String driver;
String url;
String password;
String user;
/**
*获得初始化参数
**/
public void init() throws ServletException
{
driver=getInitParameter("Driver");
url=getInitParameter("Url");
user=getInitParameter("UserName");
password=getInitParameter("Password");
}
/**
*用初始化参数连接数据库
**/
public Connection getConnection()
{
...
}
}
在上面的init()方法中通过getInitParameter()获取了在web.xml中配置的4个初始化参数。然后再getConnection()方法中使用这些参数连接数据库。
4、启动装入优先级的设置
启动装入优先级是指不同的Servlet被Tomcat服务器加载的先后次序。设置该项可以保证Servlet按照一定的顺序加载。在配置文件中,通过在标签
<load-on-startup></load-on-startup>
之间添加一个数字来完成优先级的设置。数字越大,越后被加载。
5、Servlet映射
Servlet映射是将该Servlet与访问它的URL地址建立对应关系。可以为同一个Servlet建立多个映射。这样就可以通过URL地址调用该Servlet。在配置文件中,建立映射的格式为:
<servlet-mapping>
<servlet-name>这里引用servlet的名字</servlet-name>
<url-pattern>这里定义访问该servlet的 </url-patter>
</servlet-mapping>
注意:
<url-pattern>
定义的并不是完整的URL地址。它只是一个相对地址。只有在前面加上服务器地址(http://localhost:8080)和应用程序的context名之后,才能构成访问该Servlet的绝对地址。