JSP sendRedirect返回不起作用

时间:2016-12-15 18:06:30

标签: java html jsp

首先,请查看我的页面InterFace of My WebSite IMAGE

我将文件 index.jsp 与参数视图一起使用(视图是我希望它在{{1中显示的jsp文件的路径作为iframe。我在Enum中声明所有 view ,如:

<jsp:include>

在我的 index.jsp

public enum FView {
    HomePage, LogIn, SignUp, Profile, UpdateProfile
}

在我的 main.jsp

<%
String viewParam = request.getParameter("view");
if (viewParam == null)
    viewParam = "HomePage";
FView f = FView.valueOf(viewParam);

String pageToView = "";
switch (f)
{
    case HomePage:
        pageToView = "page/viewArticles.jsp";
        break;
    case LogIn:
        pageToView = "login.jsp";
        break;
    case Profile:
        pageToView = "page/viewProfile.jsp";
        break;
    default:
        pageToView = "../login.jsp";
        break;
}%>
<jsp:include page="main.jsp">
    <jsp:param name="page" value="<%= pageToView %>
</jsp:include>

我有一个页面显示用户的个人资料 index.jsp?view =个人资料(文件的路径是 WebContent / page / viewProfile.jsp ) 。我希望当我在没有登录的情况下访问此页面时,它会重定向到我的登录页面 index.jsp?view = LogIn (文件的路径是 WebContent / login.jsp )。这是代码:

<div id="header"></div> <!-- <jsp:include> header here, I don't mention all of it.-->
<div id="content">
      <jsp:include page="<%= request.getParameter("page")%>"/> //RED RECTANGLE HERE
</div>
<div id="footer"></div>

知道 usernameFromSession 为空。当我重新加载页面时,它显示一个白页,甚至没有p标签。当我删除 return 时,它会显示“个人资料”页面的内容(上面的p标签)。 但是如果我使用原始路径:<% Object user_session = session.getAttribute("user_session");; String usernameFromSession = null; if (user_session != null) usernameFromSession = user_session.toString(); else { response.sendRedirect("index.jsp?view=LogIn");//any url return; }%> <p>This is the profile page</p> 而不是localhost:8088:......./page/viewProfile.jsp,它就可以了。那我怎么解决呢?

1 个答案:

答案 0 :(得分:0)

请发布完整的代码。如何获取会话并将user_session属性传递给会话? 您还希望从代码中获得哪种行为?

sendRedirect应为

response.sendRedirect("http://google.com");