配置web.xml文件
SSH2整合实例详细教程
本次教程是SSH2的环境搭建,主要用到的技术是struts2.0+hibernate3.2+spring2.0,这种架构在现在很流行的,也是很多高校学生做毕业设计的架构,今天我们就用这种架构做一个简单的实例,详细的步骤,在于抛砖引玉,给大家一点启发。
一、创建数据库的时候会创建出联合主键<Composite-id>。
二、项目创建1、打开MyEclipse,点击File,指向New,点击Web Project。
2、输入工程名SSH,J2EE Specification Level为Java EE 5.0,点Finish即可创建完项目。
三、添加hibernate环境1、右击刚建立的SSH项目,指向MyEclipse,点击Add Hibernate Capabilities。
2、出现如下对话框之后,选择要用到的Hibernate3.2,以及所用到的包,选择Copy checked Library Jars to project folder and add to build-path,点击Next。
3、到了这一步,按默认设置,点击Next。
4、取消Specify database connection details的选择,再点击Next。
5、取消Create SessionFactory class选择,最后点击Finish。
这样一些有关hibernate的jar包点导进来了,以及建了一个hibernate.cfg.xml文件。
导入前:导入后:四、添加spring环境1、和添加hibernate环境的方法大致相同,右击SSH项目,指向MyEclipse,点击Add spring Capabilities。
2、选择要用到的Spring 2.0,勾选用到的库,注意还要勾选Spring 2.0 Web Libraries的库,一共是勾选了5个库的。
再选择Copy checked Library contents to project folder(TLDs always copied),点击Next。
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站点乱码问题都曾使我们困惑加郁闷不少,在此我积累了几点解决方案,用于解决不同情况下的乱码问题,希望能对各位有些许提示作用。
首先应确定不是因为浏览器的原因导致中文乱码。
本人在刚用firefox时就遇到了url中文乱码的问题,找自己程序及配置找了老久也没解决问题,后来才发现原来是浏览器的配置问题。
问题:编码为utf-8,url 出现乱码。
form表单get、post方式都无乱码,页面链接地址也无中文乱码,刷新页面无乱码,但是选中地址栏中的url 敲回车,乱码出现了!原因:浏览器配置问题。
解决方案:ie:“internet选项/高级”中“总以utf-8发送网址”的选项的配置;firefox:地址栏中输入about:config,修改network.standard-url.escape-utf8 为False (缺省为True);如果你想让浏览器直接url-encode成utf-8,修改network.standard-url.encode-utf8为true(缺省为false)。
解释:根据Web规范,URL必须以UTF-8字符集进行编码。
而Firefox默认gbk encode,ie默认utf8 encode;另外Firefox对地址中的中文采取了不同于IE的编码方式,也就是说:当url参数值含有中文时firefox默认使用escape进行编码,当参数值没有用escape进行编码时,使用unescape进行解码IE下不会乱码,但Firefox下会乱码。
附:prefs.converted-to-utf8 * 首选项转换成UTF-8编码格式network.standard-url * Standard URL settingsok!确认浏览器配置正确后,仍有中文乱码出现,八成儿就是兄弟你代码的问题了,解决方案大概有以下几种。
1、tomcat服务器配置server.xml文件主要用户处理与页面交互时产生的乱码问题,例如提交表单等。
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文件中的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⽂件后,需要使⽤合理的。
Tomcat-Web服务器安全配置规范V1.0
1、根据不同用户,取不同的名称。
2、Tomcat4.1.37、5.5.27和6.0.18这三个版本及以后发行的版本默认都不存在admin.xml配置文件。
检测方法
1、判定条件
各账号都可以登录Tomcat Web服务器为正常
2、检测操作
访问http://ip:8080/manager/html管理页面,进行Tomcat服务器管理
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page isErrorPage="true"%>
<html>
<head><title>错误页面</title></head>
<body>出错了:</p>错误信息: <%= exception.getMessage() %><br>
Suffix:文件后缀名
Pattern: common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中
resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址
操作指南
1、参考配置操作
在tomcat/conf/tomcat-user.xml配置文件中设置密码
<user username=”tomcat” password=”Tomcat!234”roles=”admin”>
2、补充操作说明
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来实现的。
web.xmlservlet、servlet-mapping配置
web.xmlservlet、servlet-mapping配置Servlet 常称为服务器端⼩程序,即运⾏在服务器端的程序,⽤于处理及响应客户的请求。
Servlet类是个特殊的java类,继承于HttpServlet。
---------------------------------------------------------------⽅法客户端通常只有GET和POST两种请求⽅式,Servlet为了响应则两种请求,必须重写doGet()和doPost()⽅法。
⼤部分时候,Servlet对于所有的请求响应都是完全⼀样的,此时只需要重写service()⽅法即可响应客户端的所有请求。
另外,HttpServlet还有两个⽅法:(1). init(ServletConfig config):创建Servlet实例时,调⽤该⽅法的初始化Servlet资源。
(2). destroy():销毁Servlet实例时,⾃动调⽤该⽅法的回收资源。
通常⽆需重写init()和destroy()两个⽅法,除⾮需要在初始化Servlet时,完成某些资源初始化的⽅法,才考虑重写init()⽅法,如果重写了init()⽅法,应在重写该⽅法的第⼀⾏调⽤super.init(config),该⽅法将调⽤HttpServlet的init()⽅法。
如果需要在销毁Servlet之前,先完成某些资源的回收,⽐如关闭数据库连接,才需要重写destory⽅法()。
---------------------------------------------------------------Servlet创建时机(1). 客户端第⼀次请求某个Servlet时,系统创建该Servlet的实例,⼤部分Servlet都是这种Servlet。
(2). Web应⽤启动时⽴即创建Servlet实例,即load-on-start Servlet。
---------------------------------------------------------------Servlet的⽣命周期(1). 创建Servlet实例。
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>定义应⽤的名称。
课题_spring mvc框架 web.xml配置文件 Could not open ServletContext resource
spring mvc框架web.xml配置文件Could not open ServletContext resource web.xml配置文件代码:<context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:applicationContext*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- spring dispatcher配置--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!-- spring dispatcher配置-->需要说明的是配置了servlet,在WEB-INF目录下应该有个[servlet-name]-servlet.xml文件,用于配置controller之前一直出现找不到/WEB-INF/spring-servlet.xml错误,是因为把它和applicationContext.xml放到了一起,编译过后出现在了WEB-INF/classes文件夹下面开始还以为是jar包错了...... 不过总算是解决了,先记下来,再遇到这个错误就知道咋回事儿了。
如何使用多个Spring的xml配置文件
如何使用多个Spring的xml配置文件(多模块配置)在用Struts Spring Hibernate进行项目团队开发的时候,我们每个开发人员可能都会用到spring的配置文件,如果我们每个开放人员都用同一个的话,这样会给项目开发带来一定的影响,不过大家不用急,Spring为我们提供了很好的方法,我们可以写多个xml文件,然后将每个文件引入进来就行了,话不多说了,马上开始!!方法一、在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有”逗号”分割的xml.如果没有这个参数,spring默认加载WEB-INF/applicationContext.xml文件(我们现在将Spring配置文件都放在WEB-INF下面)<context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:conf/spring/applicationContext_core*.xml,classpath*:conf/spring/applicationContext_dict*.xml,classpath*:conf/spring/applicationContext_hibernate.xml,classpath*:conf/spring/applicationContext_staff*.xml,classpath*:conf/spring/applicationContext_security.xmlclasspath*:conf/spring/applicationContext_modules*.xmlclasspath*:conf/spring/applicationContext_cti*.xmlclasspath*:conf/spring/applicationContext_apm*.xml</param-value></context-param>contextConfigLocation 参数定义了要装入的 Spring 配置文件。
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的值之后,你就可以做⼀些操作了。
自定义标签编写步骤
概括地说,自定义标签编写包括四个步骤:1.编写标签处理类2.编写标签描述tld文件3.配置web.xml文件4.在jsp页面中声明并调用标签编写标签处理类1)放在一个包中,即package **;2)导入必要的包:import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.*等。
3)在编译标签处理类时,须将jsp-api.jar(位于tomcat的common\lib 目录下)文件加入到classpath中标签描述文件tld文件由一系列元素组成,涉及的元素很多,其中必需的元素有:<taglib>:根元素<tlib-version>:标签库版本号<uri>:标签库唯一uri的元素<tag>:描述每个标签处理器及属性的元素以下是<tag>标签下的元素:<name>:与标签库名字前缀一起使用的标签名字<tag-class>:标签处理类的名称,包括包的名字<body-content>:描述标签处理器使用标签体的方式<attribute>:描述相关属性信息配置web.xml文件作用:声明标签库引用<taglib><taglib-uri>与tld文件中的uri一致</taglib-uri><taglib-location>tld文件的路径</taglib-location></taglib>在jsp页面中声明并调用1)<%@taglib uri=”与tld文件中的uri一致”prefix=”使用时的前缀名字”%>2)使用格式:<前缀名字:tag名字相关属性赋值>程序举例(实现简单的文本框)java程序:package tags;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class Textbox extends TagSupport{private String lable="";private String name="";private String value="";private String maxlength="20";public void setLable(String lable){ble=lable;}public void setName(String name){=name;}public void setValue(String value){this.value=value;}public void setMaxlength(String maxlength){this.maxlength=maxlength;}public int doStartTag(){try{JspWriter out=pageContext.getOut();out.print("<label>"+lable+"</label>");out.println("<input value='"+value+"' name='"+name+"' size='"+maxlength+"' id='textbox' >"); }catch(Exception e){System.out.println("failed");}return EVAL_BODY_INCLUDE;}}tld文件:<?xml version="1.0" encoding="ISO-8859-1" ?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><uri>/mytag</uri><tag><name>textbox</name><tag-class>tags.Textbox</tag-class><body-content>empty</body-content><attribute><name>lable</name><required>false</required></attribute><attribute><name>name</name><required>true</required></attribute><attribute><name>value</name><required>true</required></attribute><attribute><name>maxlength</name><required>false</required></attribute></tag></taglib>web文件<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-app_2_4.xsd"version="2.4"><taglib><taglib-uri>/mytag</taglib-uri><taglib-location>/WEB-INF/tlds/tag.tld</taglib-location></taglib></web-app>jsp页面<%@page contentType="text/html;charset=gb2312"%><%@taglib uri="/mytag" prefix="my"%><html><head><title>jsp自定义标签的简单使用实例</title></head><body><my:textbox lable="用户名:" name="username" value="" /><br><my:textbox lable="密 码:" name="username" value="" /> </body></html>。
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模式⽂件的版本升级,⾥⾯定义的功能会越来越复杂,标签元素的种类肯定也会越来越多,但有些不是很常⽤的,我们只需记住⼀些常⽤的并知道怎么配置就可以了。
如何通过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⾏,这是过滤器的初始化参数。
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 中定义的所有配置信息的解析和加载过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5.1 配置web.xml文件任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts 2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher 将会加载应用的Struts 2框架。
因为Struts 2将核心控制器设计成Filter,而不是一个普通Servlet。
故为了让Web 应用加载FilterDispacher,只需要在web.xml文件中配置FilterDispatcher即可。
配置FilterDispatcher的代码片段如下:Java代码<!-- 配置Struts 2框架的核心Filter --><filter><!-- 配置Struts 2核心Filter的名字 --><filter-name>struts</filter-name><!-- 配置Struts 2核心Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><init-param><!-- 配置Struts 2框架默认加载的Action包结构--><param-name>actionPackages</param-name><param-value>org.apache.struts2.showcase.person</param-value></init-param><!-- 配置Struts 2框架的配置提供者类 --><init-param><param-name>configProviders </param-name><param-value>lee.MyConfigurationProvider</param-value></init-param></filter><!-- 配置Struts 2框架的核心Filter --><filter><!-- 配置Struts 2核心Filter的名字 --><filter-name>struts</filter-name><!-- 配置Struts 2核心Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><init-param><!-- 配置Struts 2框架默认加载的Action包结构 --><param-name>actionPackages</param-name><param-value>org.apache.struts2.showcase.person</param-value></init-param><!-- 配置Struts 2框架的配置提供者类 --><init-param><param-name>configProviders </param-name><param-value>lee.MyConfigurationProvider</param-value></init-param></filter>正如上面看到的,当配置Struts 2的FilterDispatcher类时,可以指定一系列的初始化参数,为该Filter配置初始化参数时,其中有3个初始化参数有特殊意义:— config:该参数的值是一个以英文逗号(,)隔开的字符串,每个字符串都是一个XML配置文件的位置。
Struts 2框架将自动加载该属性指定的系列配置文件。
— actionPackages:该参数的值也是一个以英文逗号(,)隔开的字符串,每个字符串都是一个包空间,Struts 2框架将扫描这些包空间下的Action类。
— configProviders:如果用户需要实现自己的ConfigurationProvider类,用户可以提供一个或多个实现了ConfigurationProvider接口的类,然后将这些类的类名设置成该属性的值,多个类名之间以英文逗号(,)隔开。
除此之外,还可在此处配置Struts 2常量,每个<init-param>元素配置一个Struts 2常量,其中<param-name>子元素指定了常量name,而<param-value>子元素指定了常量value。
在web.xml文件中配置了该Filter,还需要配置该Filter拦截的URL。
通常,我们让该Filter拦截所有的用户请求,因此使用通配符来配置该Filter拦截的URL。
下面是配置该Filter拦截URL的配置片段:Java代码<!-- 配置Filter拦截的URL -->lt;filter-mapping><!-- 配置Struts 2的核心FilterDispatcher拦截所有用户请求 --> <filter-name>struts</filter-name><url-pattern>/*</url-pattern>lt;/filter-mapping><!-- 配置Filter拦截的URL --><filter-mapping><!-- 配置Struts 2的核心FilterDispatcher拦截所有用户请求--><filter-name>struts</filter-name><url-pattern>/*</url-pattern></filter-mapping>配置了Struts 2的核心FilterDispatcher后,基本完成了Struts 2在web.xml文件中的配置。
如果Web应用使用了Servlet 2.3以前的规范,因为Web应用不会自动加载Struts 2框架的标签文件,因此必须在web.xml文件中配置加载Struts 2标签库。
配置加载Struts 2标签库的配置片段如下:Java代码<!-- 手动配置Struts 2的标签库 --><taglib><!-- 配置Struts 2标签库的URI --><taglib-uri>/s</taglib-uri><!-- 指定Struts 2标签库定义文件的位置 --><taglib-location>/WEB-INF/struts-tags.tld</taglib-location></taglib><!-- 手动配置Struts 2的标签库 --><taglib><!-- 配置Struts 2标签库的URI --><taglib-uri>/s</taglib-uri><!-- 指定Struts 2标签库定义文件的位置 --><taglib-location>/WEB-INF/struts-tags.tld</taglib-location></taglib>在上面配置片段中,指定了Struts 2标签库配置文件物理位置:/WEB-INF/struts- tags.tld,因此我们必须手动复制Struts 2的标签库定义文件,将该文件放置在Web应用的WEB-INF路径下。
如果Web应用使用Servlet 2.4以上的规范,则无需在web.xml文件中配置标签库定义,因为Servlet 2.4规范会自动加载标签库定义文件。
提示Struts 2的标签库定义文件包含在struts2-core-2.0.6.jar文件里,在struts2-core-2.0.6.jar文件的META-INF路径下,包含了一个struts-tag.tld文件,这个文件就是Struts 2的标签库定义文件,Servlet 2.4规范会自动加载该标签库文件。
对于Servlet 2.4以上的规范,Web应用自动加载该标签库定义文件。
加载struts-tag.tld 标签库定义文件时,该文件的开始部分包含如下代码片段:Java代码<taglib><!-- 定义标签库的版本 --><tlib-version>2.2.3</tlib-version><!-- 定义标签库所需的JSP版 --><jsp-version>1.2</jsp-version><short-name>s</short-name><!-- 定义Struts 2标签库的URI --><uri>/struts-tags</uri>...</taglib><taglib><!-- 定义标签库的版本 --><tlib-version>2.2.3</tlib-version><!-- 定义标签库所需的JSP版 --><jsp-version>1.2</jsp-version><short-name>s</short-name><!-- 定义Struts 2标签库的URI --><uri>/struts-tags</uri>...</taglib>因为该文件中已经定义了该标签库的URI:struts-tags,这就避免了在web.xml文件中重新定义Struts 2标签库文件的URI。