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

本文介绍如何在web.xml中为Servlet配置初始化参数,并演示了如何在Servlet中获取这些参数。同时指出无法通过此方式传递非String类型参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在配置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()方法仅能得到一个字符串类型的返回值。

以上是我的一点粗浅的认识,欢迎指导。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值