Java Facelets错误页,因为响应已提交。jsf
我执行以下重定向:-Java Facelets错误页,因为响应已提交。jsf,java,jsp,jsf,Java,Jsp,Jsf,我执行以下重定向:- objExternalContext.redirect("http://blogger.blogdns.com:8080/Blogger/Common/LoginRequestProcessor.jsp;jsessionid=" + objHttpSession.getId() + "?j_username="+ userName + "&j_password=" + password + "&rememberMe=" + rememberMe);
objExternalContext.redirect("http://blogger.blogdns.com:8080/Blogger/Common/LoginRequestProcessor.jsp;jsessionid=" + objHttpSession.getId() + "?j_username="+ userName + "&j_password=" + password + "&rememberMe=" + rememberMe);
要查看LoginRequestProcessor.jsp页面,请执行以下操作:-
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JSP Page</title>
<script type="text/javascript">
window.onload = function(){
document.forms[0].submit();
}
</script>
</head>
<body style="background: black;">
<div style="color: white;">
<center><h1>Please wait login is being processed.</h1></center>
</div>
<%
//change session id because it gets lost while switching from https to http
System.out.println("Cookie in jsp " + request.getSession(true).getId());
%>
<form method="POST" action="j_security_check;jsessionid=<%= request.getSession(true).getId()%>" id ="frm">
<input type="hidden" name= "j_username" value="${param.j_username}"/>
<input type="hidden" name = "j_password" value="${param.j_password}"/>
<input style="display: none;" type="submit" value="Submit"/>
</form>
</body>
</html>
在浏览器中,我还看到了地址:-
http://blogger.blogdns.com:8080/Blogger/;jsessionid=a05bfc017aac39414876eccd38fe
没有页面名称(LoginRequestProcessor.jsp),没有用户名,没有密码。
更有趣的是,有时它是有效的!但80%的情况下,它会出现这种错误,并错误地重定向
有什么办法解决这个问题吗
Edit:-如果重定向时我没有传递jsessionid,它可以正常工作,但会话id会更改。如果我传递了jsessionid,我会得到上面的错误:(.正如错误所说,响应已经提交-这意味着HTTP状态代码和头已经发送到浏览器。因为已经发生了这种情况,所以发送重定向为时已晚 不幸的是,据我所知,没有办法重置响应 如果不知道如何调用
objExternalContext.redirect
,就很难给出更多建议
http://blogger.blogdns.com:8080/Blogger/;jsessionid=a05bfc017aac39414876eccd38fe