spring MVC

  

,,一个。浏览器发出一个HTTP请求

,,b。请求首先进入DispatcherServlet主控制器

,,c。主控制器调用HandlerMapping组件根据请求找映射的控制器处理

,,d。执行控制器处理方法,将返回结果给ViewResolver组件

,,e。ViewResolver组件根据控制器返回结果定位视图JSP,将模型数据传递给JSP

,,f。由JSP生成响应结果,给浏览器输出


 spring MVC



。RequestMappingHandlerMapping组件

,,@RequestMapping (“login.do”)该标记用在控制器业务方法前

b。控制器编写和配置

,,取消了实现控制器接口及方法约定,可以允许程序员按需灵活定义业务方法;

公共ModelAndView或字符串方法名(根据请求、会话、响应)

控制器需要扫描到春容器,必须使用@ Controller

,如:公共字符串执行(){

,,,,,返回“hello”;

,,,,,,,}

d。控制器如何接收请求参数

,,1)利用HttpServletRequest

,,* 2)利用业务方法参数(少量参数时使用)

,,,,,*——参数名与请求参数关键保持一致

,,,,——利才能用@RequestParam (“key")

,* 3)利用实体对象当方法参数(大量参数时使用)

使用建议:少量参数使用2);大量参数使用3);如果客户端表单数据没有格式检查,遇到非字符串类型参数建议使用1)

e。如何向响应JSP传值

,,,* 1)利用HttpServletRequest

,,,2)利用ModelAndView做返回值

,,,* 3)利用ModelMap方法参数

,,,4)使用@ModelAttribute (“key")

,,,,,公共字符串checkLogin (@ModuleAttribute(“用户”)字符串的用户名){

,,,,,,,,return “ok”;}//好吧。jsp使用$ {user}

,,,,,@ModelAttribute (“user")

,,,,,公共字符串getName () {

,,,,,,,,return “汤姆”;}

,,,,,等价于模型。put("用户",getName ());//$ {user}即汤姆

f。控制器如何使用会话

代码示例:

web。xml:

& lt; servlet>   ,,,& lt; servlet-name> webLogin2   ,,,& lt; servlet-class> org.springframework.web.servlet.DispatcherServlet   ,,,& lt; init-param>   ,,,,,,,& lt; param-name> contextConfigLocation   ,,,,,,,& lt; param-value>类路径:applicationContext.xml   ,,,& lt;/init-param>   & lt;/servlet>      & lt; servlet-mapping>   ,,,& lt; servlet-name> webLogin2   ,,,& lt; url-pattern> * .do   & lt;/servlet-mapping>

handlermapping和控制器:

@ controller   public  class  LoginController  {   ,,,//登录按钮处理   ,,,@RequestMapping (“/login.do")   ,,,public  String  checkLogin3 (String 用户名,String 密码,ModelMap  modelMap,, HttpSession 会话){   ,,,,,,,if  (“root" .equals(用户名),,,,,1234年“.equals(密码)){   ,,,,,,,,,,,modelMap.put (“user",,用户名);   ,,,,,,,,,,,session.setAttribute (“username",,用户名);   ,,,,,,,,,,,return “ok";//ok.jsp 使用$ {user}   ,,,,,,,},{else    ,,,,,,,,,,,modelMap.put (“msg",,“用户名或密码错误“);   ,,,,,,,,,,,login . jsp return “login";//使用${味精}   ,,,,,,,}   ,,,}

春配置:

& lt; !——等价于handlermapping——比;   & lt; mvc: annotation-driven> & lt;/mvc: annotation-driven>      & lt;上下文:component-scan 基础包=癱ontroller"比;   & lt;/背景:component-scan>         & lt; !——配置viewerResolver——比;   & lt; bean  id=皏iewresolver"   ,,,,,类=皁rg.springframework.web.servlet.view.InternalResourceViewResolver"比;   ,,,& lt; !——去前缀配置下找页面——比;   ,,,& lt; property  name=皃refix",价值=https://www.yisu.com/zixun/"/web - inf/"> spring MVC