SpringMVC
MVC:模型(dao,service),视图(jsp),控制器(Servlet)
导包:
1 | <?xml version="1.0" encoding="UTF-8"?> |
创建文件夹后直接右键“添加框架支持”,选中web,点ok,就会自动创建web文件夹
创建jsp/hello.jsp文件
1 | <%-- |
springmvc-servlet.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
HelloController.class
1 | package com.kuang.controller; |
刚运行可能会404,这边显示的是缺java EE 6,下载
然后是导新文件的jar包(不是01,而是02的)
完成以后发现卵用没有——如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!
(“文件”–“项目结构”–“工件”,在WEB-INF底下加lib文件夹,然后点导包,把所有包导进去)(idea的历史遗留问题)
玩了一圈发现:tomcat10不能用javax,要用jakarta,但是这个程序必须要引用javax,所以必定会404,解决方法:换tomcat9
(大部分都能换jakarta,但是jstl需要这个:https://blog.csdn.net/amiao_2018/article/details/116357125 )
然后springmvc直接引用的javax包,没有引用jakarta的版本 ——2022.3.16
实际操作不会像上面那么写,因为太麻烦,会直接用注解,这只是讲原理
使用注解开发SpringMVC:
由于Maven可能存在资源过滤的问题,我们将配置完善(只要是maven就加上就行):
1 | <build> |
自动生成web文件夹,导入lib
web.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
springmvc-servlet.xml
1 |
|
这几个配置文件以后就不可能动了!!!
HelloController.java
1 | package com.kuang.controller; |
hello.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
然后就收工了,真就傻子编程了
传统方式:
GET传参:访问http://localhost:8080/springmvc_03_annotation_war_exploded/add?a=1&b=2
1 | package com.kuang.controller; |
RestFul风格:
(感觉这就是ssrf漏洞的源头)
访问http://localhost:8080/springmvc_03_annotation_war_exploded/add/1/2
1 | package com.kuang.controller; |
POST请求:
1 | package com.kuang.controller; |
这个就能造成url相同的情况下GET和POST的内容不一样
转发(url不变,但是会打印目标文件的内容):
1 | package com.kuang.controller; |
重定向(url会变,但是WEB-INF的文件不能被重定向):
1 | package com.kuang.controller; |
接收请求参数和数据回显:
导包:
1 | <dependencies> |
User.java
1 | package com.kuang.pojo; |
UserController.java
1 | package com.kuang.controller; |
访问:http://localhost:8080/springmvc_03_annotation_war_exploded/user/t1?name=1
http://localhost:8080/springmvc_03_annotation_war_exploded/user/t2?user=1&age=2&id=3
代码不明白就去找官网使用文档,官网使用文档没说就去找它的开源项目,开源项目还没有讲明白就发个issue说“我在这发现了个bug”,很快就会有人和你讲明白
JSON:
前端框架:layui(真就用js写数据库,全都存前端,演示网址:https://www.layuiweb.com/demo/index.htm)