1. 程式人生 > >servlet 配置資訊及初始化引數

servlet 配置資訊及初始化引數

Servlet取得初始化配置資訊:

通過config物件可以讀取web.xml中的配置的初始化引數,此物件實際上是ServletConfig藉口的例項。可以通過init()方法找到ServletConfig介面例項。

讀取初始化配置資訊------InitParamServlet.Java

  1. package com.ls.servlet_01;  
  2. import java.io.IOException;  
  3. import java.io.PrintWriter;  
  4. import javax.servlet.ServletConfig;  
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9. publicclass InitParamServlet extends HttpServlet {  
  10.     String initParam=null;  
  11.     publicvoid init(ServletConfig config) throws ServletException {  
  12.         this
    .initParam=config.getInitParameter("ref");  
  13.     }  
  14.     publicvoid doGet(HttpServletRequest request, HttpServletResponse response)  
  15.             throws ServletException, IOException {  
  16.         System.out.println("初始化引數:"+this.initParam);  
  17.     }  
  18.     publicvoid doPost(HttpServletRequest request, HttpServletResponse response)  
  19.             throws ServletException, IOException {  
  20.         this.doGet(request, response);  
  21.     }  
  22. }  

在web.xml中配置初始化資訊

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"
  3.     xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <servlet>  
  8.     <servlet-name>InitParamServlet</servlet-name>  
  9.     <servlet-class>com.ls.servletd_01.InitParamServlet</servlet-class>  
  10.     <init-param>  
  11.         <param-name>ref</param-name>  
  12.         <param-value>liusheng</param-value>  
  13.     </init-param>  
  14.  </servlet>  
  15.  <servlet-mapping>  
  16.     <servlet-name>InitParamServlet</servlet-name>  
  17.     <url-pattern>/InitParamServlet</url-pattern>  
  18.   </servlet-mapping>  
  19.   <welcome-file-list>  
  20.     <welcome-file>index.jsp</welcome-file>  
  21.   </welcome-file-list>  
  22. </web-app>    

程式執行結果:在Tomcat後臺列印

                   初始化引數:liusheng


用<init-param>直接配置初始化

<param-name>表示引數名稱

<param-value>表示引數的內容

注意:

    在Servlet中初始化方法一共有init()和init(ServletConfig config)兩個,如果兩個初始化方法同時出現,則呼叫的是init(ServletConfig config)方法。

Servlet取得其他內建物件:

    1、取得HttpSession例項

在servlet程式中要想取得一個session物件,則可以通過HttpServletRequest介面完成,有以下操作方法:

public HttpSession getSession()      返回當前的session

public HttpSession  getSession(boolean  create)     返回當前的session,如果沒有則建立一個新的session物件返回

取得HttpSession物件---HttpSessionservlet.java

  1. package com.ls.servlet_02;  
  2. import java.io.IOException;  
  3. import java.io.PrintWriter;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. import javax.servlet.http.HttpSession;  
  9. publicclass HttpSessionservlet extends HttpServlet {  
  10.     publicvoid doGet(HttpServletRequest request, HttpServletResponse response)  
  11.             throws ServletException, IOException {  
  12.         HttpSession ses = request.getSession();  
  13.         System.out.println("SESSION-->" + ses.getId());  
  14.         ses.setAttribute("username""劉勝");  
  15.         System.out.println("username屬性內容是:" + ses.getAttribute("username"));  
  16.     }  
  17.     publicvoid doPost(HttpServletRequest request, HttpServletResponse response)  
  18.             throws ServletException, IOException {  
  19.         this.doGet(request, response);  
  20.     }  
  21. }  

配置web.xml檔案

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"
  3.     xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  <servlet>  
  8.     <servlet-name>HttpSession</servlet-name>  
  9.     <servlet-class>com.ls.servlet_02.HttpSessionservlet</servlet-class>  
  10.   </servlet>  
  11.  <servlet-mapping>  
  12.     <servlet-name>HttpSession</servlet-name>  
  13.     <url-pattern>/servlet_HttpSession</url-pattern>  
  14.   </servlet-mapping>  
  15.   <welcome-file-list>  
  16.     <welcome-file>index.jsp</welcome-file>  
  17.   </welcome-file-list>  
  18. </web-app>  


程式執行結果: Tomcat後臺顯示


 本程式通過getSession()方法取得了一個HttpSession物件後,輸出了Session Id以及屬性的設定及取得操作。

      2、取得ServletContext例項

application內建物件是ServletContext 介面的例項,表示的是Servlet上下文。如果要在一個servlet中使用此現象,直接通過GenericServlet類提供的方法即可:

public ServletContext getServletContext()      取得ServletContext物件

取得application物件-----ServletContext.java

  1. package com.ls.servlet_03;  
  2. import java.io.IOException;  
  3. import java.io.PrintWriter;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. publicclass ServletContext extends HttpServlet {  
  9.     publicvoid doGet(HttpServletRequest request, HttpServletResponse response)  
  10.             throws ServletException, IOException {  
  11.         javax.servlet.ServletContext app =super.getServletContext();  
  12.         System.out.println("真實路徑:"+app.getRealPath("/"));  
  13.     }  
  14.     publicvoid doPost(HttpServletRequest request, HttpServletResponse response)  
  15.             throws ServletException, IOException {  
  16.         this.doGet(request, response);  
  17.     }  
  18. }  


配置web.xml檔案

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"
  3.     xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  <servlet>  
  8.     <servlet-name>ServletContext</servlet-name>  
  9.     <servlet-class>com.ls.servlet_03.ServletContext</servlet-class>  
  10.   </servlet>  
  11. <servlet-mapping>  
  12.     <servlet-name>ServletContext</servlet-name>  
  13.     <url-pattern>/servlet_ServletContext</url-pattern>  
  14.   </servlet-mapping>  
  15.   <welcome-file-list>  
  16.     <welcome-file>index.jsp</welcome-file>  
  17.   </welcome-file-list>  
  18. </web-app>  


程式執行結果:  Tomcat後臺輸出

    本程式通過getServletContext()方法取得ServletContext例項後,將虛擬目錄所對應的真實路徑輸出。