SpringMVC的配置

一、SpringMVC需要的jar包

     commons-logging-1.2.jar 

     spring-aop-4.2.RELEASE.jar

     spring-beans-4.2.RELEASE.jar

     spring-context-4.2.RELEASE.jar

     spring-core-4.2.RELEASE.jar

     spring-expression-4.2.RELEASE.jar

     spring-web-4.2.RELEASE.jar

     spring-webmvc-4.2.RELEASE.jar

二、在web.xml中添加SpringMVC的配置文件

       SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理之后再返回相应的视图(View)和模型(model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。

       DispatcherServlet是继承自HttpServlet的,HttpServlet是在web.xml文件中声明的。


  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-    
            name>]-servlet.xml,如spring-servlet.xml -->
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
       <load-on-startup>1</load-on-startup>
  </servlet>

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

三、在src下添加springmvc-servlet.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">                    

    <!-- 设置使用注解的类所在的包 -->
    <context:component-scan base-package="org.yxt.controller"/>

    <!-- don't handle the static resource -->
    <mvc:default-servlet-handler />

    <!-- if you use annotation you must configure following setting -->
    <mvc:annotation-driven />
    
    <!-- 对转向页面的路径解析 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
            id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

四、配置解析

       1.DispatcherServlet

          DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置springMVC的第一步。

       2.InternalResourceViewResolver

         视图名称解析器

五、SpringMVC常用注解

       @Controller    负责注册一个bean到spring上下文中

       @RequestMapping   注解为控制器指定可以处理哪些URL请求

       @RequestBody   该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上,再把HttpMessageConverter返回的对象数据绑定到controller中方法的参数上

     @ResponseBody   该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区

      @ModelAttribute

        在方法定义上使用  @ModelAttribute 注解:SpringMVC在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute的方法

        在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参将方法入参对象添加到模型中

      @RequestParam  再处理方法入参处使用@RequestParam可以吧请求参数传递给请求方法

      @PathVariable 绑定URL占位符到入参

      @ExceptionHandler  注解到方法上,出现异常时会执行该方法

     @ControllerAdvice   使一个Controller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常

五、使用InitBinder来处理Date类型的参数

 @RequestMapping("/date")
    public String date(Date date){
        System.out.println(date);
        return "hello";
    }

@InitBinder
  public void initBinder(servletRequestDataBinder binder){
       
       binder.registerCustomEditor(Date.class,new CustomDateEditor(new 
          SimpleDateFormate("yyyy-MM-dd"),true));
  }

六、文件上传

      1》导入两个jar包

           commons-fileupload-1.31.jar

           commons-io-2.1.jar

       2》在SpringMVC配置文件中加入

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="102400">
</bean>

      3》代码

@RequestMapping(value="/upload",method=RequestMethod.POST)
public String upload(HttpServletRequest request) throws Exception{
    
    MultipartHttpServletRequest mreq = (MultipartHttpServletRequest)request;
    MultipartFile file = mreq.getFile("file");
    String fileName = file.getOriginalFilename();
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
    fileOutpurStream fos = new FileOutpurStream(request.getSession().getServletContext().getRealPath("/")+"upload"+format.format(new Date())+fileName.substring(fileName.lastIndexOf('.')));
     fos.write(file.getBytes());
    fos.flush();
    fos.close();
    return "image";

}

七、返回json格式的字符串

       1》导入的jar包

         jackson-annotations-2.2.1.jar

         jackson-core-2.2.1.jar

         jackson-databind-2.2.1.jar

八、异常的处理

       1》处理局部异常(Controller内)

@ExceptionHandler
public ModelAndView exceptionHandler(Exception ex){
    ModelAndView mv = new ModelAndView("error");
    mv.addObject("exception",ex);
    System.out.printIn("in testExceptionHandler");
    return mv;
}

@RequestMapping("/error")
public String error(){
    int i=5/0;
    return "hello";

}

         2》处理全局异常(所有Controller)

@ControllerAdvice
public class testControllerAdvice{
    
    @ExceptionHandler
    public ModelAndView exceptionHandler(Exception ex){
         ModelAndView mv = new ModelAndView("error");
         mv.addObject("exception",ex);
         return mv;

    }

}

         3》另一种处理全局异常的方法

          在SpringMVC配置文件中配置

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <prop key="java.lang.ArithmeticException">error</prop>
        </props>
    </property>

</bean>

九、表单验证

     1.导入Hibernate-validate需要的jar包

      classmate-1.0.0.jar

      jboss-logging-3.1.3.GA.jar

      validation-api-1.10.Final.jar

      hibernate-validator-5.1.3.Final.jar

      hibernate-validator-annotation-proce

      2.编写实体类user并加上验证注解

        @NotEmpty

      3.在controller中添加验证

        @Valid   User

十、springMVC流程

十一、SpringMVC运行原理

        1.客户端请求提交到DispatcherServlet

        2.由DispatcherServlet控制查询一个或多个HandlerMapping,找到处理请求的Controller

        3.DispatcherServlet将请求提交到Controller

        4.Controller调用业务逻辑处理后,返回ModelAndView

        5.DispatcherServlet查询一个或多个ViewResoler试图解析器,找到ModelAndView指定的视图

        6.视图负责将结果显示到客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值