web.xml配置详解
web.xml的初始化参数
web.xml的初始化参数web.xml的初始化参数---------⾸先声明,这⾥所介绍的是web中context-param,init-param参数的初始化配置-------------------------------------------------------------------------------------------------------------⼀、初始化参数 web.xml⾥⾯可以定义两种参数: (1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下: <context-param><param-name>context/param</param-name><param-value>avalible during application</param-value></context-param> (2)servlet范围内的参数,只能在servlet的init()⽅法中取得,在web.xml中配置如下:<servlet><servlet-name>MainServlet</servlet-name><servlet-class>cn.jbit.controller.MainServlet</servlet-class><init-param><param-name>param1</param-name><param-value>avalible in servlet init()</param-value></init-param><load-on-startup>0</load-on-startup></servlet>在servlet中可以通过代码分别取⽤:package cn.jbit.controller;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;public class MainServlet extends HttpServlet {public MainServlet() {super();}public void init() throws ServletException {System.out.println("下⾯的参数是存放在servletcontext中的");System.out.println(getServletContext().getInitParameter("context/param"));System.out.println("下⾯的两个参数param1是在servlet中存放的");System.out.println(this.getInitParameter("param1"));}}第⼀种参数在servlet⾥⾯可以通过getServletContext().getInitParameter("context/param")得到第⼆种参数只能在servlet的init()⽅法中通过this.getInitParameter("param1")取---------------------------------------------------------------------------------------------------------------------------------------⼆、初始化参数获<!--application 模式--><context-param><param-name>count</param-name><param-value>1200</param-value></context-param><!--servlet--><servlet><description>loginServlet</description><display-name>loginServlet</display-name><servlet-name>loginServlet</servlet-name><servlet-class>loginServlet</servlet-class> <!--servlet 初始化时 init()--> <init-param><description>系统初始化数</description><param-name>num</param-name><param-value>100</param-value></init-param></servlet><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/loginServlet</url-pattern></servlet-mapping>在servlet中获取参数的⽅法以及异同:response.setCharacterEncoding("gb2312");System.out.println("getServletContext():"+getServletContext());ServletContext context=getServletConfig().getServletContext();String num=context.getInitParameter("num");// <init-param> 获取不到值String count=context.getInitParameter("count");//<context-param> 获取到值System.out.println("num:"+num);//nullSystem.out.println("count:"+count);//1200System.out.println("num:"+getServletConfig().getInitParameter("num"));//100获取到值System.out.println("count:"+getServletConfig().getInitParameter("count"));//null获取不到值。
servlet在web.xml中配置方法
一、介绍servlet在web.xml中的配置方法Servlet是Java编写的服务器端程序,它可以响应客户端的请求并生成动态内容。
在Java Web开发中,通常会使用Servlet来处理用户的请求并生成响应。
而在配置Servlet时,web.xml文件是一个重要的配置文件,其中包含了Servlet的配置信息。
本文将介绍Servlet在web.xml中的配置方法。
二、创建Servlet类在配置Servlet之前,首先需要创建一个Servlet类。
可以通过继承javax.servlet.网络协议.HttpServlet类来创建Servlet类,该类必须实现doGet()或doPost()方法来处理请求。
下面是一个简单的Servlet 类的代码:```javaimport javax.servlet.网络协议.HttpServlet;import javax.servlet.网络协议.HttpServletRequest;import javax.servlet.网络协议.HttpServletResponse;public class HelloWorldServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) {//处理GET请求的逻辑}protected void doPost(HttpServletRequest request, HttpServletResponse response) {//处理POST请求的逻辑}}```三、在web.xml中配置Servlet在web.xml文件中使用<servlet>和<servlet-mapping>元素来配置Servlet。
首先在<servlet>元素中指定Servlet的名称和Servlet类的完整路径,例如:```xml<servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class.example.HelloWorldServlet</servlet-class></servlet>```其中,<servlet-name>用于标识Servlet的名称,<servlet-class>指定了Servlet类的完整路径。
Web.xml配置详解之context
Web.xml配置详解之context•格式定义:[html] view plaincopy1.<context-param>2.<param-name>contextConfigLocation</param-name>3.<param-value>contextConfigLocationValue></param-value>4.</context-param>作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。
param-name 设定上下文的参数名称。
必须是唯一名称param-value 设定的参数名称的值•初始化过程:1.在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>。
2.接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文。
3.接着容器会将读取到<context-param>转化为键值对,并交给ServletContext。
4.容器创建<listener></listener>中的类实例,即创建监听(备注:listener定义的类可以是自定义的类但必须需要继承ServletContextListener)。
5.在监听的类中会有一个contextInitialized(ServletContextEvent event)初始化方法,在这个方法中可以通过event.getServletContext().getInitParameter("contextConfigLocat ion") 来得到context-param 设定的值。
在这个类中还必须有一个contextDestroyed(ServletContextEvent event) 销毁方法.用于关闭应用前释放资源,比如说数据库连接的关闭。
web.xml详解
web.xml详解我们都知web项⽬的运⾏,通常会⾸先加载web.xml⽂件,但却对web.xml⽂件知之甚少,今天就来揭开它的⾯纱,⼀睹它的真容!⼀.web.xml是什么?web.xml是web项⽬的配置⽂件,⼀般的web⼯程都会⽤到web.xml来配置,主要⽤来配置Listener,Filter,Servlet等。
但需要注意的是:web.xml并不是必须的,⼀个web⼯程可以没有web.xml⽂件⼆.web项⽬加载web.xml过程Tomcat启动web项⽬时,web容器就会的加载⾸先加载web.xml⽂件,加载过程如下:1.web项⽬加载web.xml,读取context-param和listener这两个结点,2.创建⼀个ServletContext(Servlet上下⽂),整个项⽬会共享这个ServletContext3.容器将<context-param>转换为键值对,并交给ServletContext4.容器创建<listener>中的类实例,创建监听器三.web.xml元素详解⾸先是表明xml的使⽤版本。
<?xml version="1.0" encoding="UTF-8"?>web-app是web.xml的根元素,包含着web.xml所有⼦元素。
xmlns以及xmlns:xsi后⾯引进的连接是表明web.xml引进的模式⽂件,便能拥有该模式的相关功能。
<web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>指明项⽬名称<display-name>web-SSMTest</display-name>web项⽬加载web.xml⾸先读取这两个结点,加载spring容器及创建spring监听器;ApplicationContext.xml 是spring 全局配置⽂件,⽤来控制spring 特性的ContextLoaderListener的作⽤就是启动Web容器时,⾃动装配ApplicationContext的配置信息。
Web.xml中配置Struts
Web.xml中配置Struts1:1.配置Struts的ActionServlet<servlet>元素来声明ActionServlet<servlet-name>元素:用来定义Servlet的名称<servlet-class>元素:用来指定Servlet的完整类名Eg:<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class></servlet>还要配置<servlet-mapping>元素,它用来指定ActionServlet可以处理哪些URL<servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>注意:(1)<servlet-mapping>和<servlet>中的<servlet-name>?</servlet-name>的要填写一致,它就是一根线,把<servlet-mapping>和<servlet>联接在一起的。
(2)在Struts框架中只能有一个Servlet,因为Servlet支持多线程。
而<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>中的ActionServlet是在Struts.jar包中的.在导入Struts包时会导入。
web.xml中的url-pattern写法规则及匹配过程
Web.xml中的URL-Pattern写法规则及匹配过程随着互联网技术的不断发展,Web应用在我们的日常生活中扮演着越来越重要的角色。
在构建Web 应用时,我们需要对URL的处理方式进行合理配置,以确保应用的正确性和安全性。
在Web应用的配置文件web.xml中,url-pattern的写法规则及匹配过程是一个关键的技术点。
一、URL-Pattern写法规则在web.xml中,url-pattern用于定义URL的映射规则,它将一个URL模式映射到一个servlet或一个静态资源。
url-pattern的写法有一定的规则和规范,主要遵循以下几点:1.模式必须以正斜杠("/")开始,以正斜杠("/")结束。
这意味着一个完整的URL模式必须以"/"开始和结束。
2.模式名只能包含"/"、字母、数字和下划线,不能包含其他特殊字符。
3.模式名中不能包含"."和".."。
这是因为这两个特殊字符在文件路径中具有特殊含义,可能导致URL映射出错。
4.如果模式中需要包含"."或"..",必须使用转义字符进行转义。
例如,"%.2E"表示".","%.2F"表示"/"。
5.模式名中不能包含参数。
如果需要传递参数,可以在URL末尾添加参数,例如"/test?param=value"。
二、URL-Pattern匹配过程当用户访问一个URL时,Web服务器会根据url-pattern的匹配规则寻找对应的处理逻辑。
这个过程大致可以分为以下步骤:1.用户在浏览器中输入URL,发出请求。
2.Web服务器接收到请求后,解析URL,获取URL的路径信息。
3.Web服务器根据url-pattern的匹配规则,查找web.xml中对应的url-pattern。
web.xml文件中的7个错误的安全配置
web.xml⽂件中的7个错误的安全配置关于Java的web.xml⽂件中配置认证和授权有。
本⽂不再去重新讲解如何配置⾓⾊、保护web资源和设置不同类型的认证,让我们来看看web.xml⽂件中的⼀些常见的安全错误配置。
(1) ⾃定义的错误页⾯没有配置默认情况下,Java Web应⽤在发⽣错误时会将详细的错误信息展⽰出来,这将暴露服务器版本和详细的堆栈信息,在有些情况下,甚⾄会显⽰Java代码的代码⽚段。
这些信息对为他们的病毒需找更多信息的⿊客来说是⼀种恩惠。
幸运的是,通过配置web.xml⽂件来展⽰⾃定义的错误页⾯是⾮常容易的。
使⽤如下的配置后⽆论服务器在任何时候发⽣HTTP500错误,⼀个⾮常好的错误页⾯就会被显⽰出来。
你可以为HTTP状态码添加另外的错误页⾯。
1 2 3 4<error-page><error-softwaresecurity>500</error-softwaresecurity> <location>/path/to/error.jsp</location></error-page>另外,web.xml⽂件应该被配置以防⽌详细的错误堆栈信息被显⽰出来,我们可以通过配置<exception-type>来实现。
因为Throwable是Java 中所有Exception和Error的基类,下⾯的代码⽚段将很好的确保堆栈信息不被服务器显⽰。
1 2 3 4<error-page><exception-type>ng.Throwable</exception-type> <location>/path/to/error.jsp</location></error-page>然⽽,如果你采⽤如下的处理⽅式,你依然会将堆栈信息展⽰出来:<%try {String s = null;s.length();} catch (Exception e) {// don't do this!e.printStackTrace(new PrintWriter(out));}%>这⾥请记住在合理配置了你的web.xml⽂件后,需要使⽤合理的。
Struts2的web.xml配置
Struts2讲义(1):web.xml配置在现在开发的Web项目中,大家都是使用web.xml来实现MVC框架的应用。
既然Struts2也属于MVC 框架,因此在web.xml中必定要配置Struts2用以实现应用。
技术要点本节代码说明Struts2基本配置。
1、如何加载FilterDispatcher过滤器。
2、如何使用FilterDispatcher过滤器拦截URL。
演示代码Java 代码1.<!--------------------------------------- 文件名: web.xml-------------------------------->2.<?xml version="1.0" encoding="GB2312"?>3.<web-app xmlns=/xml/ns/j2ee4. xmlns:xsi=/2001/XMLSchema-instance5. version="2.4"6.xsi:schemaLocation="/xml/ns/j2ee7./xml/ns/j2ee/web-app_2_4.xsd">8. <filter>9. <!-- 过滤器名字 -->10. <filter-name>struts2</filter-name>11. <!-- 过滤器支持的struts2类 -->12. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>13. </filter>14.15. <filter-mapping>16. <!-- 过滤器拦截名字 -->17. <filter-name>struts2</filter-name>18. <!-- 过滤器拦截文件路径名字 -->19. <url-pattern>/*</url-pattern>20. </filter-mapping>21. <welcome-file-list>22. <welcome-file>index.jsp</welcome-file>23. </welcome-file-list>24.</web-app>代码解释(1)在Struts1中web.xml中对它的加载都是加载一个Servlet,但是在Struts2中,因为设计者为了实现AOP(面向方面编程)概念,因此是用filter来实现的。
webservice xml参数组装与解析
文章标题:深入探讨webservice xml参数组装与解析1. 前言在当今信息技术日新月异的时代,web服务已成为各行业间数据交换和信息共享的关键方式。
webservice作为一种基于XML的远程调用协议,其参数的组装与解析对于系统间的通信至关重要。
本文将深入探讨webservice中XML参数的组装与解析,帮助读者更全面地理解这一关键技术。
2. XML参数的组装在webservice中,XML参数的组装是实现远程调用的基础。
我们需要明确webservice中参数的传递方式,通常使用SOAP协议。
在SOAP协议中,参数以XML格式进行组装,而XML具有良好的可扩展性和通用性,使得参数的组装非常灵活。
对于参数的组装,我们需要关注以下几个方面:- 根据webservice的WSDL文件,确定方法的输入参数类型和结构。
- 根据参数类型和结构,在客户端代码中构建对应的XML格式的参数。
- 使用合适的工具或库,将参数组装成符合要求的XML格式。
3. XML参数的解析一旦参数被远程调用传递到了服务端,就需要对XML参数进行解析。
在解析过程中,我们需关注以下几个方面:- 能否正常解析各种类型的XML参数。
- 是否能够处理XML参数中的各种嵌套结构。
- 能否根据WSDL文件中定义的参数类型进行正确的解析。
4. 深度探讨案例分析为了更好地理解webservice中XML参数的组装与解析,我们将以一个实际案例进行深入探讨。
假设我们需要实现一个webservice接口,用于获取用户的个人信息,并且返回的参数是一个包含用户信息的XML文档。
在这个案例中,我们可以通过以下步骤来进行参数的组装与解析:- 根据WSDL文件,确定获取用户信息的方法和参数结构。
- 在客户端代码中,根据参数结构构建符合要求的XML格式的参数。
- 在服务端接收到参数后,对XML参数进行解析,并提取出用户信息。
通过以上案例分析,我们可以更直观地理解webservice中XML参数的组装与解析的过程,以及在实际开发中的应用方法。
springMVC配置(XML配置详解)
springMVC配置(XML配置详解)原⽂出⾃:web.xml配置:servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><description>加载/WEB-INF/spring-mvc/⽬录下的所有XML作为Spring MVC的配置⽂件</description><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc/*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>这样,所有的.htm的请求,都会被DispatcherServlet处理;初始化 DispatcherServlet 时,该框架在 web 应⽤程序WEB-INF ⽬录中寻找⼀个名为[servlet-名称]-servlet.xml的⽂件,并在那⾥定义相关的Beans,重写在全局中定义的任何Beans,像上⾯的web.xml中的代码,对应的是dispatcher-servlet.xml;当然也可以使⽤<init-param>元素,⼿动指定配置⽂件的路径;dispatcher-servlet.xml 配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><!--使Spring⽀持⾃动检测组件,如注解的Controller--><context:component-scan base-package="com.minx.crm.web.controller"/><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix=".jsp" /></beans>第⼀个Controller:package com.minx.crm.web.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController {@RequestMapping("/index")public String index() {return "index";}}@Controller注解标识⼀个控制器,@RequestMapping注解标记⼀个访问的路径(/index.htm),return "index"标记返回视图(index.jsp);注:如果@RequestMapping注解在类级别上,则表⽰⼀相对路径,在⽅法级别上,则标记访问的路径;从@RequestMapping注解标记的访问路径中获取参数:Spring MVC ⽀持RESTful风格的URL参数,如:@Controllerpublic class IndexController {@RequestMapping("/index/{username}")public String index(@PathVariable("username") String username) {System.out.print(username);return "index";}}在@RequestMapping中定义访问页⾯的URL模版,使⽤{}传⼊页⾯参数,使⽤@PathVariable 获取传⼊参数,即可通过地址:http://localhost:8080/crm/index/tanqimin.htm 访问;根据不同的Web请求⽅法,映射到不同的处理⽅法:使⽤登陆页⾯作⽰例,定义两个⽅法分辨对使⽤GET请求和使⽤POST请求访问login.htm时的响应。
web.xml解析流程
Java Web 应用程序的部署描述符解析过程Web.xml 是 Java Web 应用程序的部署描述符,它包含了应用程序的配置信息。
当您创建一个Java Web 应用程序并准备部署到Web 服务器时,Web.xml 文件将用于配置 Web 服务器以正确地部署和运行您的应用程序。
解析 Web.xml 的基本流程如下:1.读取配置文件:Web 服务器会首先读取Web.xml 文件。
这个文件通常位于 Web 应用程序的 WEB-INF 目录下。
2.分析配置信息:Web.xml 文件包含了诸如Servlet、Filter、Listener、初始化参数等各种配置信息。
Web 服务器会逐行解析这些信息,并根据这些信息创建相应的对象或设置相应的属性。
3.加载和实例化Servlet:在解析Web.xml 文件的过程中,Web 服务器会识别所有的Servlet 和Filter,并加载它们。
加载后,Web 服务器会为每个 Servlet 创建一个实例,并设置其属性。
4.注册 Filter 和 Listener:除了 Servlet,Web.xml 中还可能包含 Filter 和Listener 的配置信息。
Filter 用于拦截请求和响应,Listener 用于监听特定的事件。
Web 服务器会根据这些配置信息注册相应的 Filter 和 Listener。
5.设置其他属性:在 Web.xml 中,还可以设置其他一些属性,如上下文参数、初始化参数等。
Web 服务器会根据这些设置来初始化 Web 应用程序。
6.部署完成:当所有的Servlet、Filter、Listener 和其他属性都设置完毕后,Web 应用程序就完成了部署。
此时,Web 服务器就可以接收来自客户端的请求,并根据请求路由到相应的 Servlet 进行处理。
需要注意的是,Web.xml 的解析和部署过程可能会因不同的 Web 服务器而略有不同。
但总的来说,这个过程基本上涵盖了Web.xml 中定义的所有配置信息的解析和加载过程。
Struts2框架配置文件详解大全
一、web.xml配置文件任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
所有的MVC框架都需要web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatche r,只要Web应用负责加载FilterDispatc her,FilterDispatc her将会加载饮用的Str uts2框架。
配置FilterDispatc her的代码片段如下:-------------------------------------web.xm l------------------------------------------------------------------- <?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><!-- 配置Struts2框架的核心Filter --><filter><!-- 配置Struts2核心Filter的名字 --><filter-name>struts2</filter-name><!-- 配置Struts2核心Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</f ilter-class></filter><!-- 配置Filter拦截的URL --><filter-mapping><!-- 配置Struts2核心FilterDispatcher拦截所有用户请求 --><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>-------------------------------------------------------------------------------------------------------------------- 二、struts.properties配置文件Struts2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
web.xml配置文件超详细说明!!!
web.xml配置⽂件超详细说明!!!⼀、web.xml是什么?⾸先 web.xml 是java web 项⽬的⼀个重要的配置⽂件,但是web.xml⽂件并不是Java web⼯程必须的。
web.xml⽂件是⽤来配置:欢迎页、servlet、filter等的。
当你的web⼯程没⽤到这些时,你可以不⽤web.xml⽂件来配置你的web⼯程。
所在位置项⽬名/web/WEB-INFO/web.xml,如下图所⽰web.xml能做的事情:其实,web.xml的模式(Schema)⽂件中定义了多少种标签元素,web.xml中就可以出现它的模式⽂件所定义的标签元素,它就能拥有定义出来的那些功能。
web.xml的模式⽂件是由Sun公司定义的,每个web.xml⽂件的根元素<web-app>中,都必须标明这个web.xml使⽤的是哪个模式⽂件。
如:web.xml 配置⽂件具体的内容⼆、Web.xml详解:1.web.xml加载过程(步骤)⾸先简单讲⼀下,web.xml的加载过程。
当启动⼀个WEB项⽬时,容器包括(JBoss、Tomcat等)⾸先会读取项⽬web.xml配置⽂件⾥的配置,当这⼀步骤没有出错并且完成之后,项⽬才能正常地被启动起来。
1. 启动WEB项⽬的时候,容器⾸先会去它的配置⽂件web.xml读取两个节点: <listener></listener>和<context-param></context-param>。
2. 紧接着,容器创建⼀个ServletContext(application),这个WEB项⽬所有部分都将共享这个上下⽂。
3. 容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存⼊ServletContext。
4. 容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化⽅法,启动Web应⽤时,系统调⽤Listener的该⽅法,在这个⽅法中获得:[html]1. <span style="font-family:Times New Roman;">ServletContextapplication=ServletContextEvent.getServletContext();</span>context-param的值就是application.getInitParameter("context-param的键");得到这个context-param的值之后,你就可以做⼀些操作了。
如何通过properties文件配置web.xml中的参数
如何通过properties⽂件配置web.xml中的参数⽬录前⾔实现思路web.xml中需要修改的部分filter.properties⽂件PropUtils⼯具类查看web.xml参数启动服务器进⾏测试web.xml前⾔因为公司项⽬需要,⽬前有本地环境、测试环境、开发环境。
每次在将项⽬打包成war包的时候,都需要修改多处的配置,⽽使⽤maven的profile打包项⽬的时候,可以根据执⾏打包命令时所带的参数来进⾏⾃动修改。
但是这种⽅式只对properties⽂件⽣效,即可以⾃动修改properties中的参数,但是公司的项⽬有⼀个web.xml中的配置参数也需要修改,这时候就要考虑如何通过properties⽂件动态修改web.xml中的参数了。
实现思路web.xml中需要修改的部分<web-app xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"version="3.0" metadata-complete="true"><!--⽤maven创建的web-app需要修改servlet的版本为3.1 --><welcome-file-list><welcome-file>/index.jsp</welcome-file></welcome-file-list><!--配置DispatcherServlet --><servlet><servlet-name>mypage-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置SpringMVC 需要配置的⽂件 spring-dao.xml,spring-service.xml,spring-web.xmlMybites -> spring -> springMvc --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-*.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>mypage-dispatcher</servlet-name><!--默认匹配所有请求 --><url-pattern>/</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping><filter><filter-name>testFilter</filter-name><filter-class>com.solr.filter.StringFilter</filter-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>mon.action;</param-value></init-param></filter><filter-mapping><filter-name>testFilter</filter-name><url-pattern>*.*</url-pattern></filter-mapping></web-app>这⾥需要改动的是45⾏,这是过滤器的初始化参数。
java web工程web.xml配置详解
java web工程web.xml配置详解在java工程中,web.xml用来初始化工程配置信息,比如说welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等等。
每一个xml文件都有定义他书写规范的schema文件,web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。
web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为<web-app>中,必须标明这个web.xml使用的是哪个模式文件。
web.xml的根元素定义如下所示:Java代码下面就来介绍一下web.xml中常用的标签及其功能1.<description>,<display-name>,<icon><description>项目描述</discription> 对项目做出描述.<display-name>项目名称</display-name> 定义项目的名称.<icon> icon元素包含small-icon和large-icon两个子元素.用来指定web站台中小图标和大图标的路径.<small-icon>/路径/smallicon.gif</small-icon>small-icon元素应指向web站台中某个小图标的路径,大小为16 X 16 pixel,但是图象文件必须为GIF或JPEG格式,扩展名必须为:.gif或 .jpg.<large-icon>/路径/largeicon-jpg</large-icon> large-icon元素应指向web站台中某个大图表路径,大小为32 X 32 pixel,但是图象文件必须为GIF或JPEG的格式,扩展名必须为; gif 或jpg.Java代码2.<context-param><context-param>元素含有一对参数名和参数值,用作应用的servlet上下文初始化参数。
Tomcat配置说明
web.xml文件详解一、web.xml文件介绍1.web.xml文件的作用web.xml主要用来配置Filter、Listener、Servlet等。
但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。
2.WEB容器的加载过程WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。
在web.xml文件中最好按照这种顺序配置这些元素,以兼容较低版本的Tomcat。
3.WEB容器的启动过程WEB容器启动时,加载过程顺序如下:1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3.容器将<context-param>转换为键值对,并交给servletContext。
4.容器创建<listener>中的类实例,创建监听器。
二、web.xml配置元素1.<web-app>根元素web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个web.xml使用的是哪个模式文件。
其它的元素都放在<web-app></web-app>之中,<web-app>是根节点。
<web-app version="3.0"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"></web-app>2.<icon>Web应用图标指出IDE和GUI工具用来表示Web应用的大图标和小图标。
web.xml中servlet配置及其含义
web.xml中servlet配置及其含义前⾔:每个javaEE⼯程中都有web.xml⽂件,那么它的作⽤是什么呢?它是每个web.xml⼯程都必须的吗?⼀个web中可以没有web.xml⽂件,也就是说,web.xml⽂件并不是web⼯程必须的。
web.xml⽂件是⽤来初始化配置信息:⽐如Welcome页⾯、servlet、servlet-mapping、filter、listener、启动加载级别等。
当你的web⼯程没⽤到这些时,你可以不⽤web.xml⽂件来配置你的Application。
每个xml⽂件都有定义它书写规则的Schema⽂件,也就是说javaEE的定义web.xml所对应的xml Schema⽂件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。
web.xml的模式⽂件是由Sun 公司定义的,每个web.xml⽂件的根元素为<web-app>中,必须标明这个web.xml使⽤的是哪个模式⽂件。
如:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"></web-app>web.xml的模式⽂件中定义的标签并不是定死的,模式⽂件也是可以改变的,⼀般来说,随着web.mxl模式⽂件的版本升级,⾥⾯定义的功能会越来越复杂,标签元素的种类肯定也会越来越多,但有些不是很常⽤的,我们只需记住⼀些常⽤的并知道怎么配置就可以了。
webservice xml参数
webservice xml参数在web服务中,XML参数的使用非常普遍。
XML参数可用于传递复杂的数据结构,如JSON格式的数据等。
在使用XML参数时,如果涉及到中文字符,则需要特别注意。
下面我们将详细介绍在使用XML参数时如何处理中文字符。
1. XML参数支持中文字符在使用XML参数时,理论上是支持中文字符的。
因为XML是一种标记语言,可以通过标记来识别不同的字符集。
XML中支持的字符集包括ASCII码、GB2312、BIG5、UTF-8等。
其中UTF-8是最为常用的一种字符集,其支持所有的Unicode字符,包括中文字符。
为了确保XML参数的传输准确性,建议在XML文件中指定编码方式,以便正确地显示中文字符。
应该在XML文档的头部声明文档类型及字符编码。
例如,下面是一个以UTF-8编码的XML文件:<?xml version="1.0" encoding="UTF-8"?>2. XML参数中文传输的实现方法在使用XML参数时,涉及到中文字符的传输需要注意以下几点:(1)指定XML编码格式在XML文件中要指定编码格式,如UTF-8。
这样接收方就会根据指定的编码格式正确地解析XML文件中的中文字符。
(2)对中文字符进行编码和解码对于XML文件中的中文字符,可以使用URL编码对其进行转义,例如将一个中文字符“中”转义成:%E4%B8%AD。
接收方在接收到XML参数后,需要先对其中的中文字符进行解码,才能正确地处理这些数据。
(3)使用CDATA声明如果XML参数中的中文字符比较多,使用URL编码会导致XML文件非常复杂,不易于解析。
这时可以使用CDATA标记来声明XML数据中的一段文本块(不需要转义),使该段文本块中的所有字符原封不动地传输。
例如:<![CDATA[中文字符]]>(1)不要在XML文件中使用大量的中文字符,以免XML文件太大不能正常解析。
web.xml配置详解
web.xml配置详解1、启动⼀个WEB项⽬的时候,WEB容器会去读取它的配置⽂件web.xml,读取<listener>和<context-param>两个结点。
2、紧急着,容创建⼀个ServletContext(servlet上下⽂),这个web项⽬的所有部分都将共享这个上下⽂。
3、容器将<context-param>转换为键值对,并交给servletContext。
4、容器创建<listener>中的类实例,创建监听器。
⼆ Load-on-startupLoad-on-startup 元素在web应⽤启动的时候指定了servlet被加载的顺序,它的值必须是⼀个整数。
如果它的值是⼀个负整数或是这个元素不存在,那么容器会在该servlet被调⽤的时候,加载这个servlet 。
如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值⼩的先被加载。
如果值相等,容器可以⾃动选择先加载谁。
在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是:标记容器是否在启动的时候就加载这个servlet。
当值为0或者⼤于0时,表⽰容器在应⽤启动时就加载这个servlet;当是⼀个负数时或者没有指定时,则指⽰容器在该servlet被选择时才加载。
正数的值越⼩,启动该servlet的优先级越⾼。
三加载顺序⾸先可以肯定的是,加载顺序与它们在 web.xml ⽂件中的先后顺序⽆关。
即不会因为 filter 写在 listener 的前⾯⽽会先加载 filter。
最终得出的结论是:ServletContext -> listener -> filter -> servlet同时还存在着这样⼀种配置节:context-param,它⽤于向 ServletContext 提供键值对,即应⽤程序上下⽂信息。
web.xml中welcome-file-list配置
web.xml中welcome-file-list配置转原⽹址找不到了<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>index.action</welcome-file></welcome-file-list>今天我遇到了⼀个问题,就是直接输⼊localhost:8080/不是跳转到index.html,⽽是报404找不到的错误,根据错误信息看明显是没有跳转到index.html,意思就是说welcome-file-list根本就⽊有起作⽤。
解决问题⼀定要从原理⼊⼿,所以要先分析welcome-file-list是怎么⼯作的。
welcome-file-list的⼯作原理是,按照welcome-file的.list⼀个⼀个去检查是否web⽬录下⾯存在这个⽂件,如果存在,继续下⾯的⼯作(或者跳转到index.html页⾯,或者配置有struts的,会直接struts的过滤⼯作).如上例,先去webcontent(这⾥是Eclipse的⼯程⽬录根⽬录)下是否真的存在index.html这个⽂件,如果不存在去找是否存在index.jsp这个⽂件,以此类推。
还要说的是welcome-file不⼀定是html或者jsp等⽂件,也可以是直接访问⼀个action。
就像我上⾯配置的⼀样,但要注意的是,⼀定要在webcontent下⾯建⽴⼀个index.action的空⽂件,然后使⽤struts配置去跳转,不然web找不到index.action这个⽂件,会报404错误,原因就是我之前说的那样。
如果配置了servlet的url-pattern是/*,那么访问localhost:8080/会匹配到该servlet上,⽽不是匹配welcome-file-list;如果url-pattern是/(该servlet即为默认servlet),如果其他匹配模式都没有匹配到,则会匹配welcome-file-list。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
2、紧接着,容器创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3、容器将<context-param>转换为键值对,并交给servletContext。
4、容器创建<listener>中的类实例,创建监听器。
二、<servlet>中<load-on-startup>元素指出这个servlet在web应用程序启动时将被加载(实例化时将调用它的init()方法)。
这个可选的元素必须给定一个整数来标记这个servlet被加载的顺序。
如果这个值是一个负数或者这个元素不存在,容器将自己选择在空闲的时候加载.如果它的值是一个正数或0,容器在展开(或配置,其实就是启动时加载web应用)。
这个web 应用程序时必须加载和初始化这个servlet容器必须保证这个servlet按照给定的整数标记从小到大的顺序加载它。
如果存在有相同的整数标记时,容器自己选择加载load-on-startup 元素值一样的servlet(也就是说加载的顺序不确定)。
三、在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。
首先可以肯定的是,加载顺序与它们在web.xml 文件中的先后顺序无关。
即不会因为filter 写在listener 的前面而会先加载filter。
最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向ServletContext 提供键值对,即应用程序上下文信息。
我们的listener, filter 等在初始化时会用到这些上下文中的信息,那么context-param 配置节是不是应该写在listener 配置节前呢?实际上context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener -> filter -> servlet 对于某类配置节而言,与它们出现的顺序是有关的。
以filter 为例,web.xml 中当然可以定义多个filter,与filter 相关的一个配置节是filter-mapping,这里一定要注意,对于拥有相同filter-name 的filter 和filter-mapping 配置节而言,filter-mapping 必须出现在filter 之后,否则当解析到filter-mapping 时,它所对应的filter-name 还未定义。
web 容器启动时初始化每个filter 时,是按照filter 配置节出现的顺序来初始化的,当请求资源匹配多个filter-mapping 时,filter 拦截资源是按照filter-mapping 配置节出现的顺序来依次调用doFilter() 方法的。
servlet 同filter 类似,此处不再赘述。
由此,可以看出,web.xml 的加载顺序是:context-param -> listener -> filter -> servlet,而同个类型之间的实际程序调用的时候的顺序是根据对应的mapping 的顺序进行调用的。
四、Web.xml常用元素<web-app><display-name></display-name>定义了WEB应用的名字<description></description> 声明WEB应用的描述信息<context-param></context-param> context-param元素声明应用范围内的初始化参数。
<filter></filter> 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
<filter-mapping></filter-mapping> 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
<listener></listener>servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。
Listener元素指出事件监听程序类。
<servlet></servlet> 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。
Servlet元素就是用来完成此项任务的。
<servlet-mapping></servlet-mapping> 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。
但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。
在更改缺省URL时,使用servlet-mapping元素。
<session-config></session-config> 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。
可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
<mime-mapping></mime-mapping>如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
<welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
<error-page></error-page> 在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
<taglib></taglib> 对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。
此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
<resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象。
<resource-ref></resource-ref> 声明一个资源工厂使用的外部资源。
<security-constraint></security-constraint> 制定应该保护的URL。
它与login-config元素联合使用。
<login-config></login-config> 指定服务器应该怎样给试图访问受保护页面的用户授权。
它与sercurity-constraint元素联合使用。
<security-role></security-role>给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。
分别地声明角色可使高级IDE处理安全信息更为容易。
<env-entry></env-entry>声明Web应用的环境项。
<ejb-ref></ejb-ref>声明一个EJB的主目录的引用。
< ejb-local-ref></ ejb-local-ref>声明一个EJB的本地主目录的应用。
</web-app>相应元素配置1、Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标<icon><small-icon>/images/app_small.gif</small-icon><large-icon>/images/app_large.gif</large-icon></icon>2、Web 应用名称:提供GUI工具可能会用来标记这个特定的Web应用的一个名称<display-name>Tomcat Example</display-name>3、Web 应用描述:给出于此相关的说明性文本<disciption>Tomcat Example servlets and JSP pages.</disc iption>4、上下文参数:声明应用范围内的初始化参数。
<context-param><param-name>ContextParameter</para-name><param-value>test</param-value><description>It is a test parameter.</description></context-param>在servlet里面可以通过getServletContext().getInitParameter("context/param")得到5、过滤器配置:将一个名字与一个实现javaxs.servlet.Filter接口的类相关联。
<filter><filter-name>setCharacterEncoding</filter-name><filter-class>com.myTest.setCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>GB2312</param-value></init-param></filter><filter-mapping><filter-name>setCharacterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>6、监听器配置<listener><listerner-class>listener.SessionListener</listener-class></listener>7、Servlet配置基本配置<servlet><servlet-name>snoop</servlet-name><servlet-class>SnoopServlet</servlet-class></servlet><servlet-mapping><servlet-name>snoop</servlet-name><url-pattern>/snoop</url-pattern></servlet-mapping>高级配置<servlet><servlet-name>snoop</servlet-name><servlet-class>SnoopServlet</servlet-class><init-param><param-name>foo</param-name><param-value>bar</param-value></init-param><run-as><description>Security role for anonymous access</description><role-name>tomcat</role-name></run-as></servlet><servlet-mapping><servlet-name>snoop</servlet-name><url-pattern>/snoop</url-pattern></servlet-mapping>元素说明<servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素:<servlet-name></servlet-name> 指定servlet的名称<servlet-class></servlet-class> 指定servlet的类名称<jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径<init-param></init-param> 用来定义参数,可有多个init-param。