📄 keycodefilter.java
字号:
package com.struts2.framework.filter;
import java.io.IOException;
import java.util.Random;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import com.struts2.framework.util.ImageServlet;
public class KeyCodeFilter implements Filter{
public void init(FilterConfig config) {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String randomCode = randomInt(4) + "";
request.setAttribute("randomCode",randomCode);
String key = ImageServlet.encode(randomCode);
request.setAttribute("key",key);
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
public void destroy() {
try {
this.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
}
public static final int randomInt(int length) {
if (length < 1 && length > 9)
throw new ArithmeticException(
"the length of random int must be between 0 and 9");
int sum = 0;
int n = 1;
int r = 0;
for (int i = 1; i < length; i++) {
r = randGen.nextInt(10);
sum += r * n;
n *= 10;
}
r = 1 + randGen.nextInt(9);
sum += r * n;
return sum;
}
private static Random randGen = new Random();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -