zoukankan      html  css  js  c++  java
  • 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进行处理。

    待补充。

  • 相关阅读:
    mybatis中#{}与${}的差别(如何防止sql注入)
    使用Eclipse打开已有工程
    IntelliJ IDEA添加jar包
    【转】mysql 中int类型字段unsigned和signed的区别
    【转】MySQL int转换成varchar引发的慢查询
    数字类型转换函数
    【转】MySQL datetime数据类型设置当前时间为默认值
    【转】拍拍网2015年mysql最新开发规范
    【转】赶集网mysql开发36军规
    【转】再议数据库军规
  • 原文地址:https://www.cnblogs.com/expiator/p/10992074.html
Copyright © 2011-2022 走看看