zoukankan      html  css  js  c++  java
  • SpringMVC--xxx.xml配置

    <!--configure the setting of springmvcDispatcherServlet and configure the mapping-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <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>
    <?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">                    
     
        <!-- scan the package and the sub package -->
        <context:component-scan base-package="test.SpringMVC"/>
     
        <!-- don't handle the static resource -->
        <mvc:default-servlet-handler />
     
        <!-- if you use annotation you must configure following setting -->
        <mvc:annotation-driven />
         
        <!-- configure the InternalResourceViewResolver -->
        <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.需要导入两个jar包

    2.在SpringMVC配置文件中加入

    <!-- upload settings -->
    <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="102400000"></property>
    </bean>

    3.方法代码

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

    4.前台form表单

    <form action="mvc/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file"><br>
        <input type="submit" value="submit">
    </form>

    设置一个自定义拦截器

    1.创建一个MyInterceptor类,并实现HandlerInterceptor接口

    public class MyInterceptor implements HandlerInterceptor {
     
        @Override
        public void afterCompletion(HttpServletRequest arg0,
                HttpServletResponse arg1, Object arg2, Exception arg3)
                throws Exception {
            System.out.println("afterCompletion");
        }
     
        @Override
        public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                Object arg2, ModelAndView arg3) throws Exception {
            System.out.println("postHandle");
        }
     
        @Override
        public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                Object arg2) throws Exception {
            System.out.println("preHandle");
            return true;
        }
     
    }

    2.在SpringMVC的配置文件中配置

    <!-- interceptor setting -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/mvc/**"/>
            <bean class="test.SpringMVC.Interceptor.MyInterceptor"></bean>
        </mvc:interceptor>        
    </mvc:interceptors>

    3.拦截器执行顺序

    整合SpringIOC和SpringMVC

    1.创建一个test.SpringMVC.integrate的包用来演示整合,并创建各类

     2.User实体类

    public class User {
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Date getBirth() {
            return birth;
        }
        public void setBirth(Date birth) {
            this.birth = birth;
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", birth=" + birth + "]";
        }    
        private int id;
        @NotEmpty
        private String name;
     
        @Past
        @DateTimeFormat(pattern="yyyy-MM-dd")
        private Date birth;
    }

    3.UserService类

    @Component
    public class UserService {
        public UserService(){
            System.out.println("UserService Constructor...
    
    
    
    
    
    ");
        }
         
        public void save(){
            System.out.println("save");
        }
    }

    4.UserController

    @Controller
    @RequestMapping("/integrate")
    public class UserController {
        @Autowired
        private UserService userService;
         
        @RequestMapping("/user")
        public String saveUser(@RequestBody @ModelAttribute User u){
            System.out.println(u);
            userService.save();
            return "hello";
        }
    }

    5.Spring配置文件

      在src目录下创建SpringIOC的配置文件applicationContext.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"
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans.xsd 
            http://www.springframework.org/schema/util 
            http://www.springframework.org/schema/util/spring-util-4.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            "
            xmlns:util="http://www.springframework.org/schema/util"
            xmlns:p="http://www.springframework.org/schema/p"
            xmlns:context="http://www.springframework.org/schema/context"   
            >
        <context:component-scan base-package="test.SpringMVC.integrate">
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
            <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>        
        </context:component-scan>
    </beans>

    在Web.xml中添加配置

    <!-- configure the springIOC -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>  
      <param-name>contextConfigLocation</param-name>  
      <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    6.在SpringMVC中进行一些配置,防止SpringMVC和SpringIOC对同一个对象的管理重合

    <!-- scan the package and the sub package -->
        <context:component-scan base-package="test.SpringMVC.integrate">
            <context:include-filter type="annotation"
                expression="org.springframework.stereotype.Controller"/>
            <context:include-filter type="annotation"
                expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
        </context:component-scan>

    SpringMVC详细运行流程图

    SpringMVC与struts2的区别

    1、springmvc基于方法开发的,struts2基于类开发的。springmvc将url和controller里的方法映射。映射成功后springmvc生成一个Handler对象,对象中只包括了一个method。方法执行结束,形参数据销毁。springmvc的controller开发类似web service开发。

      2、springmvc可以进行单例开发,并且建议使用单例开发,struts2通过类的成员变量接收参数,无法使用单例,只能使用多例。

      3、经过实际测试,struts2速度慢,在于使用struts标签,如果使用struts建议使用jstl。

  • 相关阅读:
    anltr 解析MYSQL
    MYSQL 主从复制
    Java happens-before
    傅里叶分析-数据通信的理论基础
    Java jdk常用工具集合
    kafka报错 日志压缩报错直接退出
    linux centos7开启防火墙端口
    mysql_取分组后的前几行值
    数据库隔离级别
    mysql删除重复数据
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/5842687.html
Copyright © 2011-2022 走看看