学习笔记(三)HttpServlet中路径配置相关

首先,说明下3个路径标识: /: 代表根目录;./:代表当前目录; ../代表当前目录的上级目录.

因此,如果当前路径为第4级,要访问第一级的路径,需要向上跳三次,即../../../,
反之,如果第一级访问第4级,则从当前路径往下转3级,即./下级目录1/下级目录2/下级目录3/;

一、资源类请求(html\jsp等文件)
以当前的输出资源目录为参考依据,比如输出目录为WebContent,index.html、sendMsg.html放置目录为WebContent\chatroom\下,
那么资源index.html中的请求sendMsg.html地址就是sendMsg.html了,因为同当前的index.html 位置平行,如果在其上一目录 ,
即直接放在WebContent目录下,则应取上级目录..,即格式为../sendMsg.html;

二、动作类请求(servlet的action)
这里需要注意以下几点:
1.form 中的action,对于动作类,不能以/开头,可以通过 上下文/动作,因为TOMCAT 把/当做 webapp这个层次的根目录,
其后 才是 各类应用上下文目录,再是对应的资源目录;

2.动作的请求需要从资源目录到WEB.XML中配置目录的转化,即: 当前资源目录=》WEBContent目录=》web配置中匹配模式的路径,

举例说明:
假如资源目录为webContent\chatroom\1\2\sendMsg.html,web中目录为/xxx/send,那么 sendMsg.html中action的请求
路径按照上述推导规则,则应该是 action=”../../../xxx/send”,前面的”../../../”代表追溯到上下文根目录。

3. 动作的名称、大小写必须与XML配置文件中一致,后面可以则可以附带参数,如send?a=1;


以Servlet的servlet-mapping节点中配置的路径为参考,以下分几种情况分析:

   其中:sendMsg.html 在webContent\chatroom\sendMsg.html下,通过页面的SUBMIT按钮触发send动作,而show是该页面自动触发的显示操作。


   web.xml配置如下:
  

SendMsgServlet
/chatroom/send
  

        (A)相同路径
 
ShowMsg
/chatroom/show
 

         (B) 上级路径
 
ShowMsg
/show
  

         (C)不同目录下的同级别路径
   
ShowMsg
/chatroom1/show
  

          (D)下级路径
 
ShowMsg
/chatroom/next/show
 


  以下配置在HTML中请求的show路径: 

  ---------------********   A <相同路径>  *************-------

  

        
    

  

  ---------------********  B<上级路径>  ************-------

  

         
    

  

 ---------------******** C <不同目录下的路径> *************-------

  

         
    

  

 ---------------********   D <下级路径>  *************-------

  

       
    

    

三、规则
分精确匹配、拓展名匹配、路径匹配、即特殊情况下的任意匹配(/ 或/*),
为避免歧义性,除了根目录下用.jsp 这种拓展名模糊 和 /data/这种路径模糊匹配外,其他都建议用精确方式匹配。

你可能感兴趣的:(J2EE企业开发笔记,httpServle)