实习笔记 —— Spring基础
实习笔记 —— IOC反转控制(xml配置文件 + 注解)
实习笔记 —— AOP开发I
实习笔记 —— AOP开发II(AOP中Advice的类型)
实习笔记 —— MyBatis I (MyBatis基础)
实习笔记 —— MyBatis II (MyBatis基本数据库操作)
实习笔记 —— MyBatis III(输入/输出映射)
实习笔记 —— MyBatis IV(动态SQL)
实习笔记 —— MyBatis V(多表查询)
实习笔记 —— Git I(基础指令)
实习笔记 —— Git II(远程提交)
实习笔记 —— Maven
实习笔记 —— springMVC I
文章目录
- 系列文章目录
- 一、前端控制器
- 二、Controller类代码详解
- 1.浏览器访问路径解析
- 2.Controller中demo方法的调用
- 三、Controller中添加新测试内容
- 1.添加Model等新变量并为其设置属性值
- 2.添加新方法add()用于响应新种类的请求
- 总结
一、前端控制器
Controller类是处理器映射器;
Controller类中的方法是处理器适配器;
return “index”是视图解析器。
前端控制器接收请求,寻找相应的Controller(本质上是Java类,每个Controller负责一个表),结果渲染成HTML页面交给视图解析器(index页面),最后展示给用户。
/ssm-blog/src/main/java/com/controller/HelloController.java存的是控制层代码,对应处理器映射器。
二、Controller类代码详解Controller类:
return “index” 是指将获取到的参数返回给index页面,否则就返回给系统了。
http://localhost:8080/ssm-blog/news/hello
http://localhost:8080/ssm-blog/jsp/index.jsp
直接显示的是index中的内容,未执行demo
②在index.jsp中调用刚刚设置的属性值:
③添加ModelMap modelMap, Map map变量,操作同上:
// 页面传参
@RequestMapping("/hello") // 子目录 news/hello
// http://localhost:8080/ssm-blog/news/hello?uName=Tom%20Tom
public String demo(String uName, HttpServletRequest request, Model model, ModelMap modelMap, Map map) {
System.out.println("第一个参数: " + uName);
// 向jsp页面传参
request.setAttribute("request_msg", "request_msg: 测试网页传参5.21");
model.addAttribute("model_msg", "model_msg: Testing springMVC 处理适配器HandlerAdapter.");
modelMap.put("modelMap_msg", "modelMap_msg: Testing");
map.put("map_msg", "map_msg: Testing");
return "index";
}
④修改 index.jsp:
⑤测试:
2.添加新方法add()用于响应新种类的请求http://localhost:8080/ssm-blog/news/hello
①编写 add 方法:
/ssm-blog/src/main/java/com/controller/HelloController.java
②修改index.jsp:
/ssm-blog/src/main/webapp/jsp/index.jsp
③测试:
http://localhost:8080/ssm-blog/news/add
设定属性值时在Java语句中甚至可以使用HTML标签:
④传参测试:
总结http://localhost:8080/ssm-blog/news/add?uName=tom&pwd=123456
1.代码仓库地址:
https://github.com/Jim-lyz1024/2022_Spring-Practice/tree/master
直接跳转
2.注意体会 HelloController.java 中创建新方法的含义,表明此控制类下对于不同的请求(hello / add)将可以产生不同的参数设置、数据查询等操作,最终显示到 index 的(即用户看到的)内容也就不同。
对比:
而二者所用的 jsp 代码是一样的:



