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