servletConfig和servletContext

 

servletConfig代表当前servlet在web.xml中的配置信息 ,其中的几个方法

1.String getServletName();
2.String getInitParameter(String key);
3.Enumeration getInitParameterNames();返回一个枚举对象
4.ServletContext getServletContext();返回ServletContext对象
一个servlet在web.xml中的配置如下:
            <servlet>
            <servlet-name>Demo5Servlet</servlet-name>
   <servlet-class>cn.itheima.Demo5Servlet</servlet-class>
   <init-param>
    <param-name>data1</param-name>
    <param-value>value1</param-value>
   </init-param>
            <init-param>
    <param-name>data</param-name>
    <param-value>value0</param-value>
   </init-param>
   </servlet>
 然后在servlet中利用this.getServletConfig()获取ServletConfig对象,该对象提供了getInitParameter()和getInitParameterNames()方


法,可以遍历出配置中的配置项。不想在servlet中写死的内容可以配置到此处,像字符编码等。
方法应用:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
                ServletConfig config = this.getServletConfig();//从当前servlet的父类HttpServlet的父类(抽象类GenericServlet)获得
//--获取当前Servlet 在web.xml中配置的名称
String sName = config.getServletName();
System.out.println(sName);//Demo5Servlet


//--获取当前Servlet中配置的初始化参数
String value = config.getInitParameter("data1");
System.out.println(value);//value1

Enumeration enumration = config.getInitParameterNames();
while(enumration.hasMoreElements()){
String name = (String) enumration.nextElement();
String value = config.getInitParameter(name);
System.out.println(name+":"+value);//data1:value data:value0
}


//--获取代表当前应用的ServletContext对象
ServletContext context = config.getServletContext();
this.getServletContext();
                }
ServletContext:
         
1.代表当前web应用的对象。

2.作为域对象使用,在不同servlet之间传递数据,作用范围是整个web应用
生命周期:当web应用被加载进容器时创建代表整个web应用的ServletContext对象。当服务器关闭或web应用被移除出容器时,


ServletContext对象跟着销毁。
~域:一个域就理解为一个框,这里面可以放置数据,一个域既然称作域,他就有一个可以被看见的范围,这个范围内都可以对这个


域中的数据进行操作,那这样的对象就叫做域对象。
3.在web.xml可以配置整个web应用的初始化参数,利用ServletContext去获得
<context-param>
<param-name>param1</param-name>
<param-value>pvalue1</param-value>
                 <param-name>param0</param-name>
<param-value>pvalue0</param-value>
</context-param>
this.getServletContext().getInitParameter("param1")//param1

Enumeration enumration = this.getServletContext().getInitParameterNames();
while(enumration.hasMoreElements()){
String name = (String) enumration.nextElement();
String value =this.getServletContext() getInitParameter(name);
System.out.println(name+":"+value);//param1:pvalue1 param1:pvalue1
}
servletContext的几个方法:
              void setAttribute(String,Object);
              Object getAttribute(String);
              void removeAttribute(String);
     请求参数 parameter --- 浏览器发送过来的请求中的参数信息
     初始化参数 initparameter --- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
     域属性 attribute --- 四大作用域中存取的键值对


4.在不同servlet之间进行转发
this.getServletContext().getRequestDispatcher("/servlet/DemoServlet").forward(request, response);
方法执行结束,service就会返回到服务器,再有服务器去调用目标servlet,其中request会重新创建,并将之前的request的数据拷


贝进去。
  请求转发是一次请求一次响应实现资源流转.请求重定向两次请求两次响应.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值