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. public class InitParamServlet extends HttpServlet {
  10.     String initParam=null;
  11.     public void init(ServletConfig config) throws ServletException {
  12.         this.initParam=config.getInitParameter(“ref”);
  13.     }
  14.     public void doGet(HttpServletRequest request, HttpServletResponse response)
  15.             throws ServletException, IOException {
  16.         System.out.println(“初始化参数:”+this.initParam);
  17.     }
  18.     public void 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. public class HttpSessionservlet extends HttpServlet {
  10.     public void 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.     public void 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. public class ServletContext extends HttpServlet {
  9.     public void doGet(HttpServletRequest request, HttpServletResponse response)
  10.             throws ServletException, IOException {
  11.         javax.servlet.ServletContext app =super.getServletContext();
  12.         System.out.println(“真实路径:”+app.getRealPath(“/”));
  13.     }
  14.     public void 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实例后,将虚拟目录所对应的真实路径输出。