1、创建web资源目录
-
创建war工程
方法同创建jar工程,只是在选择Packaging类型时选择war: -
在main下创建webapp目录
-
将webapp设置为资源目录
2、编写JSP文件
-
在webapp下创建index.jsp
-
编写JSP内容
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta charset="UTF-8" /> <title>Title</title> </head> <body> <form action="" method="post"> <!-- action 内容暂时为空 --> 姓名:<input type="text" name="name" /> <br/> 年龄:<input type="text" name="age" /> <br/> <input type="submit" value="注册" /> </form> </body> </html>
-
运行程序,查看结果
此时启动程序并运行时发现,并不能成功访问该jsp页面:
3、使用物理视图
-
注册资源目录
<!-- pom.xml --> <build> ... <resources> <!-- 指定webapp目录为资源目录 --> <resource> <directory>src/main/webapp</directory> <targetPath>META-INF/resources</targetPath> <includes> <include>**/*.*</include> </includes> </resource> </resources> </build>
-
添加 jasper 依赖
在pom.xml文件中添加一个Tomcat内嵌的jsp引擎:jasper依赖。jasper用于将jsp文件解析为Servlet。
若不添加jasper,浏览器无法解析jsp文件,当访问启动的项目时,会直接下载该jsp文件。<!-- pom.xml --> <dependencies> ... <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> </dependencies>
-
运行程序,查看结果
4、编写Controller类并测试
-
创建表单对象
@Data public class Teacher { private String name; private int age; }
-
创建Controller类
@Controller @RequestMapping("/registry") public class RegistryController { @PostMapping("/register") public String register(Teacher teacher, Model model) { model.addAttribute("teacher", teacher); return "/jsp/welcome.jsp"; } }
-
在
webapp
下创建jsp/welcome.jsp
界面<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>welcome</title> </head> <body> 欢迎新教师:teacher = ${teacher} </body> </html>
-
补充index.jsp页面表单中的action
... <body> ... <form action="registry/register" method="post"> ... </form> </body>
-
运行程序,查看结果
5、指定前后缀
-
在application.yml文件中配置前后缀
spring: mvc: view: prefix: / suffix: .jsp
-
修改Controller类
@Controller @RequestMapping("/registry") public class RegistryController { @PostMapping("/register") public String register(Teacher teacher, Model model) { model.addAttribute("teacher", teacher); return "jsp/welcome"; } }
-
运行程序,查看结果