A. 如何在web.xml添加自己得配置文件,并在tomcat启动时候实现加载
jsp + servlet + tomcat例子中:
添加这样的descirpto在web.xml文件并可以解析
....
<my-config>
<location>/WEB-INF/my/my-config.xml</location>
</my-config>
....
然后根据自己的配置文件完成类的加载和响应的功能
--------------------------
我自己的思路:修改web.xml依据的deploy descriptor文件
然后在自己取得相关配置文件的解析内容........
B. web.xml中相关配置
在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的 Spring 配置文件
部署applicationContext.xml文件
如果不写任何参数配置,默认的是在/WEB-INF/applicationContext.xml
如果指定了要加载的文件,则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。
如果想要自定义文件名,需要在web.xml中加入contextConfigLocation这个context参数
springmvc的默认配置文件是放在WEB-INF下的,并且要命名为 -servlet.xml, 为servlet—name,即下文中的"Springmvc"
web.xml文件中webAppRootKey属性是web项目的绝对路径,默认值是webApp.root,可以通过System.getProperty(“webApp.root”)来获取属性值或者在配置文件中通过${webApp.root}获得。
Spring通过 org.springframework.web.util.WebAppRootListener 这个监听器来注入项目路径,因此部署在同一个web容器中的项目,要配置不同的param-value(比如”项目名.root”),不然会造成冲突。但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能。WebAppRootListener要在ApplicationContext的ContextLoaderListener之前,否则ApplicationContext的bean注入根目录值时会发生无法注入异常。
"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名
定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里。
然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中。
此参数用于后面的“Log4jConfigListener”-->
C. eclipse无法配置web.xml文件
前言 刚开始学习部署tomcat,新建java web项目后发现没有web.xml配置文件,以下是原因及其解决方案。 产生原因及解决方案 新建web项目时如下图所示,若直接选择"完成",则默认不会在WebContent/WEB-INF文件夹下生成web.xml配置文件,此时应选择下一步 在创建项目时勾选同时产生web.xml文件即可;当然也可以让已经新建的web项目生成web....
查看原文
在eclipse中快速生成一个maven项目后一键生成web.xml
在web工程创建时创建web.xml:用Eclipse新建一个web项目没有自动生成web.xml 在创建maven工程时,大多没有创建web.xml文件,web.xml路径:src/main/webapp/EWB-INF/web.xml 创建web.xml:右键项目——>javaEE tools——>点击第二个Generate
利用eclipse新建的java web项目没有web.xml文件怎么办?
利用eclipse新建的java web项目没有web.xml文件怎么解决? 解决办法: 1、右键项目名称-》Java EE Tools-》Generate Deployment descriptor stub 即可生成web.xml文件。
MyEclipse新建的Web项目没有web.xml
MyEclipse新建的Web项目没有web.xml 是因为创建项目时没有选择Generate web.xml deployment descriptor这一项。 下面是步骤 首先创建项目 这一步点击next 再点击next 勾选Generate web.xml deployment descriptor,完成后点击Finish,即可完成创建。 检查一下,在WebRoot文件夹下打开
myeclipse生成web.xml文件
MyEclipse中新建web项目时,如果一开始新建项目没有选中生成web.xml文件,在WebRoot->WEB-INF文件夹下就没有web.xml文件。 那如果后面又需要用到web.xml该怎么办呢?难道需要重新建项目?其实是不用的。 非常简单的方法就是在需要添加web.xml文件的项目上右键点击,依次选择MyEclipse->Generate Deployment
D. 如何通过web.xml加载自定义的xml文件
首先创建一个类
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();
}
}
E. web项目中如何读取配置文件config.xml
servlet初始化的时候会去读取web.xml,把这个文件的路径配置到web.xml里。或者你在web.xml里加载个初始化类,这个类去加载config.xml
F. web.xml配置cookie
正确。web.xml配置cookie是正确的,这个的作用是让页面的js无法读取到cookie, 是一种保护措施。web.xml是web项目的配置文件,一般的web工程都会用到web.xml来配置,主要用来配置Listener,Filter,Servlet等。