一:SpringMvc概述
1.SpringMvc是一个表现层的框架,web框架
2.和Servlet的功能一样(接收请求,处理请求,响应请求(转发和重定向))
3.SpringMvc是Spring的一个模块,SpringMvc与Spring可以无缝集成
–Struts2表现层框架
–Mybatiss数据层框架
Spring全家桶:Spring,SpringMvc,SpringJdbc,SpringBoot,SpringCloud…
ssh – Spring + Struts2 + hibernate
ssm – Spring + SpringMvc + Mybatis
二:HelloWord入门
1.导包
2.编写前端控制器,将所有的请求交给前端控制器去进行处理
3.创建spring-mvc.xml
4.编写控制器=处理器Handler
public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
System.out.println(“请求来了”);
ModelAndView view = new ModelAndView();
//设置数据
view.addObject(“name”, “tom”);//req.setArribute(“name”,“tom”)
//设置视图的名字
view.setViewName("/WEB-INF/hello.jsp");///WEB-INF中的资源不能直接访问,只能通过转发
return view;
}
}
5.配置请求映射
6.编写页面hello.jsp
Hello,${name }
7.测试
三:前端控制器的三种方式
所有的请求都要交给前端控制器去处理
1.后缀匹配方式:*.do *.user .emp等 – 不建议使用
2./:匹配所有请求 – 一般用在过滤器中,会拦截到控制器的请求,也会拦截访问页面的请求
3./:建议使用 – 只会拦截到控制器的请求,不会拦截访问页面的请求
缺点:会拦截静态资源(.css .js 图片)
加上配置:mvc:default-servlet-handler/,静态资源放行
四:处理器handler/控制器controller三种写法
1.写一个类去实现Controller接口,实现其方法 – 不建议
2.写一个类去实现HttpRequestHandler接口,实现其方法 – 不建议
3.写一个普通类+注解:
1.类不需要继承或实现其他类和接口
2.方法自定义,参数自定义,返回值自定义
3.增加一个controller的时候非常方便
注意:注解在使用的时候需要添加配置
五:全注解
1.实例化Bean = 创建对象的注解:@Controller @Service @Repository @Component
注意:扫描包路径:<context:component-scan base-package=“cn.itsource”/>
2.注入的注解:@Autowired
注意:使用这个注解之前,一定要保证容器中要有这个类型的对象
3.请求映射注解:@RequestMapping
注意:需要开启spring对mvc的支持/开启注解驱动:mvc:annotation-driven</mvc:annotation-driven>
六:测试SpringMvc的作用或功能
1.获取请求参数
2.配置过滤器处理post请求提交的中文乱码参数问题
3.配置了视图解析器统一处理视图名称
4.向页面传值
Model,ModelAndView对象
5.重定向和转发
1.配置了视图解析器之后,响应的数据都会经过视图解析器(String,ModelAndView对象)
2.SpringMvc默认是转发
3.显示的转发(forward:)和重定向(redirect:)是不会经过视图解析器的
七:SpringMvc返回Json
json对象就是一个js对象:
var obj ={“name”:“tom”,“age”:30};
alert(obj.name);
var obj2 = [{"name":"tom","age":18},{"name":"jack","age":30}];
alert(obj2[1].name);
后台如何将数据传递到页面,而且要以json的格式?
java对象,集合
使用@ResponseBody注解,需要导入jackson.jar包
而且在使用这个注解的时候,也不会经过视图解析器,会直接响应到页面