spring MVC 中获取request

spring MVC中如何获取request 呢?

有如下方式:

方式一:在action中注入request

直接在action的参数中增加HttpServletRequest request

例如

/***
     * 返回json
     * @param id
     * @param roleLevel
     * @param model
     * @param request
     * @param targetView
     * @return
     * @throws SecurityException
     * @throws NoSuchFieldException
     * @throws IllegalArgumentException
     * @throws IllegalAccessException
     */
    @ResponseBody
    @RequestMapping(value = "/{id}/update/json",method=RequestMethod.POST)
    public String json_update(@PathVariable int id,T roleLevel, Model model,HttpServletRequest request,String targetView) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
        boolean success= updateCommon(id, roleLevel, model, request);
        Map map=new HashMap();
        if(!success){
            map.put(Constant2.LOGIN_RESULT_KEY, false);
            map.put(Constant2.RESPONSE_KEY_ERROR_MESSAGE, "未找到记录,id:"+id);
            return HWUtils.getJsonP(map);
        }
        return Constant2.RESPONSE_RIGHT_RESULT;

    }

方式二:使用RequestContextHolder

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

protected GenericDao getDao() {
        if(this.dao==null){
            System.out.println("请先执行init(request)");
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            init(request);
        }
        return this.dao;
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 09:26:04

spring MVC 中获取request的相关文章

Spring mvc中使用request和response

@ResponseBody @RequestMapping(value="/ip", method=RequestMethod.GET) public String getIP(HttpServletRequest request, HttpServletResponse response){ return request.getRemoteAddr(); } 直接在参数中指定,mvc会自动注入

spring aop 中获取 request

使用aop时需要request 和response 使用方法调用时 HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();一直报空指针结果在web.xml中加入一下监听即可 <listener> <listener-class>         org.springframework.web.context.r

spring mvc controller中获取request head内容

spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public String print(@PathVariable Integer mlid, @PathVariable String ptn, @PathVariable String name, HttpSession session, Model model, @RequestHeader String referer,

Spring 中获取 request 的几种方法,及其线程安全性分析

概述在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等.由于在Spring MVC中,处理请求的Controller.Service等对象都是单例的,因此获取request对象时最需要注意的问题,便是request对象是否是线程安全的:当有大量并发请求时,能否保证不同请求/线程中使用不同的request对象.这里还有一个问题需要注意:前面所说的"在处理请

Spring MVC中拦截器HandlerInterceptorAdapter中的preHandle方法

拦截器:顾名思义,就是对请求进行拦截,做一些预处理.后处理或返回处理的操作 Spring MVC中使用拦截器的方法,继承HandlerInterceptorAdapter类,并根据需求实现其中的preHandle方法(预处理).postHandle方法(返回处理),afterCompletion方法(后处理). public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object han

Spring Session在Spring MVC中的使用.md

Web项目会通过Session进行会话保持,Session是保存在服务器内存中: 现在为了提高站点的性能和稳定性,将Web项目发布到多个服务器,通过代理如Nginx或F5做负载均衡: 由于负载均衡正常配置,会对客户端的请求随机转发到某一个服务器,这会导致Session丢失: 解决方案:一种是可将代理如Nginx或F5配置为高可用,即用户访问时,在同一会话期间内,只往一台服务器转发:另一种是引入Spring Session,对Session进行持久化.统一管理: Spring Session对Se

Spring MVC中基于注解的 Controller

终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响应请求.实际上,ControllerClassNameHandlerMapping, MultiActionController 和选择恰当的 methodNameResolver(如 InternalPathMethodNameResolver) 就已经可以在很大程度上帮助我们省去不少的 XML 配置,谁让

Http请求中Content-Type讲解以及在Spring MVC中的应用

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息. 1.  Content-Type MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息. [html] vie

在ASP.NET MVC 中获取当前URL、controller、action 、参数

URL的获取很简单,ASP.NET通用:[1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取 虚拟目录名+页面名+参数: string url=Request.RawUrl;(或 string url=Request.Url.PathAndQuery;) [3]获取 虚拟目录名+页面名:string url=HttpContext.Current.Request.Url.AbsolutePath;(或