Servlet的配置

   Servlet配置包含Servlet的名字、Servlet的類(如果是JSP,那麼就指定JSP文件)、初始化參數、啓動裝入的優先級、Servlet的映射和運行的安全設置。Servlet配置的DTD如下 
引用

<!EKENENT servlet(icon?,servlet-name,display-name?,description?, 
(servlet-class|jsp-file),init-param*,load-on-startup?,run-as?,security-role-ref*)> 

下面結合一個實例 
Java代碼  收藏代碼
  1.   package com.test.ch8  
  2.  import java.io.*;  
  3.  import javax.servlet.*;  
  4.  import javax.servlet.http.*;  
  5.    
  6.  public class CounterServlet extends HttpServlet{  
  7.   int counter=0;  
  8.   int org=0;  
  9.      
  10.   //處理doGet請求  
  11.   public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{  
  12.    response.setContentType("text/html;charset=gb2312");  
  13.    PrintWriter out=response.getWriter();  
  14.    counter++;  
  15.    out.println("Servlet載入,它被訪問"+counter+"次,加上初始化的配置,"  
  16.   +"這個Servlet共訪問了"+(org+counter)+"次");  
  17. }  
  18.  //初始化方法,獲得初始參數  
  19.  public void init() throws ServletException  
  20.  {  
  21.     String c=getInitParameter("counter");  
  22.     try{  
  23.       org=Integer.parseInt(c);  
  24.       }  
  25.     catch(Exception e){  
  26.    e.printStackTrace();  
  27.   }  
  28.  }  
  29.   }  


Servlet的名字、類和其他雜項 

  在配置Servlet時,首先必須指定Servlet的名字、Servlet的類(如果是JSP,必須指定JSP文件的位置)。另外,可以選擇性地給Servlet增加一定的描述,並且指定它在部署時顯示的名字和部署時顯示的Icon。 
CounterServlet是這樣被配置的如下 
Xml代碼  收藏代碼
  1. <servlet>  
  2.     <description>Servlet配置</description>  
  3.     <display-name>TestServletConfig</display-name>  
  4.     <servlet-name>CounterServlet</servlet-name>  
  5.     <servlet-class>com.test.ch8.CounterServlet</servlet-class>  
  6.    .........  
  7. </servlet>  

如果要配置的Servlet是一個JSP文件,那麼可以這樣設置 
Xml代碼  收藏代碼
  1. <servlet>  
  2.   <servlet-name>NewUserServlet</servlet-name>  
  3.   <jsp-file>newUser.jsp</jsp-file>  
  4. </servlet>  


初始化參數 
Xml代碼  收藏代碼
  1. <servlet>  
  2.    <init-param>  
  3.        <param-name>counter</param-name>  
  4.        <param-value>10000</param-value>  
  5.    </init-param>  
  6. </servlet>  

在這個配置中,指定counter的參數值爲10000 

啓動裝入優先級 
  啓動裝入優先級通過<load-on-startup>配置,例如 
Xml代碼  收藏代碼
  1. <servlet>  
  2.   <servlet-name>NewUserServlet</servlet-name>  
  3.   <jsp-file>newUser.jsp</jsp-file>  
  4.   <load-on-startup>10</load-on-starup>  
  5. </servlet>  
  6. <servlet>  
  7.   <servlet-name>HelloWorldServlet</servlet-name>  
  8.   <servlet-class>com.test.HelloWorldServlet</servlet-class>  
  9.   <load-on-startup>30</load-on-starup>  
  10. </servlet>  
  11. <servlet>  
  12.   <servlet-name>PrintServlet</servlet-name>  
  13.   <servlet-class>com.test.HelloWorldServlet2</servlet-class>  
  14.   <load-on-startup>AnyTime</load-on-starup>  
  15. </servlet>  

那麼可以保證NewUseServlet在HelloWorldServlet之前被載入,PrintServlet可以在服務啓動後的任何時候載入。 

Servlet的映射 
    可以給一個Servlet做多個映射,這樣,我們可以通過不同的方式訪問這個Servlet。例如 
Xml代碼  收藏代碼
  1. <servlet-mapping>  
  2.    <servlet-name>CounterServlet</servlet-name>  
  3.    <url-pattern>/count_servlet</url-pattern>  
  4. </servlet-mapping>  
  5.  <servlet-mapping>  
  6.    <servlet-name>CounterServlet</servlet-name>  
  7.    <url-pattern>/count/*</url-pattern>  
  8. </servlet-mapping>  
  9.  <servlet-mapping>  
  10.    <servlet-name>CounterServlet</servlet-name>  
  11.    <url-pattern>/test/counterservlet/count.html</url-pattern>  
  12. </servlet-mapping>  
  13.  <servlet-mapping>  
  14.    <servlet-name>CounterServlet</servlet-name>  
  15.    <url-pattern>/test/count.html</url-pattern>  
  16. </servlet-mapping>  

通過這些配置,我們可以使用不同的方式訪問這個Servlet。有趣的是,對於第二種映射方式,可以通過/count開頭,都能訪問這個Servlet。 

運行安全設置 
  關於Web應用的安全配置,這裏先給出一個簡單的例子:CounterServlet的安全配置 
Xml代碼  收藏代碼
  1. <servlet>  
  2.    <run-as>  
  3.       <role-name>admin</role-name>  
  4.   </run-as>  
  5.    <security-role-ref>  
  6.       <role-name>admin</role-name>  
  7.       <role-link>admin</role-link>  
  8.    </security-role-ref>  
  9. </servlet>  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章