struts1学习
servletContext:
ServletContext是servlet与servlet容器之间的直接通信的接口。Servlet容器在启动一个Web应用时,会为它创建一个servletContext对象。每个web应用有唯一的servletContext对象。同一个web应用的所有servlet对象共享一个serveltContext,servlet对象可以通过它来访问容器中的各种资源。
servletConfig:
Servlet容器初始化一个servlet对象时,会为这个servlet对象创建一个servletConfig对象。在servletConfig对象中包含了servlet的初始化参数信息。此外,servletConfig对象还与servletContext对象关联。Servlet容器在调用servlet对象的init(ServletConfig config)方法时,会把servletConfig对象当做参数传递给servlet对象。Init(ServletConfig config)方法会使得当前servlet对象与servletConfig对象建立关联关系。
servletConfig接口中定义了一下方法:
getInitParameter(String name):根据给定的初始化参数,返回匹配的初始化参数值。
getInitParameterNmes():返回一个Enumeration对象,里面包含了所有的初始化参数。
getServletContext():返回一个servletContext()对象,
getServltName():返回servlet的名字,即web.xml中的<servlet-name>的子元素的值。如果没有配置这个子元素,则返回servlet类的名字。
例子:
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>0</load-on-startup>
<init-param>
<param-name>color</param-name>
<param-value>red</param-value>
</init-param>
<init-param>
<param-name>size</param-name>
<param-value>16</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
如上,红色标记处为初始化参数,相当于公有参数。
在servlet中:
public class UserDateBaseServlet extends HttpServlet{
String color = this.getInitParameter("color");
String size = this.getInitParameter("size");
System.out.println("颜色是:"+color+"字号是:"+size);
}
注:HttpServlt类继承了GenericServlet类,而GenericServlet类实现了ServletConfig接口,因此在HttpServlet类和GenericServlet类及子类中都可以直接调用ServletConfig接口中的方法。
二者区别
在看web.xml配置文件关于环境初始化参数的配置时,发现了ServletConfig与ServletContext这两个对象的应用,于是就写了一个Servlet来体验了一下。
首先从作用范围来说,ServletConfig作用于某个特定的Servlet,即从该Servlet实例化,那么就开始有效,但是该Servlet之外的其他Servlet不能访问;ServletContext作用于某个web应用,即在一个web应用中相当于一个全局对象,在Servlet容器启动时就已经加载,对于不同的web应用,有不同的ServletContext。
其次,来看一下二者参数的使用。如果一个参数为整个web应用所用,那么就配置为ServletContext参数,如下所示:
<context-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</context-param>
如果一个参数仅为一个Servlet所用,那么就应该配置为ServletConfig参数,如下所示:
<servlet>
<servlet-name>affice_add</servlet-name>
<servlet-class>servlet.Affice_add</servlet-class>
<init-param>
<param-name>filepath</param-name>
<param-value>/webContent/affice</param-value>
</init-param>
</servlet>
最后,说明一下参数的获取。访问ServletConfig参数,取得ServletConfig对象后,调用getInitParameter()方法;访问ServletContext对象,只要调用现有的ServletConfig对象的getServletContext()即可,然后同样调用getInitParamter()方法就能获取参数。例如对于上面的参数,可以通过如下方法获取各自参数。
public class TestServletConfig extends HttpServlet {
ServletConfig config;
public void init(ServletConfig config) {
this.config=config;
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
String filepath=(String)config.getInitParameter("filepath");
System.out.println(filepath);
String encode=(String)config.getServletContext().getInitParameter("encoding");
System.out.println(encode);
}
public void destroy() {
}
}
相关推荐
ServletContext与ServletConfig关系
很清楚的讲解了ServletContext和ServletConfig,不光有理论上的讲解,还有例子。
注意:每个servlet有一个ServletConfig,每个Web应用有一个ServletContext.要把初始化参数认为是部署时常量,可用在运行时得到这些初始化参数,但不能设置初始化参数,根本没有setInitParameter().如果修改XML来改变...
1 ServletConfig.getServletContext(); 2 ServletContextEvent.getServletContext(); 3 HttpSession.getServletContext(); ------------------------------------------------ JSP Java Server Page java服务...
下面小编就为大家带来一篇有关ServletConfig与ServletContext的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这一节将介绍 ServletContext 和 ServletConfig 这两个接口。 通过这两个接口,我们可以在web.xml中设置一些参数,如数据库地址、用户名密码等,供 Servlet 使用, 这样每次参数值变动时,不用重新编译Servlet了。 ...
this.ServletConfig.getServletContext方法获得对ServletContext对象的引用.还可以直接通过 this.getServletContext方法获得对ServletContext对象的引用. (3)由于一个WEB应用中的所有Servlet共享同一个...
14如何利用ServletContext和ServletConfig对象获得初始化参数 27 15说出Servlet的生命周期,并说出Servlet和CGI的区别 27 16.访问修饰符public,private,protected,以及不写(默认)时的区别? 27 17. Math.round...
实用05:为ServletContext和ServletConfig对象编写Servlet程序。 实用06:编写一个Login servlet。 从html文件login.html中获取输入的用户名和密码,并对用户进行身份验证。 实用07:编写Servlet设置用户输入的...
3. 使用代码以及文字,说明Servlet的运行机制和生命周期 4. 实现用Servlet实现伪静态页面的访问 5. 实现用缺省的Servlet实现对静态页面的访问。 6. 使用ServletConfig对象,访问web.xml中的数据库连接信息。 7. 使用...
包括Servlet生命周期、ServletConfig、ServletContext、欢迎页头面的设置,及的设置与匹配。第二部分为Servlet核心。除了包括基础的API外,例如GenericServl 资源太大,传百度网盘了,链接在附件中,有需要的同学...
方立勋JavaWeb视频教程_servlet开发和ServletConfig与ServletContext对象(第五天) 方立勋JavaWeb视频教程_request response(第六天) 方立勋JavaWeb视频教程_Cookie和Session(第七天) 方立勋JavaWeb视频教程_...
Servlet处理请求、多线程和映射、Servlet的卸载、Servlet映射技术、通过类名调用Servlet、HTTP会话、建立Session、Request Dispatcher接口、Servlet接口、ServletConfig接口、ServletContext接口、SingleThreadModel...
1、ServletConfig API:2、GenericServlet类2、HttpServlet类:(重点掌握)1、doGet和doPost的区别:2、Servlet细节:3、web.xml文件(了解)4、ServletContext(重要):3、网站访问量统计小案例:二、过滤器三、监听...
servlet容器的详细说明,包括里面接口的方法。内容如下:RequestDispatch, servlet, servletConfig, servletContext。。
java开发web的帮助文档,内含Cookie ...ServletConfig ServletContext ServletException ServletInputStream ServletOutputStream ServletRequest ServletResponse SingleThreadModel UnavailableException
3.1 Web应用的结构和部署 3.2 部署描述文件 3.3 ServletConfig接口 3.4 ServletContext接口 3.5 Servlet的多线程问题 3.6 一个综合实例
类 ServletConfig ServletOutputStream ServletContext ServletInputStream ServletResponse GenericServlet ServletRequest Servlet <br>javax.servlet.http<br>接口 类 HttpSession Cookie...
主要包括Servlet基础和 ServletConfig接口,ServletContext接口两大部分; javaweb,servlet,接口,编写类; 初学者,大学生,复习,详细,课堂笔记;
ServletContext ServletContextAttributeEvent ServletContextAttributeListener ServletContextEvent ServletContextListener ServletException ServletInputStream ServletOutputStream ServletRequest ...