代码改变世界

Servlet中取得application对象的两种方法

2013-05-24 00:54  LvSir  阅读(9739)  评论(0编辑  收藏  举报

Servlet中,取得application有两种方法:
1.通过无参初始化方法,直接取得;
2.通过有参初始化方法,必须使用config对象取得。

实例:
1.无参初始化方法:
Application.java:
view plaincopy to clipboardprint?

   1. package mgc.servlet.test;  
   2.  
   3. import java.io.*;  
   4. import javax.servlet.*;  
   5. import javax.servlet.http.*;  
   6.  
   7. public class Application extends HttpServlet {  
   8.       
   9.     public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {  
  10.         this.doPost(request,response);  
  11.     }  
  12.       
  13.     public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {  
  14.         //取得Application对象  
  15.         ServletContext application=this.getServletContext();  
  16.         //设置Application属性  
  17.         application.setAttribute("name", "Magci");  
  18.         //跳转到接收页面  
  19.         response.sendRedirect("application.jsp");  
  20.     }  
  21. } 

package mgc.servlet.test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Application extends HttpServlet {
   
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
        this.doPost(request,response);
    }
   
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
        //取得Application对象
        ServletContext application=this.getServletContext();
        //设置Application属性
        application.setAttribute("name", "Magci");
        //跳转到接收页面
        response.sendRedirect("application.jsp");
    }
}



web.xml:
view plaincopy to clipboardprint?

   1.   <servlet
   2.     <servlet-name>Application</servlet-name> 
   3.     <servlet-class>mgc.servlet.test.Application</servlet-class> 
   4.   </servlet
   5.  
   6.   <servlet-mapping> 
   7.     <servlet-name>Application</servlet-name> 
   8.     <url-pattern>/servlet/application</url-pattern> 
   9.   </servlet-mapping> 

  <servlet>
    <servlet-name>Application</servlet-name>
    <servlet-class>mgc.servlet.test.Application</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Application</servlet-name>
    <url-pattern>/servlet/application</url-pattern>
  </servlet-mapping>



application.jsp:
view plaincopy to clipboardprint?

   1. <%@page contentType="text/html;charset=GB2312" %> 
   2. <html> 
   3.   <head> 
   4.     <title>application</title> 
   5.   </head> 
   6.     
   7.   <body> 
   8.       <h1><%=getServletContext().getAttribute("name") %></h1> 
   9.   </body> 
  10. </html> 

<%@page contentType="text/html;charset=GB2312" %>
<html>
  <head>
    <title>application</title>
  </head>
 
  <body>
      <h1><%=getServletContext().getAttribute("name") %></h1>
  </body>
</html>




2.有参初始化方法:

Config.java:
view plaincopy to clipboardprint?

   1. package mgc.servlet.test;  
   2.  
   3. import java.io.*;  
   4. import javax.servlet.*;  
   5. import javax.servlet.http.*;  
   6.  
   7. public class Config extends HttpServlet {  
   8.       
   9.     private ServletConfig conf=null;  
  10.       
  11.     public void init(ServletConfig conf) throws ServletException {  
  12.         //实例化config对象  
  13.         this.conf=conf;  
  14.     }  
  15.       
  16.     public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {  
  17.         this.doPost(request,response);  
  18.     }  
  19.       
  20.     public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {  
  21.         //通过config对象取得Application对象  
  22.         ServletContext application=this.conf.getServletContext();  
  23.         //设置Application属性  
  24.         application.setAttribute("name", "Magci");  
  25.         //跳转到接收页面  
  26.         response.sendRedirect("config.jsp");  
  27.     }  
  28. } 

package mgc.servlet.test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Config extends HttpServlet {
   
    private ServletConfig conf=null;
   
    public void init(ServletConfig conf) throws ServletException {
        //实例化config对象
        this.conf=conf;
    }
   
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
        this.doPost(request,response);
    }
   
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
        //通过config对象取得Application对象
        ServletContext application=this.conf.getServletContext();
        //设置Application属性
        application.setAttribute("name", "Magci");
        //跳转到接收页面
        response.sendRedirect("config.jsp");
    }
}



web.xml:
view plaincopy to clipboardprint?

   1.   <servlet
   2.     <servlet-name>Config</servlet-name> 
   3.     <servlet-class>mgc.servlet.test.Config</servlet-class> 
   4.   </servlet

  <servlet>
    <servlet-name>Config</servlet-name>
    <servlet-class>mgc.servlet.test.Config</servlet-class>
  </servlet>



config.jsp:
view plaincopy to clipboardprint?

   1. <%@page contentType="text/html;charset=GB2312" %> 
   2. <html> 
   3.   <head> 
   4.     <title>config</title> 
   5.   </head> 
   6.     
   7.   <body> 
   8.       <h1><%=getServletContext().getAttribute("name") %></h1> 
   9.   </body> 
  10. </html>