ServletContext应用总结

 

1.请求转发与重定向

ServletContext中没有转发的方法,但是它里面有getRequestDispatcher这个方法,通过getRequestDispatcher传递一个请求转发的地址,返回一个对象叫RequestDispatcher

RequestDispatcher对象里面有两个方法forward()和include(),这两个方法都能实现转发

在Servlet中实现转发的步骤如下:

/*要利用ServletContext对象实现转发*/

       ServletContext  context = this.getServletContext();

       context.setAttribute(“name”,”redarmy”);

       /*RequestDispatcher对象*/

       //在Web开发中没有绝对路径  使用相对路径../代表的是:url地址

       //http://localhost:8080/20111019/servlet/demo.do

       RequestDispatcher rd = context.getRequestDispatcher(“/index.jsp”);

       //request 对象 response对象转发

       rd.forward(request, response);

      

       //response.sendRedirect(“./index.jsp”);

       //rd.include(request, response);

       response.getWriter().print(“haha”);

2.请求转发与重定向的区别:第一: 转发 地址栏不发生变化 转发页面成功。而重定向地址栏发生变化。第二:请求转发能够把在request中存的值 在项目转发相应的页面中能够获取web动态资源的值 而重定向不能

 

3.forward与include的区别: forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来

 

4.ServletContext读取资源文件

 

1)在Demo02Servlet的doPost方法中获取路径的步骤

/*获取ServletContext对象*/

ServletContext context = this.getServletContext();

/*获取路径*/

String realPath = context.getRealPath();

Response.getWriter().write(“realPath=====”+realPath);

2)读取资源文件的三种方式:

配置的properties的内容如下

url=jdbc:mysql://localhost:3306/3g;

user=root;

password=root;

第一种:

/* 获取ServletContext对象 */

       ServletContext context = this.getServletContext();

    /* 第一步:读取资源的位置 */

    //第一种方式:

       // 绝对路径

           File file = new File("WEB-INF/classes/db.propertie"); InputStream is = new FileInputStream(file);

// 第二种方式读取外部的资源文件   

InputStream is = context

           .getResourceAsStream("WEB-INF/classes/db.propertie");

       System.out.println(is + "-----");

       // response.getWriter().write("realPath==="+realPath);

//第三种方式:

URL url = context.getResource("WEB-INF/classes/db.properties");

       InputStream is = url.openStream();

/* 解析Properties的文件 */

       Properties prop = new Properties();

       // 从输出流中读取属性列表(键和元素对)

       prop.load(is);

       Set<String> set = prop.stringPropertyNames();

       // 遍历set集合

       Iterator<String> it = set.iterator();

       while (it.hasNext()) {

           String key = it.next();

           String value = prop.getProperty(key);

           System.out.println(key + "-----" + value);

           }

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭