A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hw1037585418 初级黑马   /  2019-9-10 15:00  /  1128 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Spring_MVC

一、
1.文件上传
        (1)表单项为FIle
        (2)表单提交方式为Post
        (3)表单的enctype属性是多部分表单形式,即enctype = "multipart/form-data"。(将表单修改为多部分表单形式,request.getParameter()将失效。请求正文内容将变成多部分形式。)

2.步骤实现
        (1)导入相关坐标:FileUpLoad、io;
        (2)配置上传解析器(Spring_MVC中配置);
        (3)编写上传文件代码;(文件上传时务必获取文件名并添加到上传方法中。upload.jsp中注意添加属性enctype。)

3.拦截器(interceptor)
        类似于Servlect中拦截器Filter,依赖于Servlet容器。访问目标资源方法时,进行干预。实现原理是AOP。
        filter可以对所有javaWeb工程进行拦截,进行使用。在url-pattern中设置/*之后可以对所有资源进行拦截。拦截器只作用于Spring-MVC,依赖于框架。只会拦截Controller控制器中的方法,jsp、html、css、image等不被拦截。

4.拦截器实现方法
        创建类实现接口HandelInterceptor,配置相关设置在Spring_MVC中。

5.异常处理
        (1)简单异常处理器:由Spring_MVC提供,对应发生的异常跳转到相关页面。value要被视图解析器解析。
        (2)自定义异常处理器:
                        创建类实现接口“HandlerExceptionReslover”
                        配置异常处理器:将定义的异常处理器交给Spring容器管理
                        编写异常页面
## 二、

#### 1.数据响应方式

​        (1)页面跳转
​                        ----直接返回字符串,SpringMVC 默认为转发形式。
​                        ----通过ModelAndView对象返回页面,Return ModelAndView、Model和View 能够分别设置值。View表示跳转到的页面(展示数据)。Mod、表示携带过去的数据值(封装数据)。三种方式可以使用,框架注入(Spring框架会帮助注入很多值)、自己创建、分开设置、原始注入Request。

​        (2)回写数据
​                        ----直接返回字符串:第一种为直接以传参形式传入Response 调用 getWrite() 写回。第二种为方法上加上注解 **@ResponseBody**(告诉框架该方法不执行跳转,直接在原页面显示数据、响应数据。**企业应用场景:ajax**) 直接Return所要回写的参数。Json转换工具,将对象转换为字符串。
​                        ----返回对象或者集合:**<mvc:annotation-driven>** mvc注解驱动,省去调用 ObjectMapper 进行转换为 String,直接Return 参数即可。

2.SpringMVC的请求-获得请求参数

​        (1)基本类型参数:业务方法名称与请请求参数名称一致。(尽量使用封装类)SpringMVC进行自动类型转换,参数顺序可变。
​        (2)POJO类型封装:将对应类型放入方法中作为参数,SpringMVC 自动封装为该对象。
​        (3)数组类型:同一数组名称下传递多个参数,方法中定义数组名称。(Arrayas.asList 方法调用)
​        (4)集合类型参数:不能直接获取,需要定义JavaBean将集合作为属性,前端传入请求参数封装到该类中。简化中 @RequestBody 如果想要接受对像时,必须为Json类型。(contentType:"application/json")

3.参数绑定注解
        @RequestParam:当请求参数与业务中参数不同时,需要该注解进行协调。

4.自定义类型转换器
        SpringMVC默认带有一些转换器
        自定义类型转换器开发步骤:
                        (1)定义转换器类实现日期接口Converter;
                        (2)配置文件中声明转换器ConversionServiceFactoryBean;
                        (3)在<annotation-drivern>中

5.SpringMVC相关API
        我们定义方法,框架调用方法。
        (1)HttpServletRequest
        (2)HttpServletResponse
        (3)HttpSession
        实质上Controller 中的方法只是普通的方法,真正帮我们执行的是SpringMVC框架。
三、
​        1.基本三层架构环境搭建
​                javax.servlet-api
​                javax.servlet.jsp-api

​        2.监听器解决Spring加载配置文件代码冗余问题

​                每次从容器中获取Bean都要创建容器,繁琐复杂。因此需要只创建一次,使用时调用即可。
​                ServletContextListener:web项目启动时,ServletContext对象被创建,加载应用上下文。Listener就会监听web应用的启动。(ServletContext作用域)

​        3.代码实现

​                ServletContextEvent是ServletContext一个父类,可以用来获取ServletContext。
​                web.xml中全局参数获取  ServletContext.getInitParameter
​                applicationContext 报红在前面添加 classpath: 可以解决。表示从类路径下获取。

​        4.SpringMvc分析

​                (1)行为分为共有和特有行为,抽取共有行为简化代码操作。
​                (2)前端控制器,web框架所共有。POJO普通JAVABean 控制器Controller。
​                (3)SpringMvc封装了Servlet的框架。对共性的东西进行了封装。
​        SpringMvc与Servlet的区别:
​                一个性能好,一个开发效率高,是对另一个的封装。

​        5.SpringMvc操作步骤

​                (1)导入SpringMvc坐标
​                (2)配置Servlet:核心控制器
​                (3)创建Contreller类和视图页面:创建Controller 创建jsp页面
​                (4)使用注解配置将Contreller类放入Spring中:@Controller、@RequestMapping
​                (5)配置SpringMvc核心配置文件Spring_MVC.xml,配置@Contreller注解扫描。
​                (6)请求       

​        6.代码实现

​                (1)相关API坐标
​                        spring-web 、 spring-contextx 、spring-api  、spring-webmvc

​        7.注解分析

​                (1)RequestMappring:作用于类和方法上。类上为类级别的,访问路径前加类上路径(相对路径)。
​                                method——提交方式   (RequestMethod.提交方式名称)
​                                param——使用该方法必须携带的参数

​        8.SpringMVC 组件扫描

​                (1)扫描标签形式
​                                <context:component-scan back-package="所要扫描的包的路径">
​                                Spring相当于SpringMVC的父类,Spring中的数据都可以被SpringMVC访问到。SpringMVC中的数据                不会被父类Spring所访问。
​                                SpringMVC中初始化的与父类相同的数据会覆盖父类中初始化过的数据。

​        9.SpringMVC的XML配置解析

​                        默认组件均是在 DispatcherServlet.properties 配置文件中配置的,其中"redirect" 表示重定向跳                转、"forward"表示转发跳转。使用方法在COntroller 中 return 前添加。
​                        return 中访问的路径可以被简化缩写,标签中"prefix" 表示名称前缀设置,"suffix" 表示名称后缀设置。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马