学习笔记(2020.10.23)

2022-07-28,

spring篇(二)

接上一篇spring集成web:集成Tomcat 写底层业务逻辑 配置这里学了一遍大致懂了先跳过

springMVC 配置流程1.导入坐标spring-webmvc 2.spring.xml开启组件扫描 3.配置web加载

<!--告诉springmvc    .xml的配置文件位置-->
<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

编写modelandview 让浏览器访问写了注解的类

springmvc数据响应方式:1.页面跳转可以调回指定返回的页面 在modelandview和HttpServletRequest request域中可以储存数据 2.回写数据(字符串,对象,集合)字符串:可以传递HttpservletResponse response 调用 response.getWriter().print(“hello springmvc”);就可以在页面看到回写的字符串;也可以在方法上@ResponseBody注解告诉springmvc框架回写(对象可以导入jackson-core jackson-databind jackson-annotations jar坐标 用objectmapper.writevalueasString(对象)返回json数据…对象转json)

返回对象和集合:配置

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list><bean class="org.springframework.http.converter.cbor.MappingJackson2HttpMessageConverter"></bean></list>
    </property>
</bean>

### 修改jar包的类,让视图帮忙转换配置见上配上这个就可以自动配置不用上面的代码 这里一直报500 日乐购 跳过先发育

获取请求数据 会根据方法中的传递的参数自动匹配 1.基本数据 2.pojo参数: 会根据方法中的传递的参数自动匹配 3.数组:传参传递数组 4.集合:写一个类封装集合和集合的泛型,在传递参数时带上会根据set后面自动匹配

@RequestParam value=请求映射值 required=请求报错开关 defaultvalue=不写请求默认值

自定义类型转换器

springMVC获取请求参数 获取请求头

用DispatcherServlet来加载spring.xml时 修改spring配置文件时容易出错重新配置Tomcat就可以解决 现在还搞不懂为什么 跳过 先发育后期来杠

浏览器传来的文件接收封装成对象并存起来
@RequestMapping(value = “/hello13”)
@ResponseBody
public void save13(MultipartFile upload) throws IOException {
System.out.println(upload);
//获得上传文件名称
String uploadOriginalFilename = upload.getOriginalFilename();
upload.transferTo(new File(“D:\uuuu\”+uploadOriginalFilename));
}

springMVC拦截器:interceptor 步骤:1.写HandlerInterceptor的实现接口覆写三个方法 2.配置springMVC核心文件 3.然后测试

<mvc:interceptors>
    <mvc:interceptor>
        <!--对那些目标方法执行拦截操作-->
        <mvc:mapping path="/**"/>
        <bean class="com.zhou.interceptor.Myinerceptor1"></bean>
    </mvc:interceptor>
</mvc:interceptors>

接口覆写

public class Myinerceptor1 implements HandlerInterceptor {
//在拦截方法之前执行
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
System.out.println(“pre…”);
return true;
}
//在拦截方法执行之后,视图返回之前
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
System.out.println(“post…”);
}
//在流程执行完后执行
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
System.out.println(“after…”);
}
}

springmvc异常处理机制1.简单映射处理器,直接调用springmvc里面有de简单映射处理器

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <!--<property name="defaultErrorView" value="error"></property>-->
    <property name="exceptionMappings">
        <map>
            <entry key="ClassCastException" value="error1"></entry>
            <entry key="MyException" value="error2"></entry>
        </map>
    </property>
</bean>

2.自定义异常处理器

本文地址:https://blog.csdn.net/xxzxl_/article/details/109233860

《学习笔记(2020.10.23).doc》

下载本文的Word格式文档,以方便收藏与打印。