Spring MVC中controller攔截問題


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之后的“/"匹配處理的,多個“/”不行與單個不匹配


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM