学习内容:学习JavaWeb(Day39)
1、关于页面乱码
2、异常的处理
3、使用Token机制处理表单重复提交
4、jcaptcha验证码
5、Commons Codec
1、关于页面乱码
(1)页面请求转发时出现乱码,可能是因为转发的页面是在当前地址下调用的,所以会继承转发之前页面的编码格式,可以试着修改转发之前的编码格式。
重定向出现乱码,可能是因为重定向后页面的编码格式被重新设置,默认为浏览器的编码格式导致乱码。
2、异常的处理
(1)当数据库出现问题时,
三个步骤:
1.将异常转换为非强制捕获型异常
2.将异常向上层抛出,并统一处理
3.在错误页面给出客户友好提示,并通知管理员处理异常信息
(2)自定义异常
public class DataAccessException extends RuntimeException{
public DataAccessException(){
}
public DataAccessException(String msg){
super(msg);
}
public DataAccessException(Throwable th){
super(th);
}
public DataAccessException(Throwable th,String msg){
super(msg,th);
}
}
将异常转换为非强制捕获型异常,并向上抛出统一处理
try {
conn = getConnection();
stat = conn.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
stat.setObject(i + 1, params[i]);
}
rs = stat.executeQuery();
while (rs.next()) {
obj = rowMapper.mapperRow(rs);
}
} catch (SQLException sqlException) {
//1.将异常转换为非强制捕获型异常
//不再打印异常,调用自定义异常显示详细信息
//sqlException.printStackTrace();
throw new DataAccessException(sqlException,"服务器正在升级,请稍后再试");
//2.将异常向上层抛出,并统一处理
}
设计出错页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>