HttpServletRequest,HttpServletResponse:这两个属性的作用范围最小。
时间上:只是本身请求和应答完成就失效,当然转发是把当前的request对象取出来传给另一
个资源,其实本身的request对象还是只生存到本次请求结束,response也同样。
空间上:只能发送请求的客户端有效。
HttpSession:一次连结到客户端关闭,时间作用范围比上面两个大,空间任用范围相同。
ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet
有效,一个servlet的ServletConfig对象不能被另一个servlet访问。
ServletContext:对任何servlet,任何人在任何时间都有效,这才是真正全局的对象。那么,ServletConfig参数和ServletContext参数到底应该如何使用,如何取得?
一般来说,对整个应用的配置,为了不使用"硬编码",应该配置为ServletContext参数,比如字
符集设定。
<web-app>
.................
<init-param>
<param-name>charset</param-name>
<param-value>GB2312</param-value>
</init-param>
.................
</web-app>
注意以上格式只是2。0以后的标准格式,旧容器(引擎)采用服务商自己的格式配置。注意它的
父元素应该是<web-app>也就是说它是对一个应用作用的。
而如果只有一个特定的servlet要设定的参数,其它servlet不能共享,应该配置为ServletConfig
参数,如一个读取附件的servlet要用到绝对目录,而别的servlet不会用到:
<servlet>
<servlet-name>GetAtt</servlet-name>
<servlet-class>mail.GetAttServlet</servlet-class>
<init-param>
<param-name>absPath</param-name>
<param-value>/usr/mail/ax/axman/Maildir/</param-value>
</init-param>
</servlet>
不用说,因为在<servlet>标签中已经指定了name和class,也就是说只有mail.GetAttServlet这个
servlet中才能取到path,而别的Servlet是不能取到的。
那么如何访问这两个对象的参数呢?
访问ServletConfig参数:
首先要取得ServletConfig对象,然后调用它的getInitParameter();方法。要访问
ServletConfig对象,jsp中直接使用config内置对象,但因为你的JSP编译后的servlet一般不会被
加到web.xml中的,所以一般不会通过jsp来取对本JSP编译后的servlet的配置参数,那么在servlet
中要得到ServletConfig对象有两种方法:
在inii()方法中取到:通过init的重载方法传递
.....
public class Test extends HttpServlet
{
ServletConfig config;
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
..................
}
然后在下面的方法中就可以访问config对象。但要注意,为了确保能从构造方法中到到当前servlet的
config对象,应该调用父类的构造方法:
.....
public class Test extends HttpServlet
{
ServletConfig config;
public void init(ServletConfig config) throws ServletException {
super.init(config);
this.config = config;
}
..................
}
通过getServletConfig()方法直接到时,这样做的好处是不必调手工传递属性,想在任何时候都可
以得到。
还有第三种方法,要自己实现一些接口,这里作为一般讨论就不介绍了。
要访问ServletContext对象,只要从现有的ServletConfig对象getServletContext()就可以了,然后
调用它的getInitParameter()方法就可以获取它的参数。
分享到:
相关推荐
在访问 ServletConfig 对象参数时,可以通过 getInitParameter() 方法获取参数值,而在访问 ServletContext 对象参数时,可以通过 getInitParameter() 方法或 getAttribute() 方法获取参数值。 ServletConfig 和 ...
- ServletConfig主要存储Servlet的个性化配置信息,而ServletContext则提供了全局的资源访问和通信。 5. **实际应用场景** - 配置数据库连接信息,如URL、用户名和密码。 - 设置日志级别或日志文件路径。 - ...
ServletConfig对象是由Servlet容器创建的,它包含了Servlet的初始化参数和Servlet的名称。当我们定义一个Servlet时,可以通过`<servlet>`和`<servlet-config>`元素在`web.xml`中指定ServletConfig。ServletConfig...
`ServletContext`提供了整个Web应用程序级别的共享环境,用于存储初始化参数、共享数据、访问资源和记录日志等;而`ServletConfig`则为每个Servlet提供了单独的配置信息,使得每个Servlet可以根据自己的需求进行初始...
"Servlet获取初始化参数" Servlet 获取初始化参数是 Servlet 编程中一个非常重要的主题。...通过使用 `ServletContext` 和 `ServletConfig` 对象,我们可以轻松地获取这些参数,从而实现更好的 Web 应用程序开发。
例如,你可以定义一个`url`参数,表示数据库的连接URL,所有Servlet都可以访问。 ```java // 通过ServletConfig获取ServletContext ServletConfig config = getServletConfig(); ServletContext context = config....
ServletConfig在JavaEE中是Servlet的一个重要组成部分,它主要用于存储和提供Servlet的初始化参数和配置信息。这个概念是在Servlet API中定义的,是每个Servlet实例的配置对象,它包含了Servlet在部署描述符(web....
Servlet 初始化参数和上下文初始化参数训练及处理数据库示例 本文主要讲解 Servlet 初始化参数和上下文初始化参数的概念、定义、配置和获取方法。同时,通过实践演示,展示了如何在 Servlet 中读取初始化参数和上...
- **`ServletConfig` 的获取**:`GenericServlet` 实现了 `ServletConfig` 接口,允许开发者在 `init()` 方法中获取 `ServletConfig` 对象,并可以使用它来访问初始化参数。 - **其他方法**: - **`void destroy...
Servlet初始化参数是在Servlet容器启动时设置的,这些参数可以在整个应用生命周期中被Servlet访问,通常用来配置Servlet的行为或应用的配置信息。本示例提供了对Servlet初始化参数的演示,帮助开发者了解如何在实际...
在JavaWeb开发中,`ServletConfig` 是一个非常重要的接口,它允许开发者访问Servlet的一些特定配置信息。这部分内容主要讨论如何在 `web.xml` 文件中为Servlet配置初始化参数。 **配置示例**: ```xml ...
实验内容包括了Servlet的基本使用,如HttpServlet的继承,ServletConfig和ServletContext对象的使用,以及通过Servlet实现网站访问计数和用户登录验证功能。 【实验目的】 1. 熟悉Servlet的编程模型,了解其在Web...
在这个例子中,我们可以看到,ServletConfig 对象获取了四个初始化参数的值,分别是 aaaa、age、height 和 weight。 ServletContext 对象 ServletContext 对象是 Servlet 生命周期中的一部分,它提供了关于整个 ...
在这个实验中,我们将深入理解并实践Servlet的基础知识,包括HttpServlet的doGet()和doPost()方法、ServletConfig对象的使用以及ServletContext接口的数据共享功能。 首先,我们来看HttpServlet的doGet()和doPost()...
而如果某个Servlet需要访问特定的本地文件系统路径,那么这个路径应作为该Servlet的ServletConfig初始化参数。 总结起来,Tomcat作为Servlet容器,是运行Java Web应用程序的基础,而ServletContext和ServletConfig...
- `pageContext`是JSP页面特有的,主要用于在JSP标签库和自定义标签中访问和存储数据,而`ServletContext`是整个Web应用程序的共享上下文,提供了与Web服务器交互的方法,如读取初始化参数和在不同Servlet之间共享...
通过以上介绍,我们可以了解到在Struts2中,Action可以通过`ActionContext`和`ServletActionContext`来获取JSP页面传递的参数以及处理与Servlet相关的请求和响应。理解这些概念对于进行Struts2应用开发是非常重要的...