1
私はJavaフィルタの概念を使用して保護する必要があるmvc Webアプリケーションを持っています。 私がログインしていない場合、アプリケーションは私をログインページに連れて行き、私がログインしている場合、アプリケーションはログインページにアクセスできないようにする必要があります。以下はユーザがログインしているかどうかを確認するための適切なフィルタ実装
は以下 ホームページのURLは/家庭(home.jspを)あなたが使用することができます
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/LoginFilter")
public class LoginFilter implements Filter {
private RequestDispatcher dispatcher;
public LoginFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse res=(HttpServletResponse) response;
HttpSession session=req.getSession(false);
String reqUri=req.getRequestURI();
System.out.println("RequestURI:"+reqUri);
if(session!=null && session.getAttribute("user")!=null){
if(reqUri.equals("login")){
System.out.println("you are already logged in");
dispatcher=request.getRequestDispatcher("/home");
dispatcher.forward(req, res);
return;
}
else{
chain.doFilter(request, response);
}
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
正確にはどういうことでしょうか? –
'reqUri.equals(" login ")' reqUri = req.getRequestURI(); '...あなたのコードに従って、それが何であるかを理解してください。 – KarelG