不是用response.sendRedirect()的吗?为什么这个程序中非要用HttpServletResponse.sendRedirect()不可呢?package servletproject;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;import java.io.IOException;
import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2011</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/public class ServletFilterTest implements Filter {
String LOGIN_PAGE = "login_signon.jsp";
protected FilterConfig filterConfig;
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
}
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse)response;
HttpSession session = hreq.getSession();
String isLogin = "";
try {
isLogin = (String)session.getAttribute("isLogin");
if(isLogin.equals("true")) {
System.out.println("在 SignonFilter 中验证通过");
chain.doFilter(request, response);
}
else {
System.out.println("被 SignonFilter 拦截一个未认证的请求");
hres.sendRedirect(LOGIN_PAGE);
}
} catch(Exception e) {
e.printStackTrace();
}
}
public void destroy() {
this.filterConfig = null;
}
public void setFilterConfig(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
其他的都不行
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;import java.io.IOException;
import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2011</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/public class ServletFilterTest implements Filter {
String LOGIN_PAGE = "login_signon.jsp";
protected FilterConfig filterConfig;
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
}
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse)response;
HttpSession session = hreq.getSession();
String isLogin = "";
try {
isLogin = (String)session.getAttribute("isLogin");
if(isLogin.equals("true")) {
System.out.println("在 SignonFilter 中验证通过");
chain.doFilter(request, response);
}
else {
System.out.println("被 SignonFilter 拦截一个未认证的请求");
hres.sendRedirect(LOGIN_PAGE);
}
} catch(Exception e) {
e.printStackTrace();
}
}
public void destroy() {
this.filterConfig = null;
}
public void setFilterConfig(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
其他的都不行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货