关于Servlet的初始化参数的配置和使用

关于Servlet的初始化参数的配置和使用 
 
发布时间:2008.01.25 07:36     来源:赛迪网    作者:zhyiwww 


我们在配置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,Web,servlet,struts,JBuilder)