web.xml配置文件详解
Tomcatweb.xml详解
Tomcatweb.xml详解Tomcat加载顺序加载类和资源的顺序为:1、/Web-INF/classes2、/Web-INF/lib/*.jar3、Bootstrap4、System5、$CATALINA_HOME/common/classes6、$CATALINA_HOME/common/endores/*.jar7、$CATALINA_HOME/common/lib/*.jar8、$CATALINA_HOME/shared/classes9、$CATALINA_HOME/shared/lib/*.jar两个web配置⽂件Servlet定义的时候,我发现在${catalina.home}/conf下以及${catalina.home}/webapps/ROOT/WEB_INF下都有web.xml这个⽂件。
web.xml的⽂件格式定义在Servlet规范中,因此所有符合Servlet规范的Java Servlet Container都会⽤到它。
当tomcat部署应⽤程序时(在激活过程中,或加载应⽤程序后),它都会读取通⽤的conf/web.xml,然后再读取web应⽤程序中的WEB-INF/web.xml。
其实根据他们的位置,我们就可以知道,conf/web.xml⽂件中的设定会应⽤于所有的web应⽤程序,⽽某些web应⽤程序的WEB-INF/web.xml中的设定只应⽤于该应⽤程序本⾝。
如果没有WEB-INF/web.xml⽂件,tomcat会输出找不到的消息,但仍然会部署并使⽤web应⽤程序,servlet规范的作者想要实现⼀种能迅速并简易设定新范围的⽅法,以⽤作测试,因此,这个web.xml并不是必要的,不过通常最好还是让每⼀个上线的web应⽤程序都有⼀个⾃⼰的WEB-INF/web.xml。
系统web.xml详解<?xml version="1.0" encoding="GB2312"?><!--Web.xml依次定议了如下元素:<web-app><display-name></display-name> 定义了WEB应⽤的名字<description></description> 声明WEB应⽤的描述信息<filter></filter><filter-mapping></filter-mapping><servlet></servlet><servlet-mapping></servlet-mapping><session-config></session-config><welcome-file-list></welcome-file-list><taglib></taglib><resource-ref></resource-ref><security-constraint></security-constraint><login-config></login-config></web-app>在web.xml中元素定义的先后顺序不能颠倒,否则Tomcat服务器可能会抛出SAXParseException.--><!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><display-name>Sample Application</display-name><description>This is a Sample Application</description><!--filter 配置Servlet过滤器filter-name 定义过滤器的名字。
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。
Web.config详解
一、认识Web.config文件Web.config 文件是一个XML文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置特点: 位于<appSetting>中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
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详解
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.config详解
Web.config详解一、认识Web.config文件Web.config文件是一个xml文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以xml文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置特点: 位于<appSetting>中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择c#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
TOMCATweb.xml文件中配置mime下载文件类型
关键字: mime下载文件类型(转) tomcat web.xml 文件下载 TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一般都是服务器给什么浏览器就开什么.解决方法:打开conf/web.xml,加入下面的代码.<mime-mapping><extension>doc</extension><mime-type>application/msword</mime-type></mime-mapping><mime-mapping><extension>xls</extension><mime-type>application/msexcel</mime-type></mime-mapping><mime-mapping><extension>pdf</extension><mime-type>application/pdf</mime-type></mime-mapping><mime-mapping><extension>zip</extension><mime-type>application/zip</mime-type></mime-mapping><mime-mapping><extension>rar</extension><mime-type>application/rar</mime-type></mime-mapping><mime-mapping><extension>txt</extension><mime-type>application/txt</mime-type></mime-mapping><mime-mapping><extension>chm</extension><mime-type>application/mshelp</mime-type></mime-mapping>重启TOMCAT,清除IE缓存,再打开RAR的文件时就可以正常下载了. Trackback: /TrackBack.aspx?PostId=15274831.指定了自己的javaEncoding(参考 /staticcontent/html/sunone/app7/app7-dg-webapp/ch6/ch6-4.html <servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param><param-name>fork</param-name><param-value>false</param-value></init-param><init-param><param-name>javaEncoding</param-name><param-value>GB18030</param-value></init-param><init-param><param-name>xpoweredBy</param-name><param-value>true</param-value></init-param><load-on-startup>3</load-on-startup></servlet>2.添加rar,iso等的mime-type映射避免在浏览器里直接打开。
struts2配置文件详解
<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />
<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />
<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />
<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->
WebService核心文件【server-config.wsdd】详解及调用示例
WebService核⼼⽂件【server-config.wsdd】详解及调⽤⽰例 WebService核⼼⽂件【server-config.wsdd】详解及调⽤⽰例作者:Vashon⼀、准备⼯作导⼊需要的jar包:⼆、配置web.xml在web⼯程的web.xml中添加如下配置:[html]1. <servlet>2. <servlet-name>AxisServlet</servlet-name>3. <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>4. <load-on-startup>15</load-on-startup>5. </servlet>6. <servlet-mapping>7. <servlet-name>AxisServlet</servlet-name>8. <url-pattern>/services/*</url-pattern>9. </servlet-mapping>三、配置server-config.wsdd⽂件在WEB-INF下添加WebService核⼼⽂件server-config.wsdd:[html]1. <?xml version="1.0" encoding="UTF-8"?>2. <deployment xmlns="/axis/wsdd/"3. xmlns:java="/axis/wsdd/providers/java">4. <globalConfiguration>5. <!-- 变量设定 -->6. <parameter name="sendMultiRefs" value="true" />7. <parameter name="disablePrettyXML" value="true" />8. <parameter name="adminPassword" value="admin" />9. <parameter name="attachments.Directory"10. value="D:\myproject\calileo\xxx\WebContent\WEB-INF\attachments" />11. <parameter name="dotNetSoapEncFix" value="true" />12. <parameter name="enableNamespacePrefixOptimization" value="true" />13. <parameter name="sendXMLDeclaration" value="true" />14. <parameter name="attachments.implementation"15. value="org.apache.axis.attachments.AttachmentsImpl" />16. <parameter name="sendXsiTypes" value="true" />17. <requestFlow>18. <handler type="java:org.apache.axis.handlers.JWSHandler">19. <parameter name="scope" value="session" />20. </handler>21. <handler type="java:org.apache.axis.handlers.JWSHandler">22. <parameter name="scope" value="request" />23. <parameter name="extension" value=".jwr" />24. </handler>25. </requestFlow>26. </globalConfiguration>27. <handler name="LocalResponder"28. type="java:org.apache.axis.transport.local.LocalResponder" />29. <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />30. <handler name="Authenticate"31. type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />32.33. <!-- 核⼼重点:服务发布,name:表⽰发布的service名 -->34. <service name="SjrkkService" provider="java:RPC">35. <!-- 发布的service接⼝类 -->36. <parameter name="className" value="com.xxx.ws.SjrkkService" />37. </service>38.39. <transport name="http">40. <requestFlow>41. <handler type="URLMapper" />42. <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />43. </requestFlow>44. <parameter name="qs:list"45. value="org.apache.axis.transport.http.QSListHandler" />46. <parameter name="qs:wsdl"47. value="org.apache.axis.transport.http.QSWSDLHandler" />48. <parameter name="qs.list"49. value="org.apache.axis.transport.http.QSListHandler" />50. <parameter name="qs.method"51. value="org.apache.axis.transport.http.QSMethodHandler" />52. <parameter name="qs:method"53. value="org.apache.axis.transport.http.QSMethodHandler" />54. <parameter name="qs.wsdl"55. value="org.apache.axis.transport.http.QSWSDLHandler" />56. </transport>57. <transport name="local">58. <responseFlow>59. <handler type="LocalResponder" />60. </responseFlow>61. </transport>62. </deployment>四、测试WSDL五、调WebService[java]1. /**2. * 调⽤webservice的⽅法.3. * @param url wsdl链接4. * @param method 调⽤的接⼝5. * @param idCard 传⼊的参数6. * @return7. * @throws Exception8. */9. private String getWebServiceResult( String url, String method, String idCard) throws Exception{10. String rtnXml = null;11. try {12. String endpoint = url;13. Service service = new Service();14. Call call = (Call) service.createCall();15.16. call.setTargetEndpointAddress(new .URL(endpoint));17. call.setOperationName(method);18.19. rtnXml = (String) call.invoke(new Object[]{idCard});20.21.22. } catch (Exception e) {23. e.printStackTrace();24. }25. return rtnXml;26. }备注:调⽤结果就不演⽰了,到这⾥读者应该明⽩是怎么调了。
web.xml文件配置详解以及实例说明
web.xml⽂件配置详解以及实例说明1、web.xml学名叫部署描述符⽂件,是在Servlet规范中定义的,是web应⽤的配置⽂件。
2、部署描述符⽂件就像所有XML⽂件⼀样,必须以⼀个XML头开始。
这个头声明可以使⽤的XML版本并给出⽂件的字符编码。
DOCYTPE 声明必须⽴即出现在此头之后。
这个声明告诉服务器适⽤的servlet规范的版本(如2.2或2.3)并指定管理此⽂件其余部分内容的语法的DTD(Document Type Definition,⽂档类型定义)。
所有部署描述符⽂件的顶层(根)元素为web-app。
请注意,XML元素不像HTML,他们是⼤⼩写敏感的。
因此,web-App和WEB-APP都是不合法的,web-app必须⽤⼩写。
web.xml样例:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application //EN" "/dtd/web-app_2_3.dtd"><web-app></web-app>3、web.xml中XML 元素不仅是⼤⼩写敏感的,⽽且它们还对出现在其他元素中的次序敏感。
例如,XML头必须是⽂件中的第⼀项,DOCTYPE声明必须是第⼆项,⽽web- app元素必须是第三项。
在web-app元素内,元素的次序也很重要。
服务器不⼀定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执⾏含有次序不正确的元素的Web应⽤。
这表⽰使⽤⾮标准元素次序的web.xml⽂件是不可移植的。
元素顺序列表:元素标签详解:元素1:<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.范例<icon><small-icon>/images/small.gif</small-icon><large-icon>/images/large.gif</large-icon></icon>元素2、3:<display-name>,<description>含义<display-name>应⽤名称</display-name>定义应⽤的名称。
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时的响应。
spring mvc框架 web.xml配置文件 Could not open ServletContext resource
搭建Spring 的mvc框架的时候报出来这个错误,上面的代码是在web.xml中配置的,加载的就是*-servlet.xml文件,当前默认加载的是springMVC-servlet.xml如果不给项目指定加载文件,默认加载的就是<servlet-name>名字</servlet-name>,名字-servlet.xml文件。
如果写成需要说明的是配置了servlet,在WEB-INF目录下应该有个[servlet-name]-servlet.xml文件,用于配置controller之前一直出现找不到/WEB-INF/spring-servlet.xml错误,是因为把它和applicationContext.xml放到了一起,编译过后出现在了WEB-INF/classes文件夹下面。
最后再说一下我们遇到问题盲目搜索往往不能迅速得到有效的解决方案,所以我们先从官方去寻找线索,看一看spring的官方文档,在The Web的章节中可以发现这样一段话:简单翻译一下上图标记的小段落:如果不特意指定参数名为contextConfigLoction的<context-parameter>元素,那么spring的ContextLoderListener监听器就会在/WEB-INF/下去寻找并加载该目录下的名为applicationContext.xml这个文件。
So,我们应该在web.xml中添加<context-param>标签并再次指定spring核心文件的位置:这样就OK了,注意这段配置尽量写在靠前的位置,因为在tomcat启动后web项目会先初始化上下文,我们这段配置正是指定了上下文配置的文件位置,在上下文初始化完成之后才应当继续加载其余各种配置,而我们的springMVC的servlet仅仅是springMVC 框架的相关配置,就好比struts2的配置一样,项目整体还是由spring去管理的。
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⾏,这是过滤器的初始化参数。
springMVC配置文件详解
web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。
在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。
但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。
但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。
配置方式与普通的servlet基本相似。
配置内容如下:<!-- 配置前端控制器--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- ContextconfigLocation配置springmvc加载的配置文件适配器、处理映射器等--><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>spring</servlet-name><!-- 1、.action访问以.action结尾的由DispatcherServlet进行解析2、/,所有访问都由DispatcherServlet进行解析--><url-pattern>/</url-pattern></servlet-mapping>这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。
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模式⽂件的版本升级,⾥⾯定义的功能会越来越复杂,标签元素的种类肯定也会越来越多,但有些不是很常⽤的,我们只需记住⼀些常⽤的并知道怎么配置就可以了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
param-name 子元素包含有参数名,而param-value子元素包含的是参数值。作为选择,可用description
子元素来描述参数。
下面是一个含有context-param元素的有效部署描述符:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"/dtd/web-app_2_3.dtd">
<web-app>
<filter>
web.xml配置文件详解JSP技术
部署描述符实际上是一个XML文件,包含了很多描述servlet/JSP应用的各个方面的元素,如servlet注册
、servlet映射以及监听器注册。部署描述符从下面的XML头开始:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
filter-class, init-param*)>
<!ELEMENT filter-name (#PCDATA)>
<!ELEMENT filter-class (#PCDATA)>
icon、display-name和description元素的用法和上一节介绍的用法相同。init-param元素与context-
素。
2. display-name元素
如果使用工具编辑部署描述符,display-name元素包含的就是XML编辑器显示的名称。
<!ELEMENT display-name (#PCDATA)>
下面是一个含有display-name元素的部署描述符:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"/dtd/web-app_2_3.dtd">
<web-app>
<filter>
所有子元素。
注意:
在Servlet 2.3中,子元素必须按照DTD文件语法描述中指定的顺序出现。比如,如果部署描述符中的
web-app元素有servlet和servlet-mapping两个子元素,则servlet子元素必须出现在servlet-mapping子
元素之前。在Servlet 2.4中,顺序并不重要。
<filter-name>Encryption Filter</filter-name>
<filter-class>com.branysoftware.EncryptionFilter</filter-class>
</filter>
</web-app>
7. filter-mapping元素
error-page*, taglib*, resource-env-ref*, resource-ref*,
security-constraint*, login-config?, security-role*,env-entry*,
ejb-ref*, ejb-local-ref*)>
"/dtd/web-app_2_3.dtd">
<web-app>
<distributable/>
</web-app>
5. context-param元素
context-param元素含有一对参数名和参数值,用作应用的servlet上下文初始化参数。参数名在整个Web
素出现的顺序执行的。
<!ELEMENT filter-mapping (filter-name, (url-pattern | servlet-name))>
<!ELEMENT filter-name (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
</web-filter元素用于指定Web容器中的过滤器。在请求和响应对象被servlet处理之前或之后,可以使用过滤
这段代码指定文件类型定义(DTD),可以通过它检查XML文档的有效性。下面显示的<!DOCTYPE>元素有几
个特性,这些特性告诉我们关于DTD的信息:
● web-app定义该文档(部署描述符,不是DTD文件)的根元素
● PUBLIC意味着DTD文件可以被公开使用
distributable?, context-param*, filter*, filter-mapping*,
listener*, servlet*, servlet-mapping*, session-config?,
mime-mapping*, welcome-file-list?,
<filter-name>Encryption Filter</filter-name>
<filter-class>com.brainysoftware.EncryptionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Encryption Filter</filter-name>
filter-mapping元素用来声明Web应用中的过滤器映射。过滤器可被映射到一个servlet或一个URL模式。
将过滤器映射到一个servlet中会造成过滤器作用于servlet上。将过滤器映射到一个URL模式中则可以将
过滤器应用于任何资源,只要该资源的URL与URL模式匹配。过滤是按照部署描述符的filter-mapping元
正如您所看到的,这个元素含有23个子元素,而且子元素都是可选的。问号(?)表示子元素是可选的,
而且只能出现一次。星号(*)表示子元素可在部署描述符中出现零次或多次。有些子元素还可以有它们自
己的子元素。
web.xml文件中web-app元素声明的是下面每个子元素的声明。下面的章节讲述部署描述符中可能包含的
param元素具有相同的元素描述符。filter-name元素用来定义过滤器的名称,该名称在整个应用中都必
须是惟一的。filter-class元素指定过滤器类的完全限定的名称。
下面是一个使用filter元素的部署描述符的例子:
<?xml version="1.0" encoding="ISO-8859-1"?>
下面对web.xml文件各元素进行详解
1. icon元素
icon元素用来指定GIF格式或JPEG格式的小图标(16×16)或大图标(32×32)的文件名。
<!ELEMENT icon (small-icon?, large-icon?)>
<!ELEMENT small-icon (#PCDATA)>
器对这两个对象进行操作。利用下一节介绍的filter-mapping元素,过滤器被映射到一个servlet或一个
URL模式。这个过滤器的filter元素和filter-mapping元素必须具有相同的名称。
<!ELEMENT filter (icon?, filter-name, display-name?, description?,
的。
● URL"/dtd/web-app_2_3.dtd"表示D文件的位置。
注意:
在部署描述符中, <!--…-->用于注释。
部署描述符的根元素是web-app。DTD文件规定,web-app元素的子元素的语法如下:
<!ELEMENT web-app (icon?, display-name?, description?,
<!ELEMENT distributable EMPTY>
例如,下面是一个含有distributable元素的部署描述符的例子:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"