SpringMVC概述&搭建&Request请求参数获取和发送(数据模型)
- SpringMVC
- Spring提供的控制器
- 是表现层(控制层)的一个目前最流行的MVC框架;
- 采用非侵入式设计;
- 与Struts2相比,其性能更好:主要因为Struts2处理请求是基于类(对象)的,而SpringMVC基于方法
- SpringMVC的两个控制器
- 前端控制器:由SpringMVC来提供DispatcherServlet,它用来接收所以请求
- 后端控制器:业务控制器;由开发人员编写,通常使用@Controller(@RequestMapping())
- 开发SpringMVC的步骤
- 导包
- 创建WEB-INF文件夹,下拷贝web.xml;在web.xml中加入前端控制器(“ / ”表示只不拦截jsp)
- 为SpringMVC定义一个配置文件,他的名字是<servlet-name>-servlet.xml,并将它放在webapp/WEB-INF/下(放在这里是因为WEB-INF是安全的,外部不能直接访问)
- 在上述文件(example-servlet.xml)加入
- 定义一个后端控制器(放在上述扫描所有控制器的包下com.oracle.web)
- WEB-INF下新建jsp,名为:success.jsp(同上图返回值),<body>键入内容进行测试:你好,这是第一个SpringMVC
- 启动服务器,浏览器地址栏键入:http://localhost:8080/springMVC0727/hello
- 浏览器返回给我们的正是success.jsp里的内容
- 这是因为视图解析器给我们返回的字符串 success 添加前缀 /WEB-INF/jsp/ + success + 后缀 .jsp 对应到了先前建好的 /WEB-INF/jsp/success.jsp 文件
- 导包
- @RequestMapping 注解
- 作用:给请求做映射
- 他可以用在类和方法上
- 关于请求的限制
- @RequestMapping的常用参数
- value:url
- method:可指定哪个方法适用(POST,GET)
- params:参数的映射,可指定必须传递(没有)哪些参数,参数取值(不等于哪个值)
- 如:param,!param,param=xxx,param!=xxx
- headers:请求头的限制
- @RequestMapping的常用参数
- 如何获取请求参数值
- @RequestParam:请求参数(例子为获得表单提交来的name="name"的参数值)
- @PathVariable:通过它来获得请求路径中的参数
- @CookieValue:获得cookie的信息
- @RequestHeader:获得请求头的信息
- POJO(建议使用)
- 支持原生ServletAPI:HTTPServletRequest,Session等
- @RequestParam:请求参数(例子为获得表单提交来的name="name"的参数值)
- 数据模型的处理方法(向request中发送数据)
- ModelAndView:这个类型封装了数据和视图,可以在Controller中定义一个ModelAndView对象,向此对象中加入数据,同时设置视图(实际开发用的不太多)
- Model:通过参数来定义
- model.addAttribute(key, value)
- Map(最好用):定义在参数中
- map.put(key, value)
- ModelAndView:这个类型封装了数据和视图,可以在Controller中定义一个ModelAndView对象,向此对象中加入数据,同时设置视图(实际开发用的不太多)