日志

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进行处理。

待补充。

java web开发及Servlet常用的代码的更多相关文章

  1. java web 开发入门 --- tomcat/servlet/jsp

    在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...

  2. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  3. java web开发中常用的协议的使用和java-web 常见的缓冲技术

    一.DNS协议 作用将域名解析为IP   类似于我们只需要知道中央一台,中央二台,而不需要知道它的频率,方便记忆. java dns 域名解析协议实现 1 域名解析,将域名可转换为ip地址InetAd ...

  4. 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener

    [Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...

  5. 【Java Web开发学习】Servlet、Filter、Listener

    [Java Web开发学习]Servlet 转发:https://www.cnblogs.com/yangchongxing/p/9274739.html 1.Servlet package cn.y ...

  6. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  7. day04 Java Web 开发入门

    day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...

  8. 《Tomcat与Java Web开发技术详解》思维导图

    越想构建上层建筑,就越觉得底层基础很重要.补课系列. 书是良心书,就是太基础了,正适合补课. [纯文字版] Tomcat与Java Web开发技术详解 Servlet Servlet的生命周期 初始化 ...

  9. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

随机推荐

  1. getElementsByClassName兼容 封装

    众所周知,JS获取DOM有个getElementsByClassName,非常方便,但是呢,为了兼容某些浏览器(你懂的).只能 进行封装下了.解决方法如下 <!DOCTYPE html> ...

  2. Android canvas.save()与canvas.restore()的使用总结

    含义canvas.save(); 画布将当前的状态保存canvas.restore(); 画布取出原来所保存的状态使用 canvas.save();与canvas.restore();一般结合使用,. ...

  3. SpringBoot上传文件报错,临时路径不存在

    异常信息 报错日志: The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost ...

  4. 二十六、聊聊mysql如何实现分布式锁

    分布式锁的功能 分布式锁使用者位于不同的机器中,锁获取成功之后,才可以对共享资源进行操作 锁具有重入的功能:即一个使用者可以多次获取某个锁 获取锁有超时的功能:即在指定的时间内去尝试获取锁,超过了超时 ...

  5. selenium 定位元素方法

    1.通过id定位元素 写法1: element = driver.find_element_by_id("kw") 写法2: from selenium.webdriver.com ...

  6. css样式设定样例说明

    <style> .classA .classB{*}; //表示设置class为classA标签下的classB标签的样式(A). .classA , .classB{*}; //表示同时 ...

  7. spring boot项目:java -jar命令 没有主清单属性

    pom文件中,在build的plugins中增加插件: <plugin> <groupId>org.springframework.boot</groupId> & ...

  8. JanusGraph多图配置 (cassandra)

    JanusGraph多图配置目的 :一个端口开启后可根据句柄操作多个图 .(cassandra存储后端) 1.GremlinServer多图配置 服务器gremlin-server.yaml中可以设置 ...

  9. Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation(知识图谱)

    知识图谱(Knowledge Graph,KG)可以理解成一个知识库,用来存储实体与实体之间的关系.知识图谱可以为机器学习算法提供更多的信息,帮助模型更好地完成任务. 在推荐算法中融入电影的知识图谱, ...

  10. kafka没配置好,导致服务器重启之后,topic丢失,topic里面的消息也丢失

    转,原文:https://blog.csdn.net/zfszhangyuan/article/details/53389916 ----------------------------------- ...