java web开发中Servlet、Request、Response常用的代码

Request(请求)

1.获取并打印request的body中的参数。
这种获取请求中代码,一般都会封装成工具类。
如果不封装,写起来比较麻烦,类似如下:

        JSONObject res = new JSONObject();
        String postData = null;
        try {
            postData = IOUtils.toString(request.getInputStream(), "UTF-8");
        } catch (IOException e) {
            //错误参数,自行定义。
            res.put(ResultCode.H_CODE, ResultCode.DEAL_FAIL_1301);
            res.put(ResultCode.H_DESCRIPTION,ResultInfo.DEAL_FAIL_1301);
            return res ;
        }
        logger.info("请求参数为:" + postData );

2.获取并打印GET请求的参数。
一般来说,GET请求的参数,都会放在Url后面,而不会放在body里面。
主要是用request.getQueryString() 获取参数。

    	@RequestMapping(value="/user/id/query", method = RequestMethod.GET)
	public BaseResult invoiceExport(HttpServletRequest request, HttpServletResponse response) throws Exception{
		logger.info("查询用户id对应的用户信息...");
		logger.info("请求参数:"+request.getQueryString()  );
	}	

Response(响应)

1.通过Response返回文本或图片等信息给前端。
比如前端通过GET请求,获取后端生成的图片。

@RequestMapping(value="/image", method = RequestMethod.GET)
public void getImage(HttpServletRequest request, HttpServletResponse response) {
    // Image image=...;  
    response.getWrier().print(image);
}

HttpServletResponse的理解: https://www.cnblogs.com/expiator/p/10791841.html

Session(会话)

1.从session中取出openId等用户信息:

Object openId = request.getSession().getAttribute(Constant.SESSION_FWH_MINI_USER);    //从session中取出openid

注意:也可以使用: HttpSession session=request.getSession();

2.sessionId作为不同的缓存的key或标识符。

//从请求的参数中取出sessionId
String sessionId=paramJson.getString("sessionId");
//检查验证码是否正确
String code = stringRedisTemplate.opsForValue().get(Constant.SESSIONID_PREFIX + sessionId);
  • 从 Cookie 中获取 key对应的value:
    public static String getCookie(HttpServletRequest request, String key) {
        String value = "";
        Cookie[] cookies = request.getCookies();
        if (cookies == null) {
            return value;
        }
        for (Cookie c : cookies) {
            if (key.equals(c.getName())) {
                return c.getValue();
            }
        }
        return value;
    }

编码/解码

1.编码:
如果 url或者 cookie中,有汉字或者特殊符号,需要encode之后才能调用。

String enUrl = URLDecoder.encode(url,"UTF-8");

2.解码:
同样的,获取到url或者 cookie后,需要dncode之后才能拿到真正的数据。

String deUrl = URLDecoder.decode(url,"UTF-8");

常见的比如sessionId可能存在特殊字符,就可以使用URLDecoder进行处理。

待补充。

posted on 2019-06-08 23:02  乐之者v  阅读(529)  评论(0编辑  收藏  举报

导航