bưu kiện
Lọc;
nhập khẩu
javax.servlet.*;
nhập khẩu
javax.servlet.http.HttpServletRequest;
nhập khẩu
javax.servlet.http.HttpServletRequestWrapper;
nhập khẩu
javax.servlet.http.HttpServletResponse;
nhập khẩu
java.io.IOException;
nhập khẩu
java.io.UnsupportedEncodingException;
nhập khẩu
java. util. Bản đồ;
công cộng
lớp học
Bộ lọc mã hóa chung
thực hiện
Lọc {
công cộng
vô hiệu
hủy hoại() {
}
công cộng
vô hiệu
doFilter(yêu cầu ServletRequest, phản hồi ServletResponse, chuỗi FilterChain)
ném
Ngoại lệ IO, Ngoại lệ Servlet {
HttpServletResponse myResponse=(HttpServletResponse) phản hồi;
myResponse.setContentType(
"text/html;charset=UTF-8"
);
HttpServletRequest httpServletRequest = (HttpServletRequest) yêu cầu;
HttpServletRequest yêu cầu của tôi =
mới
Yêu cầu của tôi(httpServletRequest);
chain.doFilter(yêu cầu của tôi, phản hồi);
}
công cộng
vô hiệu
init(Cấu hình bộ lọcCấu hình bộ lọc)
ném
Ngoại lệ Servlet {
}
}
lớp học
Yêu cầu của tôi
mở rộng
HttpServletRequestWrapper {
riêng tư
Yêu cầu HttpServletRequest;
riêng tư
Boolean
hasEncode;
công cộng
MyRequest(yêu cầu HttpServletRequest) {
siêu
(lời yêu cầu);
cái này
.request = yêu cầu;
}
công cộng
Bản đồ getParameterMap() {
Phương thức chuỗi = request.getMethod();
nếu như
(phương pháp.equalsIgnoreCase(
"bưu kiện"
)) {
thử
{
yêu cầu.setCharacterEncoding(
"utf-8"
);
trở lại
yêu cầu.getParameterMap();
}
nắm lấy
(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
khác
nếu như
(phương pháp.equalsIgnoreCase(
"lấy"
)) {
Bản đồ tham sốMap = yêu cầu.getParameterMap();
nếu như
(!hasEncode) {
vì
(Chuỗi tham sốName: parameterMap.keySet()) {
String[] giá trị = parameterMap.get(parameterName);
nếu như
(giá trị !=
vô giá trị
) {
vì
(
số nguyên
tôi =
0
; i < giá trị.chiều dài; i++) {
thử
{
giá trị[i] =
mới
Chuỗi(giá trị[i]
.getBytes(
"ISO-8859-1"
),
"utf-8"
);
}
nắm lấy
(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
}
hasEncode =
ĐÚNG VẬY
;
}
trở lại
tham sốMap;
}
trở lại
siêu
.getParameterMap();
}
công cộng
Chuỗi getParameter(Tên chuỗi) {
Bản đồ tham sốMap = getParameterMap();
String[] giá trị = parameterMap.get(tên);
nếu như
(giá trị ==
vô giá trị
) {
trở lại
vô giá trị
;
}
trở lại
giá trị[
0
];
}
công cộng
String[] getParameterValues(Tên chuỗi) {
Bản đồ tham sốMap = getParameterMap();
String[] giá trị = parameterMap.get(tên);
trở lại
giá trị;
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!