有关ServletConfig与ServletContext的访问

一般来说,对于整个应用的配置,为了不使用"硬编码",应该使用ServletContext对象。

而如果只有一个特定的Servlet需要设定的参数,其他Servlet不能访问,那么一般要使用ServletConfig();

PS: 在使用ServletConfig对象的时候,在init()方法中,一定要用super类初始化ServletConfig对象。

public void init(ServletConfig config) throws ServletException
  {
    super.init(config);

        //TODO
    }

下面来逐个讨论:

一、ServletContext对象

<context-param>元素:设定Context起始参数

在web.xml中,您可以利用<context-param>元素来定义Context起始参数,它包含两个子元素:

n <param-name>:定义Context起始参数名称

n <param-value>:定义Context起始参数值

以下是<context-param>元素的使用范例,在本例中笔者定义了两个Context起始参数:

n driver_type:Web应用程序欲使用的JDBC驱动程序名称

n url:目标数据库位置

<web-app>

   <context-param>

     <param-name>driver_type</param-name>

     <param-value>oracle.jdbc.driver.OracleDriver</param-value>

   </context-param>

   <context-param>

    <param-name>url</param-name>

    <param-value>jdbc:oracle:thin:@IP:1521:SID</param-value>

  </context-param>

</web-app>

有两种方式存取Context起始参数的方式:

表1 在ServletContext接口中用来存取Context起始参数的方法


方法名称


回传类型


用 途


getInitParameter()


String


取得某个Context起始参数值


getInitParameterNames()


java.util.Enumeration


取得所有Context起始参数

1. 先调用getServletConfig()方法取得ServletConfig对象,再利用ServletConfig接口定义的getServletContext()方法取得ServletContext对象。

ServletConfig config = getServletConfig();
ServletContext context = config.getServletContext();
String driver_type = context.getInitParameter("drvier_type");
String url=context.getInitParameter("url");

2. 直接调用getServletContext()方法取得ServletContext对象。

ServletContext context = getServletContext();

//获得配置的参数
String driver_type = context.getInitParameter("drvier_type");
String url=context.getInitParameter("url");
//获得当前WebApp的路径
String path=context.getRealPath("/");

二, ServletConfig对象

<init-param>元素:设定init起始参数

在web.xml中,您可以利用<init-param>元素来定义Config起始参数,它包含两个子元素:

n <init-name>:定义Config起始参数名称

n <init-value>:定义Config起始参数值

以下是<init-param>元素的使用范例,在本例中笔者定义了两个Config起始参数:

n driver_type:Web应用程序欲使用的JDBC驱动程序名称

n url:目标数据库位置  

<web-app>
  <servlet>
    <servlet-name>testServlet</servlet-name>
    <servlet-class>com.simon.test.servlet.initparam.testServlet</servlet-class>

    <init-param>
       <param-name>driver_type</param-name>
       <param-value>oracle.jdbc.driver.OracleDriver</param-value>
  </init-param>

     <init-param>
      <param-name>url</param-name>
      <param-value>jdbc:oracle:thin:@IP:1521:SID</param-value>
    </init-param>

  <servlet-mapping>
    <servlet-name>testServlet</servlet-name>
    <url-pattern>/testServlet</url-pattern>
  </servlet-mapping>
</web-app>

在init()方法中,应该:

public void init(ServletConfig config) throws ServletException
  {
        //必须要继承super类的init()方法
    super.init(config);

    String filename=getServletConfig().getInitParameter("config-file");

     //TODO
}

以上这篇有关ServletConfig与ServletContext的访问就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JavaEE中关于ServletConfig的小结

    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,ServletConfig对象传递给servlet.进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息. 示例代码如下: 复制代码 代码如下: package com

  • 浅析javax.servlet.Servlet,ServletContext接口

    1.ServletConfig接口用于描述Servlet本身的相关配置信息.ServletContext接口用于描述应用程序(server.xml中的一个Context配置,即一个虚拟目录)的相关信息.2.Servlet配置初始化参数,例如: 复制代码 代码如下: <servlet> <servlet-name>XXX</servlet-name> <servlet-class>Xxx</servlet-class> <init-param

  • 有关ServletConfig与ServletContext的访问

    一般来说,对于整个应用的配置,为了不使用"硬编码",应该使用ServletContext对象. 而如果只有一个特定的Servlet需要设定的参数,其他Servlet不能访问,那么一般要使用ServletConfig(); PS: 在使用ServletConfig对象的时候,在init()方法中,一定要用super类初始化ServletConfig对象. public void init(ServletConfig config) throws ServletException { su

  • Java Web编程之Servlet技术详解

    Java Web编程之Servlet技术,知多少? 1.Servlet基础 针对Servlet技术开发,Sun公司提供了一些列接口和类,其中最重要的是javax.servlet.Servlet接口,两个重要的包是javax.servlet和javax.servlet.http,Servlet就是一种实现了Servlet接口的类,它由Web容器(Tomcat/Jetty等)负责调用并创建,用于接收和响应用户请求.Servlet接口中定义了5个抽象方法: Servlet顶层类结构如下所示: 2.第一

  • JSP基本语句用法总结

    本文实例讲述了JSP基本语句用法.分享给大家供大家参考.具体如下: 1>JSP指令 JSP指令(Directive)作用是与JSP引擎进行沟通,为JSP页面设置全局变量,声 明类以及JSP要实现的方法和输出内容的类型等 JSP指令在整个页面范围内有效,且不在客户端产生任何输出 格式:<%@ directivename attribute="value"%> <%@ directivename attribute1="value1"......

  • 深入了解JAVA Jersey框架

    Java Jersey的详情概述 Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层. 与springmvc 的区别: 1. jersey同样提供DI,是由glassfish hk2实现,也就是说,如果想单独使用jersey一套,需要另外学习Bean容器: 2. MVC出发点即是WEB,但jersey出发点确实RESTFull,体现点在与接口的设计方面, 如MVC返回复杂结构需要使用ModelAndView,而jerse

  • JavaWeb案例讲解Servlet常用对象

    概述 本次文章基于第三章的ServletConfig,ServletContext,HttpServletRequest,HttpServletResponse对象完成一个图书订阅系统的购买图书和查看图书购买记录功能. 搭建项目主页面 创建一个动态网站项目,在src中新建包com.book.servlet. 在包中,新建HomeServlet作为主页.效果图如下: 为了让一访问项目根路径地址就默认进入HomeServlet,这里需要将 HomeServlet的虚拟地址写入web.xml文件中作为

  • servlet之ServletContext简介_动力节点Java学院整理

    在对Servlet配置的web.xml文件中,经常会使用一些初始化的参数来配置Servlet,总的功能来说就是不在Servlet程序中将某个变量写死,而是通过外界(如web.xml文件)进行传递,同时便于修改.这个是使用<servlet>标签下的<init-param>标签,使用<init-param>标签的<param-name>和<param-value>来封装一个键值对,可以使用多个<init-param>标签进行多个初始化参数

  • Struts2访问Servlet的三种方式

    基本介绍 在Struts2中,Action并没有直接和Servlet API耦合.虽然Struts2 中的Action访问Servlet API麻烦一些,但是这却是Struts2中Action的重要改良之一,方便Action进行单元测试. 尽管Action和Servlet API解耦会带来很多好处,然而在Action中完全不访问Servlet API几乎是不可能的,在实现业务逻辑时,经常要访问Servlet中的对象,如request.session和application等 . 在Struts2

  • 基于servlet实现统计网页访问次数

    本文实例为大家分享了基于servlet实现统计网页访问次数的具体代码,供大家参考,具体内容如下 一.基础知识 (1)ServletContext和ServletConfig的区别 ServletContext作为整个web应用的共享数据ServletConfig只是作为当前servlet的数据共享,下一个servlet访问时,是访问不到的 二.代码实现 将显示的统计次数显示在HTML页面上: import java.io.IOException; import java.io.PrintWrit

  • Struts2访问servlet分享

    一:访问或添加request/session/application属性  复制代码 代码如下: public String scope() throws Exception{ ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app ctx.getSession().put("ses&quo

随机推荐