web.xml配置详解

双硬盘下Ubuntu 16.04与Win10双系统的安装 之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.csdn.net/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?... 阅读详情

web.xml配置详解


http://www.cnblogs.com/mguo/archive/2013/01/16/2862366.html


 转载http://twb.iteye.com/blog/196733

1、定义头和根元素  
部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文

件的字符编码。
DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并

指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因

此,web-App和WEB-APP都是不合法的,web-app必须用小写。
XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML头必须是文件中

的第一项,DOCTYPE声明必须是第二项,而web- app元素必须是第三项。在web-app元素内,元素的次序也

很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全 拒绝执

行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  

 2、元素详解

    下面的列表给出了所有可直接出现在web-app元素内的合法元素所必需的次序。例如,此列表说明servlet元素必须出现在所有servlet-mapping元素之前。请注意,所有这些元素都是可选的。因此,可以省略掉某一元素,但不能把它放于不正确的位置。

  1. icon icon元素指出IDE和GUI工具用来表示Web应用的一个和两个图像文件的位置。  
  2. display-name display-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称。  
  3. description description元素给出与此有关的说明性文本。  
  4. context-param context-param元素声明应用范围内的初始化参数。  
  5. filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。  
  6. filter-mapping 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。  
  7. listener servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。  
  8. servlet 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。  
  9. servlet-mapping 服务器一般为servlet提供一个缺省的URL:<a href="http://host/webAppPrefix/servlet/ServletName">http://host/webAppPrefix/servlet/ServletName</a>。但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。  
  10. session-config 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。可通过使用HttpSession的setMaxInactiveInterval方法 明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。  
  11. mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。  
  12. welcom-file-list welcome-file-list元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。  
  13. error-page error-page元素使得在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。  
  14. taglib taglib元素对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。  
  15. resource-env-ref resource-env-ref元素声明与资源相关的一个管理对象。  
  16. resource-ref resource-ref元素声明一个资源工厂使用的外部资源。  
  17. security-constraint security-constraint元素制定应该保护的URL。它与login-config元素联合使用  
  18. login-config 用login-config元素来指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。  
  19. security-role security-role元素给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。  
  20. env-entry env-entry元素声明Web应用的环境项。  
  21. ejb-ref ejb-ref元素声明一个EJB的主目录的引用。  
  22. l ejb-local-ref ejb-local-ref元素声明一个EJB的本地主目录的应用。  

 3、sevlet配置

  1. <servlet>  
  2. <servlet-name>Test</servlet-name>  
  3. <servlet-class>moreservlets.TestServlet</servlet-class>  
  4. </servlet>   

   这 表示位于WEB-INF/classes/moreservlets/TestServlet的servlet已经得到了注册名Test。给 servlet一个名称具有两个主要的含义。首先,初始化参数、定制的URL模式以及其他定制通过此注册名而不是类名引用此servlet。其次,可在 URL而不是类名中使用此名称。因此,利用刚才给出的定义,URL http://host/webAppPrefix/servlet/Test 可用于 http://host/webAppPrefix/servlet/moreservlets.TestServlet 的场所。

  1. <servlet-mapping>  
  2. <servlet-name>Test</servlet-name>  
  3. <url-pattern>/UrlTest</url-pattern>  
  4. </servlet-mapping>  

 注意:元素出现地次序不是随意的。特别是,需要把所有servlet元素放在所有 servlet-mapping元素之前。

5 初始化和预装载servlet与JSP页面
这里讨论控制servlet和JSP页面的启动行为的方法。特别是,说明了怎样分配初始化参数以及怎样更改服务器生存期中装载servlet和JSP页面的时刻。
     利 用init-param元素向servlet提供初始化参数,init-param元素具有param-name和param-value子元素。例如, 在下面的例子中,如果initServlet servlet是利用它的注册名(InitTest)访问的,它将能够从其方法中调用getServletConfig(). getInitParameter("param1")获得"Value 1",调用getServletConfig().getInitParameter("param2")获得"2"。

  1. <servlet>  
  2. <servlet-name>InitTest</servlet-name>  
  3. <servlet-class>moreservlets.InitServlet</servlet-class>  
  4. <init-param>  
  5. <param-name>param1</param-name>  
  6. <param-value>value1</param-value>  
  7. </init-param>  
  8. <init-param>  
  9. <param-name>param2</param-name>  
  10. <param-value>2</param-value>  
  11. </init-param>  
  12. </servlet>  

 在涉及初始化参数时,有几点需要注意:
   l  返回值。GetInitParameter的返回值总是一个String
   l JSP中的初始化。JSP页面使用jspInit而不是init。JSP页面还需要使用jsp-file元素代替servlet-class。

   l 缺省URL。初始化参数只在通过它们的注册名或与它们注册名相关的定制URL模式访问Servlet时可以使用。

  1. 程序清单5-7 InitServlet.java  
  2. package moreservlets;  
  3.   
  4. import java.io.*;  
  5. import javax.servlet.*;  
  6. import javax.servlet.http.*;  
  7.   
  8. /** Simple servlet used to illustrate servlet 
  9. * initialization parameters. 
  10. * <P> 
  11. * Taken from More Servlets and JavaServer Pages 
  12. * from Prentice Hall and Sun Microsystems Press, 
  13. * http://www.moreservlets.com/. 
  14. * © 2002 Marty Hall; may be freely used or adapted. 
  15. */  
  16.   
  17. public class InitServlet extends HttpServlet {  
  18. private String firstName, emailAddress;  
  19.   
  20. public void init() {  
  21. ServletConfig config = getServletConfig();  
  22. firstName = config.getInitParameter("firstName");  
  23. emailAddress = config.getInitParameter("emailAddress");  
  24. }  
  25.   
  26. public void doGet(HttpServletRequest request,  
  27. HttpServletResponse response)  
  28. throws ServletException, IOException {  
  29. response.setContentType("text/html");  
  30. PrintWriter out = response.getWriter();  
  31. String uri = request.getRequestURI();  
  32. out.println(ServletUtilities.headWithTitle("Init Servlet") +  
  33. "<BODY BGCOLOR=\"#FDF5E6\">\n" +  
  34. "<H2>Init Parameters:</H2>\n" +  
  35. "<UL>\n" +  
  36. "<LI>First name: " + firstName + "\n" +  
  37. "<LI>Email address: " + emailAddress + "\n" +  
  38. "</UL>\n" +   
  39. "</BODY></HTML>");  
  40. }  
  41. }  

 5.2 分配JSP初始化参数
给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数。
1)使用jsp-file而不是servlet-class。因此,WEB-INF/web.xml文件的servlet元素如下所示:

  1. <servlet>  
  2. <servlet-name>PageName</servlet-name>  
  3. <jsp-file>/RealPage.jsp</jsp-file>  
  4. <init-param>  
  5. <param-name>...</param-name>  
  6. <param-value>...</param-value>  
  7. </init-param>  
  8. ...  
  9. </servlet>  

 2) 几乎总是分配一个明确的URL模式。对servlet,一般相应地使用以http://host/webAppPrefix/servlet/ 开始的缺省URL。只需记住,使用注册名而不是原名称即可。这对于JSP页面在技术上也是合法的。例如,在上面给出的例子中,可用URL http://host/webAppPrefix/servlet/PageName 访问RealPage.jsp的对初始化参数具有访问权的版本。但在用于JSP页面时,许多用户似乎不喜欢应用常规的servlet的URL。此外,如果 JSP页面位于服务器为其提供了目录清单的目录中(如,一个既没有index.html也没有index.jsp文件的目录),则用户可能会连接到此 JSP页面,单击它,从而意外地激活未初始化的页面。因此,好的办法是使用url-pattern(5.3节)将JSP页面的原URL与注册的 servlet名相关联。这样,客户机可使用JSP页面的普通名称,但仍然激活定制的版本。例如,给定来自项目1的servlet定义,可使用下面的 servlet-mapping定义:

  1. <servlet-mapping>  
  2. <servlet-name>PageName</servlet-name>  
  3. <url-pattern>/RealPage.jsp</url-pattern>  
  4. </servlet-mapping>  

3)JSP页使用jspInit而不是init。自动从JSP页面建立的servlet或许已经使用了inti方法。因此,使用JSP声明提供一个init方法是不合法的,必须制定jspInit方法。
为了说明初始化JSP页面的过程,程序清单5-9给出了一个名为InitPage.jsp的JSP页面,它包含一个jspInit方法且放置于 deployDemo Web应用层次结构的顶层。一般,http://host/deployDemo/InitPage.jsp 形式的URL将激活此页面的不具有初始化参数访问权的版本,从而将对firstName和emailAddress变量显示null。但是, web.xml文件(程序清单5-10)分配了一个注册名,然后将该注册名与URL模式/InitPage.jsp相关联。

  1. 程序清单5-9 InitPage.jsp  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  3. <HTML>  
  4. <HEAD><TITLE>JSP Init Test</TITLE></HEAD>  
  5. <BODY BGCOLOR="#FDF5E6">  
  6. <H2>Init Parameters:</H2>  
  7. <UL>  
  8. <LI>First name: <%= firstName %>  
  9. <LI>Email address: <%= emailAddress %>  
  10. </UL>  
  11. </BODY></HTML>  
  12. <%!  
  13. private String firstName, emailAddress;  
  14.   
  15. public void jspInit() {  
  16. ServletConfig config = getServletConfig();  
  17. firstName = config.getInitParameter("firstName");  
  18. emailAddress = config.getInitParameter("emailAddress");  
  19. }  
  20. %>  
  1. 程序清单5-10 web.xml(说明JSP页面的init参数的摘录)  
  2. <?xml version="1.0" encoding="ISO-8859-1"?>  
  3. <!DOCTYPE web-app  
  4. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  5. "http://java.sun.com/dtd/web-app_2_3.dtd">  
  6.   
  7. <web-app>  
  8. <!-- ... -->  
  9. <servlet>  
  10. <servlet-name>InitPage</servlet-name>  
  11. <jsp-file>/InitPage.jsp</jsp-file>  
  12. <init-param>  
  13. <param-name>firstName</param-name>  
  14. <param-value>Bill</param-value>  
  15. </init-param>  
  16. <init-param>  
  17. <param-name>emailAddress</param-name>  
  18. <param-value>gates@oracle.com</param-value>  
  19. </init-param>  
  20. </servlet>  
  21. <!-- ... -->   
  22. <servlet-mapping>  
  23. <servlet-name> InitPage</servlet-name>  
  24. <url-pattern>/InitPage.jsp</url-pattern>  
  25. </servlet-mapping>  
  26. <!-- ... -->  
  27. </web-app>  

 5.3 提供应用范围内的初始化参数
一 般,对单个地servlet或JSP页面分配初始化参数。指定的servlet或JSP页面利用ServletConfig的 getInitParameter方法读取这些参数。但是,在某些情形下,希望提供可由任意servlet或JSP页面借助ServletContext 的getInitParameter方法读取的系统范围内的初始化参数。
可利用context-param元素声明这些系统范围内的初始化值。context-param元素应该包含param-name、param-value以及可选的description子元素,如下所示:

  1. <context-param>  
  2. <param-name>support-email</param-name>  
  3. <param-value>blackhole@mycompany.com</param-value>  
  4. </context-param>  

 web.xml内的元素必须以正确的次序声明。但这里应该注意,context-param元素必须出现任意与文档有关的元 素(icon、display-name或description)之后及filter、filter-mapping、listener或 servlet元素之前。
5.4 在服务器启动时装载servlet
假如servlet或JSP页面有一个要花很长时间执行的init (servlet)或jspInit(JSP)方法。例如,假如init或jspInit方法从某个数据库或ResourceBundle查找产量。这种 情况下,在第一个客户机请求时装载servlet的缺省行为将对第一个客户机产生较长时间的延迟。因此,可利用servlet的load-on- startup元素规定服务器在第一次启动时装载servlet。下面是一个例子。

  1. <servlet>  
  2. <servlet-name> … </servlet-name>  
  3. <servlet-class> … </servlet-class> <!-- Or jsp-file -->  
  4. <load-on-startup/>  
  5. </servlet>  

 可 以为此元素体提供一个整数而不是使用一个空的load-on-startup。想法是服务器应该在装载较大数目的servlet或JSP页面之前装载较少 数目的servlet或JSP页面。例如,下面的servlet项(放置在Web应用的WEB-INF目录下的web.xml文件中的web-app元素 内)将指示服务器首先装载和初始化SearchServlet,然后装载和初始化由位于Web应用的result目录中的index.jsp文件产生的 servlet。

  1. <servlet>  
  2. <servlet-name>Search</servlet-name>  
  3. <servlet-class>myPackage.SearchServlet</servlet-class> <!-- Or jsp-file -->  
  4. <load-on-startup>1</load-on-startup>  
  5. </servlet>  
  6. <servlet>  
  7. <servlet-name>Results</servlet-name>  
  8. <servlet-class>/results/index.jsp</servlet-class> <!-- Or jsp-file -->  
  9. <load-on-startup>2</load-on-startup>  
  10. </servlet>  

 6 声明过滤器

servlet版本2.3引入了过滤器的概念。虽然所有支持servlet API版本2.3的服务器都支持过滤器,但为了使用与过滤器有关的元素,必须在web.xml中使用版本2.3的DTD。
过 滤器可截取和修改进入一个servlet或JSP页面的请求或从一个servlet或JSP页面发出的相应。在执行一个servlet或JSP页面之前, 必须执行第一个相关的过滤器的doFilter方法。在该过滤器对其FilterChain对象调用doFilter时,执行链中的下一个过滤器。如果没 有其他过滤器,servlet或JSP页面被执行。过滤器具有对到来的ServletRequest对象的全部访问权,因此,它们可以查看客户机名、查找 到来的cookie等。为了访问servlet或JSP页面的输出,过滤器可将响应对象包裹在一个替身对象(stand-in object)中,比方说把输出累加到一个缓冲区。在调用FilterChain对象的doFilter方法之后,过滤器可检查缓冲区,如有必要,就对它 进行修改,然后传送到客户机。
例如,程序清单5-11帝国难以了一个简单的过滤器,只要访问相关的servlet或JSP页面,它就截取请求并在标准输出上打印一个报告(开发过程中在桌面系统上运行时,大多数服务器都可以使用这个过滤器)。

  1. 程序清单5-11 ReportFilter.java  
  2. package moreservlets;  
  3.   
  4. import java.io.*;  
  5. import javax.servlet.*;  
  6. import javax.servlet.http.*;  
  7. import java.util.*;  
  8.   
  9. /** Simple filter that prints a report on the standard output  
  10. * whenever the associated servlet or JSP page is accessed. 
  11. * <P> 
  12. * Taken from More Servlets and JavaServer Pages 
  13. * from Prentice Hall and Sun Microsystems Press, 
  14. * http://www.moreservlets.com/. 
  15. * © 2002 Marty Hall; may be freely used or adapted. 
  16. */  
  17.   
  18. public class ReportFilter implements Filter {  
  19. public void doFilter(ServletRequest request,  
  20. ServletResponse response,  
  21. FilterChain chain)  
  22. throws ServletException, IOException {  
  23. HttpServletRequest req = (HttpServletRequest)request;  
  24. System.out.println(req.getRemoteHost() +  
  25. " tried to access " +  
  26. req.getRequestURL() +  
  27. " on " + new Date() + ".");  
  28. chain.doFilter(request,response);  
  29. }  
  30.   
  31. public void init(FilterConfig config)  
  32. throws ServletException {  
  33. }  
  34.   
  35. public void destroy() {}  
  36. }  

 一 旦建立了一个过滤器,可以在web.xml中利用filter元素以及filter-name(任意名称)、file-class(完全限定的类名)和 (可选的)init-params子元素声明它。请注意,元素在web.xml的web-app元素中出现的次序不是任意的;允许服务器(但不是必需的) 强制所需的次序,并且实际中有些服务器也是这样做的。但这里要注意,所有filter元素必须出现在任意filter-mapping元素之前, filter-mapping元素又必须出现在所有servlet或servlet-mapping元素之前。
例如,给定上述的ReportFilter类,可在web.xml中作出下面的filter声明。它把名称Reporter与实际的类ReportFilter(位于moreservlets程序包中)相关联。
<filter>
<filter-name>Reporter</filter-name>
<filter-class>moresevlets.ReportFilter</filter-class>
</filter>
一旦命名了一个过滤器,可利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。关于此项工作有两种选择。
首 先,可使用filter-name和servlet-name子元素把此过滤器与一个特定的servlet名(此servlet名必须稍后在相同的 web.xml文件中使用servlet元素声明)关联。例如,下面的程序片断指示系统只要利用一个定制的URL访问名为SomeServletName 的servlet或JSP页面,就运行名为Reporter的过滤器。

  1. <filter-mapping>  
  2. <filter-name>Reporter</filter-name>  
  3. <servlet-name>SomeServletName</servlet-name>  
  4. </filter-mapping>  

 其次,可利用filter-name和url-pattern子元素将过滤器与一组servlet、JSP页面或静态内容相关联。例如,相面的程序片段指示系统只要访问Web应用中的任意URL,就运行名为Reporter的过滤器。

  1. <filter-mapping>  
  2. <filter-name>Reporter</filter-name>  
  3. <url-pattern>/*</url-pattern>  
  4. </filter-mapping>  

 例 如,程序清单5-12给出了将ReportFilter过滤器与名为PageName的servlet相关联的web.xml文件的一部分。名字 PageName依次又与一个名为TestPage.jsp的JSP页面以及以模式http: //host/webAppPrefix/UrlTest2/ 开头的URL相关联。TestPage.jsp的源代码已经JSP页面命名的谈论在前面的3节"分配名称和定制的URL"中给出。事实上,程序清单5- 12中的servlet和servlet-name项从该节原封不动地拿过来的。给定这些web.xml项,可看到下面的标准输出形式的调试报告(换行是 为了容易阅读)。
audit.irs.gov tried to access 
http://mycompany.com/deployDemo/UrlTest2/business/tax-plan.html
on Tue Dec 25 13:12:29 EDT 2001.
程序清单5-12 Web.xml(说明filter用法的摘录)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<filter>
<filter-name>Reporter</filter-name>
<filter-class>moresevlets.ReportFilter</filter-class>
</filter>
<!-- ... -->
<filter-mapping>
<filter-name>Reporter</filter-name>
<servlet-name>PageName</servlet-name>
</filter-mapping>
<!-- ... -->
<servlet>
<servlet-name>PageName</servlet-name>
<jsp-file>/RealPage.jsp</jsp-file>
</servlet>
<!-- ... -->
<servlet-mapping>
<servlet-name> PageName </servlet-name>
<url-pattern>/UrlTest2/*</url-pattern>
</servlet-mapping>
<!-- ... -->
</web-app>


7 指定欢迎页

假 如用户提供了一个像http: //host/webAppPrefix/directoryName/ 这样的包含一个目录名但没有包含文件名的URL,会发生什么事情呢?用户能得到一个目录表?一个错误?还是标准文件的内容?如果得到标准文件内容,是 index.html、index.jsp、default.html、default.htm或别的什么东西呢?
Welcome-file-list 元素及其辅助的welcome-file元素解决了这个模糊的问题。例如,下面的web.xml项指出,如果一个URL给出一个目录名但未给出文件名,服 务器应该首先试用index.jsp,然后再试用index.html。如果两者都没有找到,则结果有赖于所用的服务器(如一个目录列表)。
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
虽然许多服务器缺省遵循这种行为,但不一定必须这样。因此,明确地使用welcom-file-list保证可移植性是一种良好的习惯。

8 指定处理错误的页面

现 在我了解到,你在开发servlet和JSP页面时从不会犯错误,而且你的所有页面是那样的清晰,一般的程序员都不会被它们的搞糊涂。但是,是人总会犯错 误的,用户可能会提供不合规定的参数,使用不正确的URL或者不能提供必需的表单字段值。除此之外,其它开发人员可能不那么细心,他们应该有些工具来克服 自己的不足。
error-page元素就是用来克服这些问题的。它有两个可能的子元素,分别是:error-code和exception- type。第一个子元素error-code指出在给定的HTTP错误代码出现时使用的URL。第二个子元素excpetion-type指出在出现某个 给定的Java异常但未捕捉到时使用的URL。error-code和exception-type都利用location元素指出相应的URL。此 URL必须以/开始。location所指出的位置处的页面可通过查找HttpServletRequest对象的两个专门的属性来访问关于错误的信息, 这两个属性分别是:javax.servlet.error.status_code和javax.servlet.error.message。
可回忆一下,在web.xml内以正确的次序声明web-app的子元素很重要。这里只要记住,error-page出现在web.xml文件的末尾附近,servlet、servlet-name和welcome-file-list之后即可。

8.1 error-code元素
为了更好地了解error-code元素的值,可考虑一下如果不正确地输入文件名,大多数站点会作出什么反映。这样做一般会出现一个404错误信息,它表示不能找到该文件,但几乎没提供更多有用的信息。另一方面,可以试一下在www.microsoft.com、www.ibm.com 处或者特别是在www.bea.com 处输出未知的文件名。这是会得出有用的消息,这些消息提供可选择的位置,以便查找感兴趣的页面。提供这样有用的错误页面对于Web应用来说是很有价值得。 事实上rm-error-page子元素)。由form-login-page给出的HTML表单必须具有一个j_security_check的 ACTION属性、一个名为j_username的用户名文本字段以及一个名为j_password的口令字段。
例如,程序清单5-19指示服务器使用基于表单的验证。Web应用的顶层目录中的一个名为login.jsp的页面将收集用户名和口令,并且失败的登陆将由相同目录中名为login-error.jsp的页面报告。

程序清单5-19 web.xml(说明login-config的摘录)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<!-- ... -->
<security-constraint> ... </security-constraint>
<login-config>
<auth-method> FORM </auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login-error.jsp</form-error-page>
</form-login-config>
</login-config>
<!-- ... -->
</web-app>


9.2 限制对Web资源的访问
现 在,可以指示服务器使用何种验证方法了。"了不起,"你说道,"除非我能指定一个来收到保护的 URL,否则没有多大用处。"没错。指出这些URL并说明他们应该得到何种保护正是security-constriaint元素的用途。此元素在 web.xml中应该出现在login-config的紧前面。它包含是个可能的子元素,分别是:web-resource-collection、 auth-constraint、user-data-constraint和display-name。下面各小节对它们进行介绍。
l web-resource-collection
此 元素确定应该保护的资源。所有security-constraint元素都必须包含至少一个web-resource-collection项。此元素 由一个给出任意标识名称的web-resource-name元素、一个确定应该保护的URL的url-pattern元素、一个指出此保护所适用的 HTTP命令(GET、POST等,缺省为所有方法)的http-method元素和一个提供资料的可选description元素组成。例如,下面的 Web-resource-collection项(在security-constratint元素内)指出Web应用的proprietary目录中 所有文档应该受到保护。
<security-constraint>
<web-resource-coolection>
<web-resource-name>Proprietary</web-resource-name>
<url-pattern>/propritary/*</url-pattern>
</web-resource-coolection>
<!-- ... -->
</security-constraint>
重 要的是应该注意到,url-pattern仅适用于直接访问这些资源的客户机。特别是,它不适合于通过MVC体系结构利用 RequestDispatcher来访问的页面,或者不适合于利用类似jsp:forward的手段来访问的页面。这种不匀称如果利用得当的话很有好 处。例如,servlet可利用MVC体系结构查找数据,把它放到bean中,发送请求到从bean中提取数据的JSP页面并显示它。我们希望保证决不直 接访问受保护的JSP页面,而只是通过建立该页面将使用的bean的servlet来访问它。url-pattern和auth-contraint元素 可通过声明不允许任何用户直接访问JSP页面来提供这种保证。但是,这种不匀称的行为可能让开发人员放松警惕,使他们偶然对应受保护的资源提供不受限制的 访问。 
l auth-constraint
尽管web-resource-collention元素质出了哪些URL应该受到保护, 但是auth-constraint元素却指出哪些用户应该具有受保护资源的访问权。此元素应该包含一个或多个标识具有访问权限的用户类别role- name元素,以及包含(可选)一个描述角色的description元素。例如,下面web.xml中的security-constraint元素部 门规定只有指定为Administrator或Big Kahuna(或两者)的用户具有指定资源的访问权。
<security-constraint>
<web-resource-coolection> ... </web-resource-coolection>
<auth-constraint>
<role-name>administrator</role-name>
<role-name>kahuna</role-name>
</auth-constraint>
</security-constraint>
重要的是认识到,到此为止,这个过程的可移植部分结束了。服务器怎样确定哪些用户处于任何角色以及它怎样存放用户的口令,完全有赖于具体的系统。
例如,Tomcat使用install_dir/conf/tomcat-users.xml将用户名与角色名和口令相关联,正如下面例子中所示,它指出用户joe(口令bigshot)和jane(口令enaj)属于administrator和kahuna角色。
<tomcat-users>
<user name="joe" password="bigshot" roles="administrator,kahuna" />
<user name="jane" password="enaj" roles="kahuna" />
</tomcat-users>
l user-data-constraint
这 个可选的元素指出在访问相关资源时使用任何传输层保护。它必须包含一个transport-guarantee子元素(合法值为NONE、 INTEGRAL或CONFIDENTIAL),并且可选地包含一个description元素。transport-guarantee为NONE值将 对所用的通讯协议不加限制。INTEGRAL值表示数据必须以一种防止截取它的人阅读它的方式传送。虽然原理上(并且在未来的HTTP版本中),在 INTEGRAL和CONFIDENTIAL之间可能会有差别,但在当前实践中,他们都只是简单地要求用SSL。例如,下面指示服务器只允许对相关资源做 HTTPS连接:
<security-constraint>
<!-- ... -->
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
l display-name
security-constraint的这个很少使用的子元素给予可能由GUI工具使用的安全约束项一个名称。
9.3 分配角色名
迄今为止,讨论已经集中到完全由容器(服务器)处理的安全问题之上了。但servlet以及JSP页面也能够处理它们自己的安全问题。
例 如,容器可能允许用户从bigwig或bigcheese角色访问一个显示主管人员额外紧贴的页面,但只允许bigwig用户修改此页面的参数。完成这种 更细致的控制的一种常见方法是调用HttpServletRequset的isUserInRole方法,并据此修改访问。
Servlet的 security-role-ref子元素提供出现在服务器专用口令文件中的安全角色名的一个别名。例如,假如编写了一个调用 request.isUserInRole("boss")的servlet,但后来该servlet被用在了一个其口令文件调用角色manager而不 是boss的服务器中。下面的程序段使该servlet能够使用这两个名称中的任何一个。
<servlet>
<!-- ... -->
<security-role-ref>
<role-name>boss</role-name> <!-- New alias -->
<role-link>manager</role-link> <!-- Real name -->
</security-role-ref>
</servlet>
也可以在web-app内利用security-role元素提供将出现在role-name元素中的所有安全角色的一个全局列表。分别地生命角色使高级IDE容易处理安全信息。

10 控制会话超时

如 果某个会话在一定的时间内未被访问,服务器可把它扔掉以节约内存。可利用HttpSession的setMaxInactiveInterval方法直接 设置个别会话对象的超时值。如果不采用这种方法,则缺省的超时值由具体的服务器决定。但可利用session-config和session- timeout元素来给出一个适用于所有服务器的明确的超时值。超时值的单位为分钟,因此,下面的例子设置缺省会话超时值为三个小时(180分钟)。
<session-config>
<session-timeout>180</session-timeout>
</session-config>

11 Web应用的文档化

越 来越多的开发环境开始提供servlet和JSP的直接支持。例子有Borland Jbuilder Enterprise Edition、Macromedia UltraDev、Allaire JRun Studio(写此文时,已被Macromedia收购)以及IBM VisuaAge for Java等。
大量的web.xml元素不仅是为服务器设计的,而且还是为可视开发环境设计的。它们包括icon、display-name和discription等。
可回忆一下,在web.xml内以适当地次序声明web-app子元素很重要。不过,这里只要记住icon、display-name和description是web.xml的web-app元素内的前三个合法元素即可。
l icon
icon元素指出GUI工具可用来代表Web应用的一个和两个图像文件。可利用small-icon元素指定一幅16 x 16的GIF或JPEG图像,用large-icon元素指定一幅32 x 32的图像。下面举一个例子: 
<icon>
<small-icon>/images/small-book.gif</small-icon>
<large-icon>/images/tome.jpg</large-icon>
</icon>
l display-name
display-name元素提供GUI工具可能会用来标记此Web应用的一个名称。下面是个例子。
<display-name>Rare Books</display-name>
l description
description元素提供解释性文本,如下所示:
<description>
This Web application represents the store developed for
rare-books.com, an online bookstore specializing in rare
and limited-edition books.
</description>

12 配置下载文件

  1. <mime-mapping>   
  2. <extension>doc</extension>  
  3. <mime-type>application/msword</mime-type>   
  4. </mime-mapping>   
  5. <mime-mapping>   
  6. <extension>xls</extension>   
  7. <mime-type>application/msexcel</mime-type>   
  8. </mime-mapping>   
  9. <mime-mapping>   
  10. <extension>pdf</extension>   
  11. <mime-type>application/pdf</mime-type>   
  12. </mime-mapping>  
  13. <mime-mapping>   
  14. <extension>zip</extension>   
  15. <mime-type>application/zip</mime-type>   
  16. </mime-mapping>  
  17. <mime-mapping>   
  18. <extension>rar</extension>   
  19. <mime-type>application/rar</mime-type>   
  20. </mime-mapping>  
  21. <mime-mapping>   
  22. <extension>txt</extension>   
  23. <mime-type>application/txt</mime-type>   
  24. </mime-mapping>  
  25. <mime-mapping>   
  26. <extension>chm</extension>   
  27. <mime-type>application/mshelp</mime-type>  
  28. </mime-mapping>   
  29. <mime-mapping>  
  30.  <extension>mp3</extension>  
  31.  <mime-type>audio/x-mpeg</mime-type>  
  32. </mime-mapping>  
  33. 普通文本 .txt text/plain   
  34. RTF文本 .rtf application/rtf   
  35. GIF图形 .gif image/gif   
  36. JPEG图形 .ipeg,.jpg image/jpeg   
  37. au声音文件 .au audio/basic   
  38. MIDI音乐文件 mid,.midi audio/midi,audio/x-midi   
  39. RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio   
  40. MPEG文件 .mpg,.mpeg video/mpeg   
  41. AVI文件 .avi video/x-msvideo   
  42. GZIP文件 .gz application/x-gzip   
  43. TAR文件 .tar application/x-tar   



http://www.programgo.com/article/44662382750/

Filter,即过滤器。就是位于中间层起过滤作用,用于拦截请求或响应信息,为Java Web程序提供一个预处理的机会,增强Java Web应用程序的灵活性。

1、Filter简介

        Filter的中文译名为过滤器。主要使用来过滤的。借助于过滤器可以实现如下功能:
      (1) 过滤非法文字和信息
      (2) 设置统一字符编码
      (3) 对用户进行登录验证
      (4) 改变图片文件格式
      (5) 对相应的信息做压缩处理
      (6) 对XML的输出使用XSLT来进行转换
       Filter技术是Servlet2.3新添加的功能。过滤器不是Servlet,而是位于请求和响应中间的实现过滤功能的程序。如果要添加Filter,只需要在web.xml中配置相关设定即可。可以非常方便地为web项目添加新的Filter和修改现有的Filter,而不需要修改原有的Servlet、JSP及其他静态页面文件。


2、 Filter程序
       Filter同Servlet类似,也是一个Java类,所以其添加方式和普通的Java类完全一样。一个过滤器可以附加到一个或多个Servlet上,一个Servlet可以附加一个或多个过滤器。自定义的Filter类必须实现Filter接口,还必须实现Filter接口中的init()方法、doFilter()方法和destory()方法。
其中init()方法和destory()方法分别用来初始化和销毁时调用。doFilter()方法用来实现过滤,所有的处理代码都放置在该方法中。doFilter()方法接收3个参数,分别是request、response和chain。其中request和response用来传递给下一个Filter(如果有多个Filter)或者JSP和Servlet。Chain则通过调用doFilter方法来调用下一个Filter,获得调用原始的JSP或Servlet等其他内容。

  1. package com.software.demo.filter;  
  2. import java.io.IOException;  
  3. import javax.servlet.Filter;  
  4. import javax.servlet.FilterChain;  
  5. import javax.servlet.FilterConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.ServletRequest;  
  8. import javax.servlet.ServletResponse;  
  9. public class FirstFilter implements Filter {  
  10.     //销毁方法  
  11.     public void destroy() {  
  12.   
  13.     }  
  14.     //过滤方法  
  15.     public void doFilter(ServletRequest request, ServletResponse response,  
  16.             FilterChain chain) throws IOException, ServletException {  
  17.         System.out.println("执行过滤");  
  18.         chain.doFilter(request, response);  
  19.     }  
  20.     //初始化方法  
  21.     public void init(FilterConfig arg0) throws ServletException {  
  22.           
  23.     }  
  24. }  


Web.xml的配置,在原有的配置文件中添加Web.xml的配置,在原有的配置文件中添加Web.xml的配置,在原有的配置文件中添加

  1. <filter>  
  2.     <filter-name>FirstFilter</filter-name>  
  3.     <filter-class>com.software.demo.filter.FirstFilter</filter-class>  
  4. </filter>  
  5. <filter-mapping>  
  6.     <filter-name>FirstFilter</filter-name>  
  7.     <url-pattern>/*</url-pattern>  
  8. </filter-mapping>  

 

3、 Filter生命周期
         Filter同Servlet类似,也是有生命周期。Filter从生成到销毁必须经过以下几个步骤:
        (1) 生成Filter,并通过调用其init()方法来进行初始化
        (2) 过滤用户请求,调用其doFilter()方法
        (3) 调用destory()方法进行销毁,并通过垃圾收集器进行收集处理

 

4 、创建过滤器的一般步骤
        (1) 建立一个实现Filter接口的类并定义3个方法doFilter、init和destory
        (2) 在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象,此对象给过滤器提供了对进入的信息(包括表单数据、cookies和HTTP请求头)的完全访问;第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数;最后一个参数为FilterChain,如下一步所述,此参数用来调用Servlet或JSP页。
        (3) 调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与Servlet或JSP页面关联,则Servlet或JSP页面被激活。
        (4) 对相应的Servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。
        (5) 禁用激活器Servlet。防止用户利用默认Servlet URL绕过过滤器设置。

 

 5、Filter配置说明
        过滤器通过web.xml文件中的两个XML标签<filter>和<filter-mapping>来声明。

  •  <filter>标签负责把一个过滤器名和一个特定的类关联起来,这种关联通过<filter-name>和<filter-class>元素指定。使用<init-param>和成对的<param-name>和<param-value>为过滤器指定初始化参数。
  •  <filter-mapping>必须有一个<url-pattern>或者<servlet-name>元素。可通过<url-pattern>来指定调配符,将过滤器应用到Web资源范围,也可以通过<servlet-name>将过滤器指定到某一个特定的Servlet上。
  1. <filter>  
  2.   <filter-name>someFilter</filter-name>  
  3.   <filter-class>SomeFilter</filter-class>  
  4.   <init-param>  
  5. <param-name>paramName</param-name>  
  6. <param-value>paramValue</param-value>  
  7.   </init-param>  
  8. </filter>  
  9. <filter-mapping>  
  10.   <filter-name> someFilter </filter-name>  
  11.   <url-pattern>/*</url-pattern>  
  12. </filter-mapping>  


 


3 Filter生命周期
Filter同Servlet类似,也是有生命周期。Filter从生成到销毁必须经过以下几个步骤:
(1) 生成Filter,并通过调用其init()方法来进行初始化
(2) 过滤用户请求,调用其doFilter()方法
(3) 调用destory()方法进行销毁,并通过垃圾收集器进行收集处理3 Filter生命周期
Filter同Servlet类似,也是有生命周期。Filter从生成到销毁必须经过以下几个步骤:
(1) 生成Filter,并通过调用其init()方法来进行初始化
(2) 过滤用户请求,调用其doFilter()方法
(3) 调用destory()方法进行销毁,并通过垃圾收集器进行收集处理




单像素成像技术原理与Matlab仿真实现 傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。 阅读详情

相关推荐

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1622

深入理解XXE漏洞。

xxe浅了解

snowlyzz的博客 1020

大模型-CLIP 详细介绍

最先进的计算机视觉系统通常被训练来预测一组预定义的对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为要指定任何其他视觉概念,就需要额外的标注数据。比如,它们可以识别“猫”、“狗”、“汽车”等。但是,这种做法有一个明显的局限性:如果你想让系统识别一个新的类别,比如说“独角兽”,你就必须提供大量带有“独角兽”标签的图片来训练系统。这不仅耗时费力,而且限制了系统的灵活性和广泛适用性。直接从原始文本中学习关于图像的信息是一种很有前途的替代方案,因为它利用了更广泛的监督来源。

晓的博客 9730

终于点懂XML了,知道了version和encoding

XML 树结构 Previous PageNext Page XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。 一个 XML 文档实例 XML 使用简单的具有自我描述性的语法: George John Reminder Don't forget the meeting! 第一行是 XML 声明。它定义 XML 的版本 (

heroben39的专栏 1030

HP iLO4报错自救指南:Embedded Flash/SD-CARD故障的3种修复方案(附详细截图)

本文详细解析了HP iLO4出现'Embedded Flash/SD-CARD'故障时的3种修复方案,包括快速恢复、固件级修复和硬件级解决方案。通过Diagnostics诊断和Self-Test报告,帮助运维人员高效解决问题,并提供预防性维护建议,确保服务器远程管理功能的稳定性。

weixin_42522953的博客 514

Google Earth Engine 实现图像随机森林分类_遥感分类全流程详解

本文将通过一段完整的GEE代码,逐步讲解如何利用Sentinel-2影像和随机森林算法,实现地表覆盖分类。代码包含等关键步骤,适合遥感入门学习!

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 916

xml学习笔记(一)

<br /> <br />XML教程<br />xml简介<br /><br /><br />xml(Extensible Markup Language)可扩展标记语言<br />xml的设计宗旨是传输数据,而非显示数据<br />xml不能代替html<br />xml是w3c的推荐标准<br /><br /><br />一个xml文档实例<br /><?xml version = “1.0” encoding = “iso-8859-1”?> <!-- xml声明版本和编码--><br /><note

青春华航 495

手把手教你学Simulink--控制策略与算法的DC-DC变换器领域仿真领域建模实例:基于Simulink实现一个双闭环控制Buck变换器的仿真建模

目录主要步骤1. 前期准备2. 构建Buck变换器模型3. 定义双闭环控制器4. 设置参考电压和反馈回路5. 实现双闭环控制器逻辑6. 仿真参数设置7. 运行仿真与结果分析示例整合代码片段1. Simulink模型2. 双闭环控制器参数调节3. 仿真结果分析总结双闭环控制是一种常见的控制策略,广泛应用于电力电子系统(如DC-DC变换器)中。它通过内外两个环路的协同工作,分别控制系统的动态性能和稳态性能。对于Buck变换器,通常采用电流内环和电压外环的双闭环控制结构。以下是一个手把手教程,帮助你基于Simul

MHD0815的博客 326

从一个多选框将选项移动到另一多选框中的js小代码

xml version="1.0" encoding="ISO-8859-1"?>DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">html xmlns="http://www.w3.org/1999/xhtml" xml:lang

- 优快云 - 技术汇编 - 1866

Claude Code 100个真实案例 - 用AI搭建LangChain多工具Agent(自主搜索+查询)

本案例展示如何使用 Claude Code 搭建一个 LangChain 多工具 Agent 系统。Agent 能够自主决定调用搜索引擎、数据库查询、天气查询、计算器等工具,像人类助手一样拆解问题并逐步解决。

yueyeguzhuo的专栏 560

【忍者算法】从拼积木到最长连续序列:一道别出心裁的数组题目|LeetCode 128 最长连续序列

本题核心:通过预处理数据结构来优化查找!

忍者算法的博客 738

解析xml文件遇到奇怪的问题

解析一个xml文件:        00010001 a1.mp3 6,473,098 a1.lrc 2,124  MP3ContentHandler.java:     public class MP3ContentHandler  extends DefaultHandler{ public MP3ContentHan

shiluankuang5671的博客 359

十一、Cadence ic 617以及assura使用总结

1.617的端口和514不同,没有网络属性,使用时不能直接放在原理图上,如果要直接放在图上要接线并且放上标签。2.617的端口也不能直接放在线上,514中将端口直接放在线上是可以使端口和线连接,但617看似连接,但拉出来线没有交点,实际上没有连接。这里set switches里的选项表示不同的模块,也就是选择一个就只对这一部分进行DRC验证,要验证整个版图的DRC就要把所有的选项选中,然后一个个改正。LVS中也是一样,要全部选中改正。

0 2295

web.xml配置详解(摘录) web.xml配置详解

web.xml配置详解(摘录) web.xml配置详解 关键字: web.xml配置 web.xml配置详解       做了很长时间的j2EE开发,应用比较多的就是web.xml,但是还是不能完全掌握web.xml的配置,因为用的时候就从网上查一下,没有做过记录,也没有总结过,所以本次把web.xml配置记录下来,方便以后查阅 1、定义头和根元素   部署描述符文件

liuzheng2684的专栏 920

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JavaWeb web.xml配置详解

=""=""=""=""

Record_Algorithm 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《web.xml配置详解》

《web.xml配置详解》 1、它的加载过程(步骤) 启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: <listener></listener>和<context-param></context-param>。 紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将...

Zy_1006的博客 370

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Web.xml配置详解

Web.xml配置详解 注*:集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序 注*:图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 注*:EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是分布式应用程序。 注*:第一个Servlet程序入门 注*:context-param -> listener -> fil

Harrytsz的博客 5816

Web.xml文件配置详解

可有可无,如果在web.xml中不写配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。通常无需重写init()和destroy()两个方法,除非需要在初始化Servlet时,完成某些资源初始化的方法,才考虑重写init()方法,如果重写了init()方法,应在重写该方法的第一行调用super.init(config),该方法将调用HttpServlet的init()方法。

KYGALYX的博客 1万+

Web.XML 配置详解

每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定.web.xml定义: .站台的名称和说明 .针对环境参数(Context)做初始化工作 .Servlet的名称和映射 .Session的设定 .Tag library的对映 .JSP网页设定 .Mime Type处理 .错误处理 .利用JDNI取得站台资源要了解web.xml的设定值,必须了解它的sch

jupiter97的专栏 3万+

Java web之web.xml配置详解

什么是web.xml web.xml是web项目的配置文件,一般的web工程都会用到web.xml来配置,方便大型开发。web.xml主要用来配置Filter,Listener,Servlet等。但是web.xml并不是必须的,一个web工程可以没有web.xml文件。 web工程加载web.xml过程 web容器的加载顺序ServletContext -> context-param -&...

zhaohong_bo的专栏 1128

java web工程web xml配置详解

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 转载自:http://blog.csdn.net/believejava/article/details/43229361这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨

qq_43746825的博客 286
上一篇: 鼠标点击选择行 再次点击取消选择行
下一篇: Jquery はい いいえ dialog
xiaodanjava
博客等级 码龄15年 90粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值