1. 程式人生 > >Java小專案中WEB-INF下jsp頁面如何訪問?

Java小專案中WEB-INF下jsp頁面如何訪問?

                                       Java小專案中WEB-INF下jsp頁面如何訪問

一:一般為啥要把jsp頁面放在WEB-INF吶?

     這樣主要是為了網站的安全的角度來說的,WEB-INF是安全目錄Tomcat 預設的訪問路徑是WebRoot下的index.jsp,放在WEB-INF下的頁面一般不配置是無法訪問的。

你的站點肯定有些頁面是需要經過登入驗證或其他驗證後才能訪問的啊,這些頁面就放在web-inf裡。
如果是能不經過驗證就訪問的頁面,比如主頁、登入頁、歡迎頁這種,就不要放在web-inf裡

 二: 下面來看如何訪問Web-INF下的頁面?

     在建立JavaWeb工程時有個web.xml的部署描述符,在下面有個這樣可以定製首頁的:做如下配置來看:

<welcome-file-list>
    <welcome-file>/WEB-INF/jsp/test.jsp</welcome-file>
  </welcome-file-list>
</web-app>

一般的Web.xml中預設的<welcome-file>中的頁面是WebRoot下的index.jsp的

工程目錄如下:

 便可以訪問了:

在瀏覽器中輸入如下地址

訪問訪問成功後的頁面:

在SpringMVC的檢視解析器中也是配置的WEB-INF下的頁面;

最後追加的一句:使用如下的地址也是訪問不到的:

http://localhost:8080/JSTLTest/WebRoot/WEB-INF/jsp/test.jsp

來看具體的案例:SSM整合實現使用者登入的例子中對WEN-INF下的頁面的訪問實現:開發環境MyEclipse 2016 CI 7

    1:

這個是基於Maven 下的SSM虧框架的整合:實現的功能是使用者登入:

來看web.xml中的寫法:

<welcome-file-list>
     <welcome-file>/WEB-INF/jsp/main.jsp</welcome-file>
 </welcome-file-list>

 來看如何訪問這個小Demo:

 瀏覽器中的地址的寫法:

http://localhost:8080/TestSSM/

這樣就訪問成功頁面了,用Maven建立專案的時候使用web-app的專案名稱上會多出Maven Webapp的訪問的時候不用加的,只用你專案的名稱即可;

                                下面來看WEB-INF下的JSP頁面如何實現跳轉的(用a標籤實現跳轉)

1:一般來說將JSP頁面放在Webapp下就比較容易實現了,加專案的路徑就可以了或者是新增<%=basePath>絕對路徑就可以了;

2:這裡使用SpringMVC的控制器實現:

首先是之前的定製首頁中可以用控制器實現的:

首先新建一個Controller類

@Controller
public class PageController {
     //打來首頁,可以取代web.中定義首頁的
     //這個只是一個檢視,模型資料可以在形參裡面來表示的

     //這裡是訪問的根路徑

    @RequestMapping(value="/",method=RequestMethod.GET)
    public String showLogin(){
      System.out.println("進入頁面控制器啦");    
      return "login";    
    }
    //頁面跳轉的控制器
    @RequestMapping("/upload")
    public String showUpload(){
      System.out.println("進入跳轉頁面控制器");
      return "upload";
    }
}


這個就可以不用寫的:

<welcome-file-list>
    <welcome-file>/WEB-INF/jsp/test.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 這樣部署專案啟動伺服器就可以訪問了

http://localhost:8080/TestSSM   就可以訪問了

來看跳轉的:main.jsp位於WEB-INF下,upload.jsp位於WEB-INF下.

   1: <!-- 配置跳轉頁面控制器 -->
      <a href="upload">上傳檔案</a>

    2: 頁面控制器裡面寫

      @RequestMapping("/upload")
    public String showUpload(){
      System.out.println("進入跳轉頁面控制器");
      return "upload";
    }            

   之前那個檢視解析器是這樣配置的.

<!--配置檢視解析器 -->

         <bean     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
        </bean>