项目结构
-
java
- controller
- ResponseController.java(Java文件)
- domain
- User.java(JavaBean文件)
- controller
-
resources
- springmvc.xml(springmvc配置文件)
-
webapp
- css
- images
- js
- jquery.min.js(js文档)
- WEB-INF
- pages
- success.jsp(web页面)
- web.xml(web配置文件)
- pages
- index.jsp(web页面)
- jquery.jsp(web页面)
- response.jsp(web页面)
-
pom.xml(maven项目配置文件)
maven项目配置文件
- 配置maven项目需要的依赖
- spring-context
- spring-web
- spring-webmvc
- servlet-api
- jsp-api
- jackson-databind
- jackson-core
- jackson-annotations
web配置文件
- 前端控制器(DispatcherServlet)
- 配置一个前端控制器(<servlet>)
- 创建前端控制器时,加载Spring配置文件(<init-param>)
- 启动服务器时,创建前端控制器(<\load-on-startup>)
- 配置前端控制器的作用范围(<servlet-mapping>)
- 配置一个前端控制器(<servlet>)
- 过滤器(CharacterEncodingFilter)
- 配置一个过滤器(<filter>)
- 配置编码(<init-param>):解决中文乱码
- 配置前端控制器的作用范围(<filter-mapping>)
- 配置一个过滤器(<filter>)
springmvc配置文件
- 导入名称空间(<beans xmlns="">)
- 开启注解扫描(<context:component-scan base-package="">)
- 配置视图解析器(InternalResourceViewResolver)
- 配置前缀(prefix -> “/WEB-INF/pages”)
- 配置后缀(suffix -> “.jsp”)
- 配置前端控制器(<mvc:resource >)
- 开启SpringMVC注解支持(<mvc:annotation-driven>)
Java文件
- 表现层
- 类
- 添加进IoC核心容器(@Controller)
- 设置请求映射(@RequestMapping())
- 一级目录(path="")
- 设置允许访问的请求方法(method="")
- 设置必需的参数和参数值(params="")
- 设置必需的请求头(headers="")
- 方法
- 设置请求映射(@RequestMapping())
- 二级目录(path="")
- 返回值(return “success”;)
- 参数列表(数据类型 请求参数名,数据类型 请求参数名)
- HttpServletRequest:获取Request、Session,用于请求转发、获取Request URI
- HttpServletResponse:获取Response,用于重定向、设置中文乱码
- 设置请求映射(@RequestMapping())
- 类
JSP文件
- 超链接(href=“一级目录/二级目录?请求参数=值&请求参数=值”)
- 表单(<form action=“一级目录/二级目录” method=“post”>)
执行代码
- 需求:在response.jsp页面,点击的超链接,跳转到success.jsp页面,并且在页面输出响应消息。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.water</groupId>
<artifactId>section02_Response</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>section02_Response Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!-- 版本锁定 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<!-- 依赖注入 -->
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- jsp -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- Jackson:用于Ajax异步请求,将Json类型数据转化为JavaBean类型 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0