web.xml 怎么添加web.xml

web.xml 怎么添加web.xml,第1张

首先创建一个类

public class ContextInitListener implements ServletContextListener

使得该类成为一个监听器。用于监听整个容器生命周期的,主要是初始化和销毁的。

类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类。

Xml代码

<listener>

<!-- lang: xml -->

<description>ServletContextListener</description>

<!-- lang: xml -->

<listener-class>com.test.web.filter.ContextInitListener</listener-class>

<!-- lang: xml -->

</listener>

配置好监听器后我们开始编写ContextInitListener 的代码。实现接口后会自动生成两个方法,初始化和销毁,我们就只贴出这个吧,另一个没什么用。web项目通常来说,一般来说相对路径是在WEB-INF/classes,获取该路径下的文件,最好用getClass().getResourceAsStream(“/baseconfig.properties”)比较简单。

Java代码

@Override

public void contextInitialized(ServletContextEvent sce) {

Properties props = new Properties()

InputStream inputStream = null

try {

inputStream = getClass().getResourceAsStream("/baseconfig.properties")

props.load(inputStream)

String tempPath = (String) props.get("path")

} catch (IOException ex) {

ex.printStackTrace()

}

}

jsp + servlet + tomcat例子中:

添加这样的descirpto在web.xml文件并可以解析

....

<my-config>

<location>/WEB-INF/my/my-config.xml</location>

</my-config>

....

然后根据自己的配置文件完成类的加载和响应的功能

--------------------------

我自己的思路:修改web.xml依据的deploy descriptor文件

然后在自己取得相关配置文件的解析内容........

最近在做一个Servlet+javaBean的项目,服务器用的是tomcat。因此,所有的页面都是servlet请求,而且很多,需要在web.xml文件中进行配置。导致web.xml文件特别大,而且这个系统以后会做大,并且会出现系统拆分,为了便于以后拆分,于是想到将web.xml文件中的servlet和servlet-mapping能够从web.xml脱离出来,用其他xml文件保存然后在web.xml文件中引入这些文件,就想类似引入struts.config一样。

在网上找了半天也没找到,还是学哥厉害,找到了答案,在此向他致敬。

具体做法如下:

1,按模块将servelet从web.xml中拷贝出来,放到一个test.xml中,如test.xml中内容如下:

<servlet>

<servlet-name>testA</servlet-name>

<servlet-class>TestA</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>testA</servlet-name>

<url-pattern>/testA.do</url-pattern>

</servlet-mapping>

2,在我的WEB-INF/web.xml中引入test.xml

<!DOCTYPE

web-app

[<!ENTITY test

SYSTEM "file:///D:/eclipse/workspace/Test/WebRoot/WEB-INF/test.xml">

<!ENTITY

admin SYSTEM "admin.xml">]>

<web-app

version="2.5"

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_5.xsd"

>

&test

&admin

以上修改即可,web.xml会在开头引入你的test.xml.然后 &test表示你放的地方。

如果设定的是相当路径,可以如此设定:

如果test.xml和web.xml在同一个文件夹,则 [<!ENTITY

test SYSTEM "test.xml">]

如果test.xml在web.xml所在文件夹的ccc文件夹中,则 [<!ENTITY

test SYSTEM "ccc/test.xml">]

我的servlet是2.5,2.4应该也管用,其他版本没试过。

这样,我可以在系统开始设计时,将各个模块分开,便于以后系统拆分。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7968646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存