日志

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. IDEA中调试时F8,F7快捷键失效

    idea中调试时F8,F7快捷键失效 原因:相关软件的快捷键占用了F8,F7,如我的有道词典占用F8了这个快捷键,导致idea调试时不能使用F8,改变有道词典的快捷键即可.

  2. js基础闭包练习题

    题目描述 实现函数 makeClosures,调用之后满足如下条件:1.返回一个函数数组 result,长度与 arr 相同2.运行 result 中第 i 个函数,即 result[i](),结果与 ...

  3. 【RAC】 RAC For W2K8R2 安装--RDBMS软件的安装(五)

    [RAC] RAC For W2K8R2 安装--RDBMS软件的安装(五) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  4. Oracle数据库入门到高薪培训教程(从Oracle 11g 到 Oracle 19c)

    一.Oracle数据库入门到高薪培训视频教程(从 Oracle11g 到 Oracle19c) 本套Oracle视频教程学习地址: https://edu.51cto.com/course/18034 ...

  5. C:\Program Files\Docker\Docker\Resources\bin\docker.exe: no matching manifest for windows/amd64 10.0.17763 in the manifest list entries.

    右击t图标→Settings 修改红框为True,应用修改即可

  6. SQL进阶系列之11让SQL飞起来

    写在前面 SQL的性能优化是数据库使用者必须面对的重要问题,本节侧重SQL写法上的优化,SQL的性能同时还受到具体数据库的功能特点影响,这些不在本节讨论范围之内 使用高效的查询 参数是子查询时,使用E ...

  7. P1505 [国家集训队]旅游[树剖]

    题目描述 Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路 ...

  8. 题解 UVa11076

    题目大意 多组数据,每组数据给出 \(n\) 个一位数,求出这些一位数组成的所有不同整数的和. 分析 考虑一个数对某一位的贡献,为这个数乘以其他数的全排列数,问题转化为可重复元素的全排列. 引理 \( ...

  9. [Ignatius and the Princess III] 整数的无序拆分(DP + 生成函数)

    整数的有序拆分就是隔板法,无序拆分则有两种处理方法 DP递推 我们假设P(n,m)P(n,m)P(n,m)是正整数nnn无序拆分为mmm个正整数的方案数 对于某一种拆分,不妨将拆分出来的mmm个数从小 ...

  10. Redis-基础介绍

    Redis 基础介绍 一.Redis介绍 二.Redis和Memecache的不同 三.Redis的最佳应用场景: 四.Redis支持的键值类型 五.安装Redis 六.Redis启动方式 七.Red ...