1.使用jsp页面打印99乘法表
2.实现一个IP过滤器,比如本地有localhost、127.0.0.1、还有局域ip地址,随便一个加入黑名单来测试
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.io.*;
import java.util.HashSet;
import java.util.Set;
@WebListener
public class InitListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
InputStream inputStream = InitListener.class.getClassLoader().getResourceAsStream("black_list.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
Set<String> blackList = new HashSet<>();
String str = null;
try {
while ((str = bufferedReader.readLine()) != null){
blackList.add(str);
}
}catch (IOException e) {
e.printStackTrace();
}
servletContextEvent.getServletContext().setAttribute("black",blackList);
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
}
}
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Set;
@WebFilter("/*")
public class GlobalFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
resp.setContentType("text/html;charset=utf-8");
if(isBlackList(request)){
response.getWriter().println("您当前访问的页面忙,请下辈子再来......");
return;
}
chain.doFilter(request, response);
}
/**
* 可以将listener和filter一起联系起来使用
* listener读取黑名单列表,形成一个集合,放到context域中
* filter取出来进行比对
* @param request
* @return
*/
private boolean isBlackList(HttpServletRequest request) {
Set<String> black = (Set<String>) request.getServletContext().getAttribute("black");
if(black.contains(request.getRemoteAddr())){
return true;
}
return false;
}
public void init(FilterConfig config) throws ServletException {
}
}