SpringMVC简介和环境搭建

SpringMVC简介 

SpringMVC是一个类似于Struts的MVC框架,作为Spring全家桶一员,可以与Spring无缝连接。

SpringMVC环境搭建

  •  web.xml配置
<!-- springmvc前端控制器,servlet-name见名知意即可 -->
<servlet>
  <servlet-name>springMvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!-- servlet初始化参数,即配置文件内容 -->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:SpringMvc.xml</param-value>
  </init-param>
  <!-- 在tomcat启动的时候就加载,数值越大优先级越低 -->
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>springMvc</servlet-name>
  <!--*.action 代表拦截后缀名为.action结尾的-->
  <url-pattern>*.action</url-pattern>
</servlet-mapping>

<!--服务器启动的时候就会创建Filter,将init-param中的参数加载,注入到CharacterEncodingFilter 类中,浏览器每次发送请求都会经过这个过滤器-->
<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <!--encoding用来指定编码格式,forceEncoding表示是否强制response的编码格式-->
  <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
<!-- encoding filter for jsp page -->
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

  • Spring-mvc.xml配置
<!--启用注解驱动-->
<mvc:annotation-driven/>
<!--配置注解扫描包,我们一般写项目根路径-->
<context:component-scan base-package=“com.yuan.test” />
<!--返回视图解析器配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" />

<!--控制器中使用MultiActionController时,使用path+方法名访问指定方法-->
<bean name="/test1/multi" class="com.yuan.test.MultiController">
  <property name="methodNameResolver">
    <ref bean="paramMethodResolver"/>
  </property>
</bean>
<!--value="a" 可以按需设置-->
<bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
  <property name="paramName" value="a"></property>
</bean>
访问url:http://localhost:8080/test/multi?a=methodName

<!--文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <property name="defaultEncoding" value="utf-8" />
  <property name="maxUploadSize" value="100000" />
  <property name="maxInMemorySize" value="960" />
</bean>

 

springmvc web项目在idea中配置

  • 配置Project Structure

 

 

 

  •  配置Tomcat

Springmvc示例 

文件上传示例

/**上传单个文件*/
public String uploadOne(@RequestParam("file") CommonsMultipartFile file) throws IOException{
  if(!file.isEmpty()){
    try {
      /**将文件存入D盘并重新命名*/
      FileOutputStream fileOutputStream = new FileOutputStream("D:/" + new Date().getTime() + file.getOriginalFilename());
      InputStream inputStream = file.getInputStream();
      int byte = 0;
      while((byte=inputStream.read()) != -1){
        fileOutputStream.write(byte);
      }
      fileOutputStream.flush();
      fileOutputStream.close();
      inputStream.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
  }
  return "/success";
}
/**一次性上传多个文件*/
public String uploadMore(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
  CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
  if(multipartResolver.isMultipart(request)){
    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
    Iterator<String> iter = multiRequest.getFileNames();
    while(iter.hasNext()){
      MultipartFile file = multiRequest.getFile((String)iter.next());
      if(file != null){
        String fileName = "upload" + file.getOriginalFilename();
        String path = "D:/" + fileName;
        File localFile = new File(path);
        file.transferTo(localFile);
      }
    }
  }
  return "/success";
}

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/xrwdgj/p/16294612.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!