Java 发布以获取重定向
在会话到期后的jsp页面上,如果用户执行某些DB操作,Post url HTTP状态显示为302,该状态应重定向到我的注销页面,但由于它是注销的GET调用,因此不会被重定向Java 发布以获取重定向,java,spring,jsp,http,Java,Spring,Jsp,Http,在会话到期后的jsp页面上,如果用户执行某些DB操作,Post url HTTP状态显示为302,该状态应重定向到我的注销页面,但由于它是注销的GET调用,因此不会被重定向 如何从POST Http状态302重定向到GET,或者有什么其他方法可以实现此目的?一些评论/建议: 当服务器以附加的方式响应时,它还发送一个位置头,浏览器读取该头并发出另一个GET请求 这就是它通常的工作方式。因此,请确保当您发送http302时,您也会发送一个Location头作为响应,然后浏览器会处理其余的事情 请
如何从POST Http状态302重定向到GET,或者有什么其他方法可以实现此目的?一些评论/建议:
- 当服务器以附加的方式响应时,它还发送一个
头,浏览器读取该头并发出另一个位置
请求李>GET
- 这就是它通常的工作方式。因此,请确保当您发送
时,您也会发送一个http302
头作为响应,然后浏览器会处理其余的事情李>Location
请注意,这里我冒昧地假设您可以更改发送
http302
的服务器端代码。如果不是这样,请告诉我 您可以使用如下会话筛选器:
public class SessionFilter implements Filter {
private ArrayList<String> urlList;
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String url = request.getServletPath();
boolean allowedRequest = false;
if(urlList.contains(url)) {
allowedRequest = true;
}
if (!allowedRequest) {
HttpSession session = request.getSession(false);
if (null == session) {
response.sendRedirect("index.jsp");
}
}
}
chain.doFilter(req, res);
}
}
公共类SessionFilter实现过滤器{
私有ArrayList URL列表;
公共空间销毁(){
}
公共无效doFilter(ServletRequest-req、ServletResponse-res、,
FilterChain链)抛出IOException、ServletException{
HttpServletRequest请求=(HttpServletRequest)请求;
HttpServletResponse=(HttpServletResponse)res;
字符串url=request.getServletPath();
布尔allowedRequest=false;
if(urlist.contains(url)){
allowedRequest=true;
}
如果(!allowedRequest){
HttpSession session=request.getSession(false);
if(null==会话){
sendRedirect(“index.jsp”);
}
}
}
链式过滤器(要求、恢复);
}
}
并在webl.xml中创建一个条目
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>
net.viralpatel.servlet.filter.SessionFilter
</filter-class>
<init-param>
<param-name>avoid-urls</param-name>
<param-value>index.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
会话过滤器
net.viralpatel.servlet.filter.SessionFilter
避免URL
index.jsp
会话过滤器
/*
或者通过在web.xml中放置以下条目来隐藏详细信息:
<error-page>
<error-code>302</error-code>
<location>/302ErrorPage.jsp</location>
</error-page>
302
/302ErrorPage.jsp
您可以使用,也可以查看您是否有servlet或使用Spring MVC的控制器?我使用的是Spring MVC