SpringMVC简介
SpringMVC主要解决了V – C 交互的问题, 即如何使用控制器接收请求并给予响应的问题
MVC: Model(数据模型) + View (视图) + Controller(控制器)
关于SpringBoot框架
SpringBoot框架可以简单的当作为一个“加强版的SpringMVC框框” 相比直接创建SpringMVC框架的项目.如果创建的是SpringBoot框架的项目, 可以不必添加非常用框架,也可以省去大量的常规配置!
创建SpringBoot项目
创建项目时,选择 Spring Initializr 的创建向导:
当创建项目时,在以上界面点击下一步后长时间无响应时,应该在以上界面的右侧选中
Custom ,并使用 https://start.springboot.io 网址并再次点击下一步。
在接下来的界面中确定当前项目的一些参数,例如Group、Artifact、Java Version等:
在选择依赖的界面,在左侧选择 Web ,在右侧勾选 Spring Web :
完成后,项目即创建完成,第1次使用时,开发工具会自动下载大量依赖。
4.启动SpringBoot项目
创建好的SpringBoot中默认在 src/main/java 下就已经有一个package了,其名称是创建项目
时指定的Group和Artifact决定的:
注意:这个包是SpringBoot默认指定的组件扫描的包,所以,项目中的各组件都必须放在这个包或其子孙包中!
在这个包中,默认已经存在 SpringmvcApplication 类,类的名称是创建项目时指定的Artifact决定的:
这个类中有 main() 方法,执行这个 main() 方法就可以启动整个项目,所以,这个类也称之为“启动类”
启动成功后,控制台输出内容例如:
通过启动日志可以看到,启动当前项目时是启动了Tomcat的,并将项目部署在 8080 端口,这个
Tomcat是当前项目内置的!
另外,通过以上启动日志可以看到Tomcat在部署当前项目时配置的Context Path是空值:
所以,后续在访问当前项目时,在URL中端口号的右侧不必再添加项目名称或对应的路径值!
在项目的 src/main/resources 下默认就存在 application.properties 文件,这个文件是项目的配置文件:
SpringBoot框架会自动读取项目中的配置,并且,SpringBoot还约定框架相关配置的属性名称,所以,除非是编写自定义的配置,否则,各配置的属性名称是相对固定的!
如果需要指定当前项目启动时,将Tomcat启动在哪个端口,可以添加配置:
如果使用的是MacOS或Linux操作系统,可能无法直接将端口号修改为 80 ,
因为操作系统将 80 端口视为敏感端口,需要事先修改操作系统的设置才可以使用。
5.添加静态页面
在SpringBoot项目中,如果创建项目时就已经勾选了 Spring Web 依赖,默认情况下在
src\main\resources 下就已经创建好了 static 文件夹:
该文件夹是SpringBoot框架默认的静态资源文件夹,项目中的静态资源应该放在这个文件夹之下
例如 .html 、 .css 、 .js 、图片文件等,例如,在 static 文件夹下创建 index.html :
完成后,重启项目,打开浏览器,输入 http://localhost 即可访问这个页面!
SpringBoot框架将 index.html 设置为默认访问的资源,所以,如果需要访问的是
http://localhost/index.html,在URL中可以不必显式的指定资源名,
即使http://localhost 即可!
SpringMVC中的控制器
在传统Java EE项目中是使用Servlet组件(自定义类继承自 HttpServlet )作为控制器的,在
SpringMVC框架中可以自定义任何类作为控制器类,推荐使用 Controller 作为类名的最后一个
单词,并且在类的声明之前添加 @Controller 注解即可将该类配置为控制器类!例如,在
cn.tedu.springmvc 包中创建 UserController 类并添加 @Controller 注解:
在传统的Java EE中,如果需要处理客户端提交的请求,需要在Servlet类之前添加注解来配置请
求路径,并重写Servlet中的 doGet() 或 doPost() 方法来处理GET或POST类型的请求,在
SpringMVC中:
- 在方法的声明之前使用 @RequestMapping 注解来配置请求路径;
- 应该使用 public 权限;
- 暂时使用 String 作为返回值类型;
- 方法名称可以自定义;
- 参数列表暂时为空;
- 在方法的声明之前暂时添加 @ResponseBody 注解。
例如:
完成后,重启项目,在浏览器中通过 http://localhost/hello 即可测试访问,在浏览器中将可以
看到 OK 字样,并且在IntelliJ IDEA的控制台可以看到以上输出的内容!
同一个控制器中可以有若干个处理请求的方法,例如此前练习的“用户注册”页面可以将请求路径
设计为 /register :
然后,在 UserController 中补充处理 /register 的方法:
完成后,重启项目,在浏览器重新打开 http://localhost/register.html(如果已经打开,则需要刷新),可以不必输入任何内容,直接点击提交按钮,在浏览器将可以看到 Register OK 字样,并且在IntelliJ IDEA的控制台可以看到以上输出的内容!
SpringMVC框架接收请求参数
在 register.html 中,为表单中的各控件配置 name 属性就可以设置请求参数的名称,例如:
在SpringMVC中,如果需要接收这些请求参数,直接将各请求参数声明为处理请求的方法的参
数即可,例如:
完成后,即可重启项目,观察运行结果。
重定向
在SpringMVC中,当控制器处理请求的方法的返回值类型是 String 且没有添加
@ResponseBody 时,返回值使用 redirect:目 录 路 径 即可实现重定向,例如:
注意: 仅限参考和模改
希望对你们有用,如果对你们有帮助请点个赞鼓励一下!