Spring MVC中controller拦截问题

本文介绍如何在SpringMVC框架中配置控制器来访问位于WEB-INF目录下的JSP页面,包括不同URL映射的处理方式及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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之后的“/"匹配处理的,多个“/”不行与单个不匹配

转载于:https://www.cnblogs.com/mswangblog/p/6538267.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值