Servlet 2 init session application

初始化的方法可以使用init() 完成,但是里面却可以传入一个ServletConfig的对象,此对象就是可以接收初始化配置参数的操作

如果不熟悉的读者,可以参考之前讲解的JSP 内置对象中的config  对象的使用

因为所有的初始化参数都必须在web.xml  文件之中进行配置

  1. public void init(ServletConfig config)  
  2.           throws ServletException  


  1. package org.gz.servlet;  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5. public class InitParamServlet extends HttpServlet  {  
  6.     private String initParam = null;  //用于保存初始化参数  
  7.     public void init(ServletConfig config) throws ServletException {  
  8.         this.initParam = config.getInitParameter("ref");   //接受的参数化名称,暂时为 ref  
  9.       
  10.     }  
  11.     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  12.         System.out.println("***初始化参数: " + this.initParam);  
  13.     }  
  14.     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  15.         this.doGet(req,resp);  
  16.     }  
  17. }   


  1. <servlet>  
  2.         <servlet-name>initParam</servlet-name>  
  3.         <servlet-class>org.gz.servlet.InitParamServlet</servlet-class>  
  4.         <span style="color:#3333FF;"><init-param>  
  5.             <param-name>ref</param-name>  
  6.             <param-value>www.baidu.com</param-value>  
  7.         </init-param></span>  
  8.     </servlet>   
  9.         <servlet-mapping>  
  10.         <servlet-name>initParam</servlet-name>  
  11.         <url-pattern>/InitParamServlet</url-pattern>  
  12.     </servlet-mapping>  


    但是在进行操作的时候有一个注意点必须引起注意,如果现在在Servlet 之中同时覆写了两个 init()  方法,则只有取得初始化参数的 init()  方法起作用

    从一般的角度而言,取得初始化参数的操作在一些系统的架构中比较常用的,例如,之后要讲解的Struts 开发框架,就使用此种操作。

    之前在JSP 中讲解的config  对象的使用,也是利用了同样的原理完成的,所有的初始化参数必须通过映射路径才可以取得


可以从Servlet 中取得session 对象并进行操作

可以从Servlet 中取得Application 对象并进行操作

取得HttpSession 实例

1、取得session对象

在Servlet 程序中要想取得一个 session 对象,则可以通过 HttpServletRequest 接口完成,在此接口中提供了以下的操作方法

public HttpSession getSession();

public HttpSession getSession(boolean create) 


Servlet 本身提供的只有request 和 response 两个对象,所有如果要想取得session 对象,则只能依靠request 对象,因为session 属于HTTP 协议范畴,而且在每次发送请求的时候,服务器都会自动为客户端设置一个Cookie 所以,很自然的,Session 中要使用得到了Cookie 的机制,但是Cookie 又只能通过request 取得,那么自然session 也就只能通过request 取得了。

  1. package org.gz.servlet;  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5.   
  6. public class HttpSessionServlet extends HttpServlet {  
  7.     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  8.         HttpSession hs = req.getSession();  
  9.         System.out.println("Session ID ---> " + hs.getId());   // 取得session ID  
  10.         hs.setAttribute("username","大哥大");  //设置session 属性  
  11.         System.out.println("username属性内容: " + hs.getAttribute("username"));  
  12.     }  
  13.     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  14.         doGet(req,resp);      
  15.     }  
  16. }  
  17. /* 
  18.     <servlet> 
  19.         <servlet-name>sessiondemo</servlet-name> 
  20.         <servlet-class>org.gz.servlet.HttpSessionServlet</servlet-class> 
  21.     </servlet> 
  22.     <servlet-mapping> 
  23.         <servlet-name>sessiondemo</servlet-name> 
  24.         <url-pattern>/httpsession</url-pattern> 
  25.     </servlet-mapping> 
  26. */  

2、取得application 对象

在讲解如果取得application对象之前,先来回顾应一个问题,在之前讲解内置对象的时候一直强调公,对于application 对象可以通过 this.getServletContext() 方法取得

  1. public ServletContext getServletContext()  
    现在在HttpServlet 的父类之中已经专门提供了取得ServletContext接口 的对象,所有下面就利用此方法完成功能.
  1. package org.gz.servlet;  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5.   
  6. public class ServletContextServlet extends HttpServlet {  
  7.     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  8.         ServletContext app = super.getServletContext();  
  9.         System.out.println("真实路径: " + app.getRealPath("/"));  //真实路径: E:\webdemo\  
  10.     }  
  11.     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {  
  12.         doGet(req,resp);      
  13.     }  
  14. }  

通过getSession() 方法可以直接取得HttpSession 的实例化对象

通过getServletContext()  方法可以取得ServletContext 的实例化对象

取得了 session 之后就意味着可以进行登录验证了

通过getServletContext() 方法可以取得application 对象,而之前调用的 this.getServletContext() 方法完成的也是这样的功能。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值