首先,请查看我的页面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
,它就可以了。那我怎么解决呢?
答案 0 :(得分:0)
请发布完整的代码。如何获取会话并将user_session属性传递给会话? 您还希望从代码中获得哪种行为?
sendRedirect应为
response.sendRedirect("http://google.com");