当前位置: 代码迷 >> Web前端 >> Servlet的使用实例
  详细解决方案

Servlet的使用实例

热度:274   发布时间:2012-11-08 08:48:11.0
Servlet的应用实例

ServletContext

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

也可以使用 this.getServletContext方法

由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。多个Servlet通过ServletContext对象实现数据共享。

ServletContext对象通常也被称之为context域对象。(requestsessionpage

setAttribute(),getAttribute();

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

<context-param>

<param-name> data</param-name>

<param-value> xxxx</param-value>

</context-param>

实现Servlet的转发。

RequestDispatcher rd = getServletContext().getRequestDispatcher(“/1.jsp”);

rd.forward(request,response);

如何把数据传到 1.jsp?(可以通过request域,不能用context域)

ServletConfigServletContext的区别

整个Web应用只有一个ServletContext,在部署Web应用的时候,容器会建立这一个ServletContext对象,这个上下文对Web应用中的每个ServletJSP都可用。

Web应用中的各个Servlet都有自己的ServletConfig,它只对当前Servlet有效。

 

 

1. 写出获取ServletContext的两种方式

2.使用ServletContext实现两个Servlet数据共享

3.设置ServletContext初始化参数,然后对其之。

4. 编写一个转发

5.通过ServletContext读取配置文件的内容。(使用两种方式)

6.通过一般的java类读取配置文件的内容。


//获取ServletContext
ServletContext context1 = this.getServletConfig().getServletContext();
ServletContext context2 = this.getServletContext();


/使用ServletContext实现两个Servlet数据共享
String value = "xiaosong";
this.getServletContext().setAttribute("namev", value);

String namevalue = (String) this.getServletContext().getAttribute("namev");
System.out.println(namevalue);


设置ServletContext初始化参数,然后对其之。
web.xml初始化代码:
/* <context-param>
    <param-name>data</param-name>
    <param-value>aaaaa</param-value>
  </context-param>*/
  
输出代码 :System.out.println(this.getServletContext().getInitParameter("data"));


//转发
this.getServletContext().setAttribute("username","xiaosong");
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);


//通过ServletContext读取配置文件的内容,方法一:
InputStream in = this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
Properties pro = new Properties();
pro.load(in);
String driver = pro.getProperty("driver");
String url = pro.getProperty("url");
String name = pro.getProperty("name");
String possword = pro.getProperty("possword");
System.out.println(driver+"..."+url+"..."+name+"..."+possword);

//通过ServletContext读取配置文件的内容,方法二:
String path = this.getServletContext().getRealPath("WEB-INF/classes/db.properties");
FileInputStream fis = new FileInputStream(path);
Properties pro1 = new Properties();
pro1.load(fis);
String driver1 = pro1.getProperty("driver");
String url1 = pro1.getProperty("url");
String name1 = pro1.getProperty("name");
String possword1 = pro1.getProperty("possword");
System.out.println(driver1+"..."+url1+"..."+name1+"..."+possword1);

//通过一般的java类读取配置文件的内容
InputStream in3 = Context2.class.getClassLoader().getResourceAsStream("db.properties");
Properties pro3 = new Properties();
pro3.load(in3);
String driver3 = pro3.getProperty("driver");
String url3 = pro3.getProperty("url");
String name3 = pro3.getProperty("name");
String possword3 = pro3.getProperty("possword");
System.out.println(driver3+"..."+url3+"..."+name3+"..."+possword3);

  相关解决方案