zoukankan      html  css  js  c++  java
  • 在spring MVC的controller中获取ServletConfig

    在使用SmartUpload进行文件上传时,须要用到srevletConfig:


    假设是在servlet中写当然是非常easy实现的:

            private ServletConfig config;
    	//初始化Servlet
    	final public void init(ServletConfig config)
    			throws ServletException{
    		this.config=config;
    	}

    init方法会在servlet初始化时获取到servletConfig.

    可是在Controller中怎么获得呢?经过小编多方请教,能够通过继承ServletConfigAware,ServletContextAware这两个接口来实现:

    package module.system.controller;
    
    import java.io.IOException;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import module.system.common.FileLoad;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.context.ServletConfigAware;
    import org.springframework.web.context.ServletContextAware;
    /**
     * 文件上传下载.
     * 
     */
    @Controller
    @RequestMapping("/fileLoad")
    public class FileLoadController implements ServletConfigAware,ServletContextAware{
    	
    	private ServletContext servletContext;
    	@Override
    	public void setServletContext(ServletContext arg0) {
    		this.servletContext = arg0;
    	}
        private ServletConfig servletConfig;
    	@Override
    	public void setServletConfig(ServletConfig arg0) {
            this.servletConfig = arg0;
    	}
    	
    	@RequestMapping(value = "/upload.do", method = RequestMethod.POST)
    	@ResponseBody  //此注解表明返回值跳过视图处理部分。直接写入 http response body中
    	public String upload(HttpServletRequest request,HttpServletResponse response) {
    		 
    		FileLoad fileLoad = new FileLoad();
    		try {
    			fileLoad.upload(request, response,servletConfig);
    		} catch (ServletException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return "";
    	}
    
    	
    }
    

    里边这个upload方法是另外写的一个方法,将会在下一篇文章中介绍。

    通过这样就能够得到servletConfig了



  • 相关阅读:
    微信扫码支付模式一和模式二的区别
    spring boot MongoDB的集成和使用
    Java 8 中的 Streams API 详解
    大并发量的订单的解析
    Springboot项目打成war包,部署到tomcat上,正常启动访问报错404
    最详细的虚拟机安装centos7教程
    nginx限制上传大小和超时时间设置说明/php限制上传大小
    一级域名和二级域名的区别是什么?分别有什么作用?
    快递物流查询接口介绍
    java 使用volatile实现线程数据的共享
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5125127.html
Copyright © 2011-2022 走看看