java web开发及Servlet常用的代码

日志

1.使用门面模式的slfj,并结合log4j,logback。

2.info、debug、error,要写清楚。

3.使用占位符,如下:

    log.info("用户id为: {} ", id);

4.提前判断,提高效率:

 if (log.isDebugEnabled()) {
    log.debug("Committing JDBC Connection [" + connection + "]");
  }

Controller层

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);
}

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);

其他

1.解码:

String eid = URLDecoder.decode(request.getParameter("eid"),"UTF-8");

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

待补充。

原文地址:https://www.cnblogs.com/expiator/p/10992074.html