慕沓沓 2021-07-27 18:16 采纳率: 50%
浏览 1057

idea部署ssm项目到tomcat,进入index.jsp,无法跳转其他页面

index.jsp


```html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>index</title>
    <base href="http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">
</head>
<body>
<a href="${pageContext.request.contextPath}/test/ssm">在这里在这里</a>
<a href="http://localhost:8080/WEB_INF/test.html">点我点我!!!!!</a>

</body>
</html>


**spring-web-mvc.xml**
```xml
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

<!--自动扫描-->
<context:component-scan base-package="com.atguigu.crowd.mvc.handler"/>

        <!--配置springmvc注解驱动-->
<mvc:annotation-driven/>

        <!--配置视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--ContextLoaderListener-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-persist-*.xml</param-value>
    </context-param>
    <!-- Bootstraps the root web application context before servlet initialization -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 配置 SpringMVC 的前端控制器 -->
    <!-- The front controller of this Spring Web application, responsible for handling all application
    requests -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-web-mvc.xml</param-value>
        </init-param>
        <!-- 让 DispatcherServlet 在 Web 应用启动时创建对象、 初始化 -->
        <!-- 默认情况: Servlet 在第一次请求的时候创建对象、 初始化 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <!-- DispatcherServlet 映射的 URL 地址 -->
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern><!--拦截所有请求-->
        <!--方式二
        <url-pattern>*.html</url-pattern>
        <url-pattern>*.json</url-pattern>
            优点:伪静态效果,给黑客入侵增加难度、有利于SEO优化
            缺点:不符合RESTFUL风格、请求扩展名不匹配时会406错误
        -->
    </servlet-mapping>
    <!--    <servlet-mapping>-->
    <!--        <servlet-name>default</servlet-name>-->
    <!--        <url-pattern>*.js</url-pattern>-->
    <!--    </servlet-mapping>-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <!--这个Filter执行顺序要在所有其它Filter前面-->
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


</web-app>

handler代码


```java
package com.atguigu.crowd.mvc.handler;

import com.atguigu.crowd.AdminService;
import com.atguigu.crowd.entity.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class TestHandler {

    @Autowired
    private AdminService adminService;

    @RequestMapping("/test/ssm")
    public String testSSM(ModelMap modelMap){

        List<Admin> adminList = adminService.getAll();
        modelMap.addAttribute("adminList",adminList);

        return "target";
    }
}

```
用tomcat运行后进入index.jsp,点击第一个a标签,页面跳转报404

img

  • 写回答

3条回答 默认 最新

  • Zht_bs 2021-07-28 13:11
    关注

    @Controller 类里的访问页面路径前面都加一个“/”
    @RequestMapping("/index")
    public String index(){
    return "/index";
    }

    评论

报告相同问题?

问题事件

  • 修改了问题 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大