,,一个。浏览器发出一个HTTP请求
,,b。请求首先进入DispatcherServlet主控制器
,,c。主控制器调用HandlerMapping组件根据请求找映射的控制器处理
,,d。执行控制器处理方法,将返回结果给ViewResolver组件
,,e。ViewResolver组件根据控制器返回结果定位视图JSP,将模型数据传递给JSP
,,f。由JSP生成响应结果,给浏览器输出
。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/"> 属性 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullspring MVC