- org.apache.http.client.ClientProtocolException: null java.io.IOException: Attempted read from close
原因:
HttpEntity resEntity = response.getEntity();
//方法中操作的是流数据,流数据是一次性数据所以同一个HttpEntity不能使用多次该方法
String resEntityStr=EntityUtils.toString(resEntity)
- redis命令setex键秒值
设置key为保存字符串value并key在给定的秒数后设置为超时。该命令相当于执行以下命令:
SET mykey myvalue
EXPIRE mykey 3
#或者
SETEX mykey 3 myvalue
- Jackson使用
Map<Object, Object> map = new HashMap<>();
map.put("success",true);
map.put("message","验签成功");
String jsonMap = new ObjectMapper().writeValueAsString(map);
response.setContentType("application/json;charset=UTF-8");
response.getWriter().println(jsonMap);
-
strJSON.replace(/\n/g,‘’).replace(/\/g, ‘’) :把\n和\替换成空。
-
Request和Response设置编码格式
Request:
1.post方式:request.setCharacterEncoding(“utf-8”);
注:通知浏览器对request提交(Post方式)的数据使用UTF-8进行编码。
2.get方式: String str=request.getParameter(“key”);
str=new String(str.getBytes(“iso-8859-1”),“utf-8”);
注:对于Get方式,将请求参数先接收,在进行手动转码。
Response:
1.response.setContextType(“text/html;charset=utf-8”);
2.response.setContextType("text/html);
response.setCharacterEncoding(“utf-8”);
注:使用UTF-8对response回写数据进行编码,同时通知浏览器对response回写的数据使用UTF-8进行解码。 -
通过应用名查询端口:ps -ef | grep redis
-
mybatis插入list数据操作:
public class Student {
private Long sid,
private String name,
private Integer age
}
<!-- 插入学生信息 -->
<insert id="addStudent" parameterType="java.util.List">
insert student
(
sid,
name,
age
)
values
<foreach collection="list" item="item" index= "index" separator =",">
(
/*取index时用${index}*/
#{item.sid},
#{item.name},
#{item.age}
)
</foreach>
</insert>
-
CurrentHashMap是线程安全的,不允许key为null,因为HashMap当你get(null)的时候,无法判断是get(null)没有获取到值还是获取到put(null,null)的值。
-
mybatis分页:
物理分页:
1. 利用sql的limit直接在查询的时候进行分页。
2. 利用intercepter进行分页 ,例如pageHelper。
逻辑分页:
1. 利用数组分页,查询出全部数据,然后再list中截取需要的部分。
2. 利用RowBounds分页,数据量小使用。 -
log4j定义了8个级别的log优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO(生产)、DEBUG(开发)、TRACE、 ALL。
-
Java程序由于String的设计反斜线 \ 表示特殊的转移字符,所以在正则中想要写普通的正则转义比如"\s+“,就要写成”\s+"。(\s是匹配所以的空白符,+是匹配1个或者多个,大写表示非)。
-
正则的 \w* 表示匹配0个或者多个字母、数字、下划线。等价于[A-Za-z0-0_]*。
-
重写equals方法如果不重写hashCode方法,会导致对象完全相等,但是hash值不等,这样的话使用散列集合(哈希表又叫散列表)存储时会出现问题,散列集合在存储时会先根据对象的hash值算出在散列集合的存储位置,然后在进行equals比较,如果不重写hashCode方法的话会导致hash值不同,从而多次存取一个完全相同的对象存储在散列集合中的不同位置。
-
解决linux中tmp目录下的文件被清理的问题
找到/usr/lib/tmpfiles.d下的tmp.conf文件,把默认的10天改成你想要的天数