淺 談 Servlet

淺 談 Servlet



一、傳統 Servlet配置與Java EE 7 Servlet 之間的比較



    我們都知道,傳統創建一個Servlet後,都需要在web.xml文件中進行相關的配置。即需要在web.xml


文件中添加以下代碼:

<servlet>
    <servlet-name>First_Servlet</servlet-name>
    <servlet-class>servlet.First_Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>First_Servlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>


    而在Java EE 7 中,每當我們創建一個新的Servlet時,不需要再e.xml文件中進行相關配置了,只


需要將Servlet類繼承HttpServlet,並在該類前聲明 @WebServlet("/hello")註解,啓動Tomcat服務器


後,在本機即可通過  http://localhost:8080/Java_Web/hello  對該Servlet進行訪問。


    注意點:

    

    1、@WebServlet 註解是用來標識一個類是一個Servlet類的。

    

    2、該註解使用時,一般包含 urlPatterns、value 屬性,但是,當該註解只是用來聲明Servlet的


訪問路徑時,即聲明urlPatterns時,只需指定value值即可。否則,當需要以上兩個屬性外的其他屬性


時,需要顯示指定urlPatterns屬性,而不能只指定value值。



二、傳統 Servlet初始化參數配置與Java EE 7 Servlet 之間的比較



    在Java web中,我們可以配置至少兩種類型的參數。


    第一種是web全局初始化參數,該參數對整個web應用生效。第二種是servlet初始化參數。但在以前


都是在web.xml文件中進行配置,相關詳細配置如下:

 
 <!-- 全局參數 -->
 <context-param>
      <param-name>user</param-name>
      <param-value>root</param-value>
  </context-param>
  
  <!-- Servlet參數 -->
    <servlet>
    <servlet-name>First_Servlet</servlet-name>
    <servlet-class>servlet.First_Servlet</servlet-class>
    <init-param>
      <param-name>user</param-name>
      <param-value>root</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>First_Servlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

    以上兩種參數在一個Servlet中可以通過以下方式獲得:

    

String userName = request.getServletContext().getInitParameter("user");
		System.out.println("=="+userName);
		
		
public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		super.init(config);		
		System.out.println(config.getInitParameter("user"));
	}
或者:
ServletConfig p = this.getServletConfig();
	String value = p.getInitParameter("name");
		System.out.println(value);
		
//注意:不能通過request對象直接獲取初始化參數的值,但可以通過request獲取ServletContext對///象然後獲取全局初始化變量的值,如
        request.getServletContext().getInitParameter("user")


    當然除了以上兩種參數,我們也可以根據需要配置其他的參數,如Filter過濾器參數。


    在Java EE 7 中,允許使用Java註解來定義Servlet初始化參數(非全局參數)

//在聲明Servlet路徑的同時也聲明瞭該Servlet的一個初始化參數
@WebServlet(urlPatterns="/a",initParams=@WebInitParam(name="name",value="a"))

    我們或許會問,那如果我想聲明多個Servlet初始化參數呢?

//在聲明Servlet路徑的同時也聲明瞭該Servlet的2個初始化參數
@WebServlet(urlPatterns="/a",initParams={@WebInitParam(name="name",value="a"),@WebInitParam(name="age",value="13")})

    在@WebServlet註解中,initParams屬性可以傳入一個@WebInitParam註解數組,每個@WebInitParam


註解相當於定義了一個初始化參數,但注意,多個參數要以中括號{}包裹着。







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