您的位置:首页 > 其它

ServletContext对象【持续更新】

2016-05-29 12:09 218 查看
ServletContext对象

一个Web应用程序中所有的Servlet都共享同一个ServletContext对象,所以多个Servlet通过ServletContext

对象实现数据共享。

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

ServletContext对象作用以及应用场景:

1.获取Web应用的初始化参数。

2.实现Servlet的转发。
3.利用ServletContext对象读取资源文件。

//获取ServletContext对象的两种方式:

package cn.lsh.servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletContextDemo1 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取ServletContext对象的两种方式:
//第一种方式
ServletContext context1 = this.getServletConfig().getServletContext();
//第二种方式
ServletContext context2 = this.getServletContext();
System.out.println(context1 == context2);//true
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}<strong>
</strong>输出结果为:
true

获取web应用中初始化参数:

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--配置初始化参数2 -->
<context-param>
<param-name>charset</param-name>
<param-value>utf-8</param-value>
</context-param>

<context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param>

<context-param>
<param-name>password</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mydb</param-value>
</context-param>
<servlet>
<servlet-name>ServletContextDemo1</servlet-name>
<servlet-class>cn.lsh.servlet.ServletContextDemo1</servlet-class>

</servlet>

<servlet-mapping>
<servlet-name>ServletDemo1</servlet-name>
<url-pattern>/ServletDemo1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletContextDemo1</servlet-name>
<url-pattern>/ServletContextDemo1</url-pattern>
</servlet-mapping>
ServletContextDemo1

package cn.lsh.servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletContextDemo1 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取ServletContext对象的两种方式:
//第一种方式
ServletContext context1 = this.getServletConfig().getServletContext();
//第二种方式
ServletContext context2 = this.getServletContext();
System.out.println(context1 == context2);//true

Enumeration en = this.getServletContext().getInitParameterNames();
while(en.hasMoreElements()){
String name = (String) en.nextElement();
String value = this.getServletContext().getInitParameter(name);
System.out.println(name+"="+value);

}
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}


输出结果为:
username=root

charset=utf-8

password=root

url=jdbc:mysql://localhost:3306/mydb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: