ServletContext中的一些方法

获取ServletContext对象的方法:

      ServletContext context = this.getServletContext();

注:以下提到的context均表示ServletContext对象

获取WEB应用的初始化参数:

获取context参数名:

仅有一个时:context.getInitParameterName();

有多个时:context.getInitParameterNames()

获取Context参数值:

      context.getInitParameter(参数名);

注意:获取context属性时,一定要保证xml文件中有以下内容:

    

 <context-param>
        <param-name>参数名</param-name>
        <param-value>参数值</param-value>
</context-param>

Servlet共享数据

   首先在reques中定义context属性即context.setA ttribute(参数名,参数值),然后在reponse中获取要共享的信息即context.getAttribute(参数名)

   如:

//定义属性值
context.setAttribute("data","value");
        //获取属性值
String buf = (String)context.getAttribute("data");


Servlet转发

   有两种方法:在定义context属性和初始化request,初始化只能在jsp动态网页上使用

   ·首先在request中定义context属性即context.setAttribute(参数名,参数值),然后在RequestDispatcher中指定要跳转到的url地址context.getAttribute(参数名)

//指定要跳转到的页面      使用相对路径

RequestDispatcher rd = request.getRequestDispatcher("/success.html");

    //实现跳转

    rd.forward(request, response);

·初始化request参数

   如:

//初始化request参数并实现跳转
//request参数初始化        
request.setAttribute("name", "sunny");
//指定要跳转到的页面”
         RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
//在后面添加“hahha
         response.getWriter().print("hahha");
         rd.include(request, response);

forward和include区别:forward跳转,include包含,加载jsp文件时,用include可将要添加的数据添加到已定义好的jsp文件中,用forward方法则不能实现这种功能

利用ServletContext对象读取资源文件。

得到文件路径

用context.getRealPath(指定文件)方法实现

如:

/*获得ServletContext文件路径

String path = context.getRealPath("");

读取资源文件的三种方式:以properties文件(属性文件)为例

    ·context.getResource(String path)方法

      ·context.getRealPath(String path)方法

   ·context.getResourceAsStream(String path)方法

这三种方法基本相同,只是(一、三)两种方法是获取路径后直接传送到输入流中;第二种是获取路径后先创建file文件,再将File文件传入流中

   如:

      第一种方法:

//获取路径
       URL url = context.getResource("/WEB-INF/classes/sunny.properties");
      
       InputStream is = url.openStream();


       第二种方法:

     //获取路径
       String path = context.getRealPath("/WEB-INF/classes/sunny.properties");
       //根据获取的路径,创建文件
       File file = new File(path);
       //根据file文件,创建输入流
       InputStream is = new FileInputStream(file);

       第三种方法:

     //获取路径
     InputStream is = context. getResourceAsStream ("/WEB-INF/classes/sunny.properties");
以下是它们的共同代码(解析与输出):
       //解析Properties文件
       Properties prop = new Properties();
       //解析Properties属性
       prop.load(is);
       //解析Properties属性的键值
       Set<String> set = prop.stringPropertyNames();
       //遍历
       Iterator<String> it = set.iterator();
       while(it.hasNext()){
           //获取键值
           String key = it.next();
           //获取属性值
           String value = prop.getProperty(key);
           //System.out.println(key+"==========="+value);
           response.getWriter().print(key+"==========="+value);
       }
       is.close();


     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值