文章目录
SpringMVC - (07) SpringMVC配置JSP视图解析器
开发环境:
IDE:IDEA2022
JDK:17
构建工具:Maven3.9.0
服务器:Tomcat8.5
Spring版本:Spring5.3.24
1. 创建maven工程
1.创建Java工程,工程名:springMVC
2.修改工程JDK版本以及编译器JDK版本
File -> Project Structure
3.修改Maven配置,关联自己的Maven
File -> settings -> Build,Execution,Deployment -> Build Tools -> Maven
4.创建模块,模板名:springMVC-004-jsp
5.修改打包方式为war
6.添加依赖
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.24</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- ServletAPI -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
添加依赖之后,刷新Maven
7.添加web模块
File -> Project Structure,生成web.xml
webapp路径为:…\springMVC-004-jsp\src\main\webapp\WEB-INF\web.xml
点击“Apply”,点击“OK”
此时的项目结构如下:
3. 配置web.xml
因为前端浏览器发送的请求同一交给前端控制器DispatcherServlet处理,而前端控制器是一个servlet,想通过servlet处理请求,我们就必须在web,xml中进行注册。
注册SpringMVC的前端控制器DispatcherServlet
可通过init-param标签设置SpringMVC配置文件的位置和名称,通过load-on-startup标签设置SpringMVC前端控制器DispatcherServlet的初始化时间
<!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 -->
<init-param>
<!-- contextConfigLocation为固定值 -->
<param-name>contextConfigLocation</param-name>
<!-- 使用classpath:表示从类路径查找配置文件,例如maven工程中的src/main/resources -->
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<!-- 控制DispatcherServlet的初始化时间提前到服务器启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
4. 创建请求控制器
由于前端控制器对浏览器发送的请求进行了统一的处理,但是具体的请求有不同的处理过程,因此需要创建处理具体请求的类,即请求控制器
请求控制器中每一个处理请求的方法成为控制器方法
因为SpringMVC的控制器由一个POJO(普通的Java类)担任,因此需要通过@Controller注解将其标识为一个控制层组件,交给Spring的IoC容器管理,此时SpringMVC才能够识别控制器的存在
@Controller
public class JspController {
}
5. 创建springMVC的配置文件
在resource目录下创建springMVC.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 组件扫描 -->
<context:component-scan base-package="com.julissa.mvc.controller"/>
<!-- 配置JSP视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/templates/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
6. 创建首页面
在webapp/WEB-INF目录下创建templates目录,在templates目录创建index.jsp
<%--
Created by IntelliJ IDEA.
User: Julissa
Date: 2023/3/27
Time: 18:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
<h1>这是首页</h1>
</body>
</html>
7. 实现对首页的访问
在请求控制器中创建处理请求的方法
package com.julissa.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class JspController {
@RequestMapping("/")
public String index(){
return "index";
}
}
8. 配置Tomcat服务器
1.点击fix
2.选择部署当前模块
3.设置上下文路径
4.设置更新策略
点击“Apply”,点击“OK”
9. 启动Tomcat服务器
访问:http://localhost:8080/springMVC/
10. 通过超链接跳转到指定页面
在主页index.jsp中设置超链接
<%--
Created by IntelliJ IDEA.
User: Julissa
Date: 2023/3/27
Time: 18:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
<h1>这是首页</h1>
<a href="${pageContext.request.contextPath}/success">跳转到success页面</a>
</body>
</html>
${pageContext.request.contextPath}获取上下文路径,即http://localhost:8080/springMVC/
在请求控制器中创建处理请求的方法
@RequestMapping("/success")
public String success(){
return "success";
}