Servlet的初始化参数的配置和使用
2006-03-20 11:33
429 查看
我们在配置servlet的时候,可能需要在启动servlet的时候给他初始化一些参数,这样我们可以在web.xml配置文件中对servlet进行配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>strutsDemo</display-name>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
</jsp-config>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.zy.pro.strutsdemo.control.ApplicationActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>onefileuploadservlet</servlet-name>
<servlet-class>org.zy.pro.strutsdemo.servlet.OneFileUploadServlet</servlet-class>
<init-param>
<param-name>a</param-name>
<param-value>aaaaaaaaaa</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>onefileuploadservlet</servlet-name>
<url-pattern>/onefileupload</url-pattern>
</servlet-mapping>
<servlet>
<description>Added by JBuilder to compile JSPs with debug info</description>
<servlet-name>debugjsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>debugjsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
</web-app>
如我们以上代码中的蓝色部分。即实现了我们的配置,那么我们如何在我们的servlet中使用呢?
我们看我们的servlet部分代码:
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String a = this.getInitParameter("a");
System.out.println(" the a parameter initialize when loading : " +
a);
在我们的处理post的代码中,我们可以取得我们的配置参数。
之后,我们就可以对此参数进行处理了。
如果我们通过次配置使用一个xml来实现对servlet的扩展配置的话,那么我们此时得到的是一个xml文件的路径,那么我们可以通过对xml的读取和解析来取得我们想要的参数。
但是,我们不能在启动的时候给servlet初始化一个非String类的实例,如:
<init-param>
<param-name>util</param-name>
<param-value>org.lyj.commons.util.DigestUtil</param-value>
</init-param>
这种配置是错误的。因为我们的getInitParameter()方法仅能得到一个字符串类型的返回值。
以上是我的一点粗浅的认识,欢迎指导。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>strutsDemo</display-name>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
</jsp-config>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.zy.pro.strutsdemo.control.ApplicationActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>onefileuploadservlet</servlet-name>
<servlet-class>org.zy.pro.strutsdemo.servlet.OneFileUploadServlet</servlet-class>
<init-param>
<param-name>a</param-name>
<param-value>aaaaaaaaaa</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>onefileuploadservlet</servlet-name>
<url-pattern>/onefileupload</url-pattern>
</servlet-mapping>
<servlet>
<description>Added by JBuilder to compile JSPs with debug info</description>
<servlet-name>debugjsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>debugjsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
</web-app>
如我们以上代码中的蓝色部分。即实现了我们的配置,那么我们如何在我们的servlet中使用呢?
我们看我们的servlet部分代码:
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String a = this.getInitParameter("a");
System.out.println(" the a parameter initialize when loading : " +
a);
在我们的处理post的代码中,我们可以取得我们的配置参数。
之后,我们就可以对此参数进行处理了。
如果我们通过次配置使用一个xml来实现对servlet的扩展配置的话,那么我们此时得到的是一个xml文件的路径,那么我们可以通过对xml的读取和解析来取得我们想要的参数。
但是,我们不能在启动的时候给servlet初始化一个非String类的实例,如:
<init-param>
<param-name>util</param-name>
<param-value>org.lyj.commons.util.DigestUtil</param-value>
</init-param>
这种配置是错误的。因为我们的getInitParameter()方法仅能得到一个字符串类型的返回值。
以上是我的一点粗浅的认识,欢迎指导。
相关文章推荐
- servlet初始化参数配置方式
- servlet配置及初始化参数
- SerVlet-Config(单一servlet参数配置)/ConText(web项目内容)的使用
- 使用web.xml配置Web应用之初始化和预加载servlet和JSP页面
- Java - Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
- servlet获取web.xml中配置的初始化参数
- Servlet中初始化参数和上下文参数的配置
- 用一个随项目启动而初始化的servlet读取配置环境,参数的properties文件
- 资源注射与Servlet配置初始化参数
- servlet 配置信息及初始化参数
- 资源注射与Servlet配置初始化参数
- servlet都有一个servletConfig对象;四个config对象可以调用的方法;ServletContext对象之获取web项目信息;设置全局初始化参数的配置
- 【日志】log4j的使用配置与参数解析
- 第四周项目:三角形类的构造函数-(4)使用参数初始化表
- EJB模块和WEB模块的关系和配置参数初始化问题
- maven项目配置,不同环境使用不同参数
- 使用SpringMVC 配置<mvc:default-servlet-handler/> 报错
- 备忘:在web.xml中使用org.springframework.js.resource.ResourceServlet的配置对静态资源的访问
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- Spring中使用变量${}的方式进行参数配置