1. 程式人生 > >JavaEE基礎JavaWeb項目基礎認識

JavaEE基礎JavaWeb項目基礎認識

for lib 黑科技 環境 post sstream 歡迎頁面 無法 sse

web項目結構
技術分享圖片

  • WEB-INF:位於應用程序根目錄下,內部對外界封閉,客戶端無法使用HTTP直接訪問到內部的文件或目錄,只能通過Servlet/JSP的請求轉發(Forward)
  • web.xml:web項目部署描述文件,位於web-inf根目錄下
  • lib:存放jar文件的目錄,位於web-inf根目錄下
  • classes:編譯後的.class文件,位於web-inf根目錄下

項目打包命令——項目目錄FirstServlet
jar cvf ../FirstServlet.war *

URI的實際組成

requestURI = contextPath + servletPath + pathInfo

1,requestURI可以通過httpServletRequest的getRequestURI( )來獲取
2,contextPath 環境路徑(Context path)
這個可以通過httpServletRequest的getContextPath( )來獲取
3,servletPath指Servlet路徑不包括路徑信息(Path info)與請求參數(Request parameter)
這個可以通過httpServletRequest的getServletPath( )來獲取

  • /hello.do——>servletPath=/hello.do
  • /servlet/*——>servletPath=/servlet
  • /*或者""——>servletPath=空字符串
    4,pathInfo路徑信息(Path info),不包括請求參數,指的是不包括環境路徑與Servlet路徑部分的額外路徑信息
    這個可以通過httpServletRequest的getPathInfo( )來獲取,沒有額外路徑信息則為null(擴展映射,預設Servlet,完全匹配的情況下,getPathInfo會取到null),如果存在,則是一個以/開頭的字符串。
    技術分享圖片

訪問Jar包中的頁面
在jar文件的/META-INF/resources 目錄中放置靜態資源或jsp等,訪問時項目找不到對應文件則會從jar中的resources中尋找
當項目中找不到某類文件時會從項目的依賴jar中尋找,如果依然找不到則會在容器存放類和jar的目錄中尋找(如:tomcat的lib)

通過程序控制取得/WEB-INF中的資源,可以使用ServletContext的getResource( ) 和getResourceAsStream( ),或是通過RequestDispatcher請求調派

如果web應用程序的URL最後以/結尾,而且確實存在該目錄,則Web容器必須傳回該目錄下的歡迎頁面,web.xml中的配置

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

web-fragment.xml
這個感覺挺黑科技的!回頭看

JavaEE基礎JavaWeb項目基礎認識