1、首先是位於WEB-INF下面的jsp是無法直接通過瀏覽器地址欄直接訪問的。
如果把靜態的資源(js、css等)放在其下面也是無法引用
2、可以在頁面中采用轉向方式(forward)訪問web-inf下面的頁面
但是你如果是采用了Spring MVC,可以采用控制器攔截的方式訪問web-inf下面的jsp
例如:
控制器:此控制器處理"/"的請求
@Controller public class HomeController { @RequestMapping(value="/" ,method= RequestMethod.GET) //處理對"/"的請求 public String home(){ System.out.println("你好!!!"); return "home"; //視圖為home } }
而位於web-inf下面的home.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Spittr</title> <link rel="stylesheet" type="text/css" href="<c:url value="/resources/style.css" />"> </head> <body> <h1>Welcome to Spittr</h1> <a href="<c:url value="spittles" />" >Spittes </a> <a href="<c:url value="/spittle/register" />">Register</a> </body> </html>
當在瀏覽器的地址欄輸入:http://http://localhost:8080/SpringMVC/時,轉到了
多樣化探索:
@Controller
public class HomeController {
@RequestMapping(value="/" ,method= RequestMethod.GET) //處理對"/"的請求
public String home(){
System.out.println("你好!!!");
return "home"; //視圖為home
}
@RequestMapping(value="/*" ,method= RequestMethod.GET) //處理對"/"的請求
public String hello(){
System.out.println("你好!!!");
return "hello"; //視圖為home
}
@RequestMapping(value="/MyJsp" ,method= RequestMethod.GET) //處理對"/"的請求
public String MyJsp(){
System.out.println("你好!!!");
return "MyJsp"; //視圖為home
}
}
輸入:http://localhost:8080/SpringMVC/MyJsp,被 MyJsp()控制器處理
輸入:http://localhost:8080/SpringMVC/,被home()控制器處理
輸入:http://localhost:8080/SpringMVC/eee,被hello()控制器處理
輸入:http://localhost:8080/SpringMVC/eee/12 ,報404
大致:項目名是必有的,而項目名之后的資源地址是要和value之后的“/"匹配處理的,多個“/”不行與單個不匹配