有关网站开发的文献,佛山市seo推广,godaddy 域名交易,目前个人网站做地最好是哪几家什么是web.xml
web.xml是web项目的配置文件#xff0c;一般的web工程都会用到web.xml来配置#xff0c;方便大型开发。web.xml主要用来配置Filter#xff0c;Listener#xff0c;Servlet等。但是web.xml并不是必须的#xff0c;一个web工程可以没有web.xml文件。
web工程…什么是web.xml
web.xml是web项目的配置文件一般的web工程都会用到web.xml来配置方便大型开发。web.xml主要用来配置FilterListenerServlet等。但是web.xml并不是必须的一个web工程可以没有web.xml文件。
web工程加载web.xml过程
web容器的加载顺序ServletContext - context-param - listener - filter - servlet。并且这些元素可以配置在文件中的任意位置不会因为filter在web.xml文件中写在listener前面就先加载filter。 加载过程顺序如下
启动一个web项目web容器会读取它的配置文件web.xml读取listener和context-param两个结点。 创建一个ServletContext(Servlet上下文)这个web项目的所有部分都将共享这个上下文 容器将context-param转换为键值对并交给ServletContext 容器创建listener中的类实例创建监听器
web.xml配置详解
1、schema web.xml的模式文件是由Sun公司定义的每个web.xml文件的根元素web-app中都必须标明这个web.xml使用的是哪个模式文件。其他的元素都放在web-app/web-app中
?xml version1.0 encodingUTF-8?
web-app version2.4 xmlnshttp://java.sun.com/xml/ns/j2ee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
/web-app2、display-nameWeb应用名称
用于标记这个特定的Web应用的名称
display-nameTomcat Example/display-name3、discriptionWeb应用描述
disciptionTomcat Example servlets and JSP pages./disciption4、context-param上下文参数
声明应用范围内的初始化参数。用于向ServletContext提供键值对即应用程序上下文信息。后续的listenerfilter在初始化时会用到这些上下文信息。在servlet里面可以通过getServletContext().getInitParameter(“context/param”)得到 context-paramparam-namelog4jConfiguration/param-nameparam-value/WEB-INF/log4j2.xml/param-value/context-param
5、filter过滤器 filter可以认为是servlet的一种加强版主要用于对用户请求request进行预处理也可以对response进行后处理是个典型的处理链。使用filter的完整流程是filter对用户请求进行预处理接着将请求HttpServletRequest交给Servlet处理并生成响应。最后Filter再对服务器响应HttpServletResponse进行后处理。Servlet与Servlet具有完全相同的生命周期而Filter也可以通过进行初始化参数的配置并通过FilterConfig传送给filter Filter的配置就是将此项目与一个实现javax.servlet.Filter接口的类相关联
filterfilter-namesetCharacterEncoding/filter-namefilter-classcom.myTest.setCharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param
/filter
filter-mappingfilter-namesetCharacterEncoding/filter-nameurl-pattern/*/url-pattern
/filter-mapping6、监听器
listener listerner-classcom.listener.SessionListener/listener-class
/listener7、servlet
servlet老生常谈啦是运行在服务器端的程序。传送门
!-- 基本配置 --
servletservlet-namesnoop/servlet-nameservlet-classSnoopServlet/servlet-class
/servlet
servlet-mappingservlet-namesnoop/servlet-nameurl-pattern/snoop/url-pattern
/servlet-mapping!-- 高级配置 --
servletservlet-namesnoop/servlet-nameservlet-classSnoopServlet/servlet-classinit-paramparam-namefoo/param-nameparam-valuebar/param-value/init-paramrun-asdescriptionSecurity role for anonymous access/descriptionrole-nametomcat/role-name/run-as
/servlet
servlet-mappingservlet-namesnoop/servlet-nameurl-pattern/snoop/url-pattern
/servlet-mapping
!--
servlet-name/servlet-name 指定servlet的名称
servlet-class/servlet-class 指定servlet的类名称
jsp-file/jsp-file 指定web站台中的某个JSP网页的完整路径
init-param/init-param 用来定义参数可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
load-on-startup/load-on-startup指定当Web应用启动时装载Servlet的次序。当值为正数或零时Servlet容器先加载数值小的servlet再依次加载其他数值大的servlet。当值为负或未定义Servlet容器将在Web客户首次访问这个servlet时加载它。
servlet-mapping/servlet-mapping 用来定义servlet所对应的URL包含两个子元素
servlet-name/servlet-name 指定servlet的名称
url-pattern/url-pattern 指定servlet所对应的URL
--8、session-config会话超时配置
单位为秒
session-configsession-timeout120/session-timeout
/session-config9、welcome-file-list欢迎文件页
welcome-file-listwelcome-fileindex.jsp/welcome-filewelcome-fileindex.html/welcome-filewelcome-fileindex.htm/welcome-file
/welcome-file-list关于欢迎页面
访问一个网站时默认看到的第一个页面就叫欢迎页一般情况下是由首页来充当欢迎页的。一般情况下我们会在web.xml中指定欢迎页。但web.xml并不是一个Web的必要文件没有web.xml网站仍然是可以正常工作的。只不过网站的功能复杂起来后web.xml的确有非常大用处所以默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。
当你只指定一个web的根名没有指定具体页面去访问时一个web时 如果web.xml文件中配置了欢迎页那么就返回指定的那个页面作为欢迎页而在文中没有web.xml文件或虽然有web.xml但web.xml也没指定欢迎页的情况下那么不同的应用服务器可能会有不同的行为对于tomcat来说它默认先查找index.html文件如果找到了就把index.html作为欢迎页还回给浏览器。如果没找到index.htmltomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和index.jsp都没找到又没有用web.xml文件指定欢迎页面那此时tomcat就不知道该返回哪个文件了它就显示The requested resource (/XXX) is not available的页面。其中XXX表示web的根名。但如果你指定了具体页面是可以正常访问的。(如果web根名下存在index.html和index.jsp而某些应用服务器在web.xml中没指定欢迎页的情况下默认先查找index.jsp的话其行为跟tomcat就不一样了因此可能造成没配置web.xml欢迎页的项目部署到不同的应用服务器看到不一样的首页的现象)。
10、jsp-config设置jsp
jsp-config 包括 taglib 和 jsp-property-group 两个子元素。 jsp-property-group 元素主要有八个子元素它们分别为
description设定的说明
display-name设定名称
url-pattern设定值所影响的范围如 /CH2 或 /*.jsp
el-ignored若为 true表示不支持 EL 语法
scripting-invalid若为 true表示不支持 % scripting %语法
page-encoding设定 JSP 网页的编码
include-prelude设置 JSP 网页的抬头扩展名为 .jspf
include-coda设置 JSP 网页的结尾扩展名为 .jspfjsp-configtaglibtaglib-uriTaglib/taglib-uritaglib-location/WEB-INF/tlds/MyTaglib.tld/taglib-location/taglibjsp-property-groupdescriptionSpecial property group for JSP Configuration JSP example./descriptiondisplay-nameJSPConfiguration/display-nameurl-pattern/jsp/* /url-patternel-ignoredtrue/el-ignoredpage-encodingGB2312/page-encodingscripting-invalidtrue/scripting-invalidinclude-prelude/include/prelude.jspf/include-preludeinclude-coda/include/coda.jspf/include-coda/jsp-property-group
/jsp-config对于Web 应用程式来说Scriptlet 是个不乐意被见到的东西因为它会使得HTML 与Java 程式码交相混杂对于程式的维护来说相当的麻烦必要的时候可以在web.xml 中加上 标签设定所有的JSP 网页都不可以使用Scriptlet。
11、指定错误处理页面可以通过“异常类型”或“错误码”来指定错误处理页面。
error-pageerror-code404/error-codelocation/error404.jsp/location
/error-pageerror-pageexception-typejava.lang.Exceptionexception-typelocation/exception.jsplocation
/error-page12、Web应用图标指出IDE和GUI工具用来表示Web应用的大图标和小图标
icon
small-icon/images/app_small.gif/small-icon
large-icon/images/app_large.gif/large-icon
/icon13、MIME类型配置 mime-mapping extensionhtm/extension mime-typetext/html/mime-type /mime-mapping 14、TLD配置
taglib taglib-urihttp://jakarta.apache.org/tomcat/debug-taglib/taglib-uri taglib-location/WEB-INF/jsp/debug-taglib.tld/taglib-location /taglib 如果MyEclipse一直在报错,应该把taglib 放到 jsp-config中 jsp-config taglib taglib-urihttp://jakarta.apache.org/tomcat/debug-taglib/taglib-uri taglib-location/WEB-INF/pager-taglib.tld/taglib-location /taglib /jsp-config
15、资源管理对象配置 resource-env-ref resource-env-ref-namejms/StockQueue/resource-env-ref-name /resource-env-ref 16、资源工厂配置 resource-ref res-ref-namemail/Session/res-ref-name res-typejavax.mail.Session/res-type res-authContainer/res-auth /resource-ref
配置数据库连接池就可在此配置 resource-ref descriptionJNDI JDBC DataSource of shop/description res-ref-namejdbc/sample_db/res-ref-name res-typejavax.sql.DataSource/res-type res-authContainer/res-auth /resource-ref
17、安全限制配置 security-constraint display-nameExample Security Constraint/display-name web-resource-collection web-resource-nameProtected Area/web-resource-name url-pattern/jsp/security/protected/*/url-pattern http-methodDELETE/http-method http-methodGET/http-method http-methodPOST/http-method http-methodPUT/http-method /web-resource-collection auth-constraint role-nametomcat/role-name role-namerole1/role-name /auth-constraint /security-constraint 18、登陆验证配置 login-config auth-methodFORM/auth-method realm-nameExample-Based Authentiation Area/realm-name form-login-config form-login-page/jsp/security/protected/login.jsp/form-login-page form-error-page/jsp/security/protected/error.jsp/form-error-page /form-login-config /login-config
19、安全角色security-role元素给出安全角色的一个列表这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。 分别地声明角色可使高级IDE处理安全信息更为容易。
security-role role-nametomcat/role-name
/security-role
20、配置DWR
servlet servlet-namedwr-invoker/servlet-name servlet-classuk.ltd.getahead.dwr.DWRServlet/servlet-class
/servlet
servlet-mapping servlet-namedwr-invoker/servlet-name url-pattern/dwr/*/url-pattern
/servlet-mapping