基于标注的Spring MVC
1.基于标注的Spring MVC
1.1 建立一个项目 导入jar包(ioc aop mvc) 拷贝容器对应的配置文件到src下
在 WEB-INF 建立一个login.jsp
1.2 在web.xml 配置一个DispatcherServlet 并且使用
初始化参数 contextConfigLocation 关联容器对应的配置文件
1.3 开启基于标注 Spring MVC
开启组件扫描 <context:component-scan base-package="" />
开启mvc的标注 <mvc:annotation-driven /> 帮你自动配置了
一个HandlerMapping
1.4 写一个普通的java 类 使用 @Controller 把java 类变成控制器
控制器方法的返回值 可以是String 也可以是 ModelAndView
方法名 任意 参数任意
在控制器方法上 加 @RequestMapping("/请求路径")
1.5 配置视图处理器
2.完成一个登录功能
3. 如何在Spring 控制器中获取请求的参数
3.1 使用 HttpServletRequest 获取 直接定义 HttpServletRequest 参数
3.2 直接把请求参数的名字 定义成控制器的参数名
3.3 当页面参数 和 控制器参数不一致 可以使用 @RequestParam("页面参数名")
加在控制器方法对应的参数上
3.4 定义一个Bean 类型的参数
4.如何把控制器中的数据 传递给页面
4.1 使用 request session application 这些域对象传输
4.2 使用ModelAndView 来传输数据
//mav.getModel().put("username", username);
mav.getModelMap().addAttribute("username", username);
4.3 使用 Model 来传输数据
4.4 使用ModelMap 进行传参
4.5 使用 复杂对象类型 直接传输
如果是复杂对象的控制器方法参数的话 默认是把类名首字母小写之后 放入request作用域中
也可以使用 @ModelAttribute("引用名") 来改变对象引用的名字
5.在Spring 控制器中如何获取 session 对象
使用request 对象获取
直接定义HttpSession 类型的参数
6.在Spring 控制器中如何实现重定向?
6.1 当控制器方法 返回String 时 return "redirect:路径";
默认是转发 转发的结果 直接交给 ViewResolver 可以通过加 forward:
来继续处理 而不交给 ViewResolver
路径开始 / 代表 项目名以及项目前面的部分 包含项目名
6.2 当控制器方法 返回 ModelAndView 时 使用RedirectView 完成重定向
这里面写的路径 不加/ 和 加 / 效果不同 /代表项目名前面的部分 不包含项目名