package com.imooc.book.filter;
import java.io.IOException;
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EncodeFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request;
req.setCharacterEncoding("UTF-8");
HttpServletResponse res = (HttpServletResponse)response;
res.setContentType("text/html;charset=UTF-8");
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
package com.imooc.book.filter;
import java.io.IOException;
import java.util.List;
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.imooc.book.entity.User;
public class AuthFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String name = req.getParameter("username");
System.out.println(name);
String password = req.getParameter("password");
System.out.println(password);
List users = (List) req.getServletContext().getAttribute("users");
boolean flag=false ;
for(User user : users) {
System.out.println(user);
if(user.getName().equals(name) && user.getPassword().equals(password)) {
flag = true;
break;
}
}
if(flag) {
System.out.println("登录成功");
chain.doFilter(request, response);
}else {
System.out.println("登录失败");
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
package com.imooc.book.listeter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.imooc.book.entity.User;
import com.imooc.book.utils.XmlDataSource;
public class InitListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
List users = new ArrayList();
users = XmlDataSource.getUsers();
for(User user : users) {
System.out.println(user);
}
sce.getServletContext().setAttribute("users", users);
System.out.println("ServletContext已经启动");
}
}
com.imooc.book.listeter.InitListener
AuthFilter
com.imooc.book.filter.AuthFilter
EncodeFilter
com.imooc.book.filter.EncodeFilter
AuthFilter
/login.do
EncodeFilter
/*
在这里输入代码,可通过选择【代码语言】突出显示