我有2个查询
1)我有一个login.jsp页面和索引页面。一旦我验证了用户(在servlet即check.java
中),用户被重定向到index.jsp页面。我使用这一行重定向它来自servlet
getServletContext().getRequestDispatcher("/WEB-INF/admin/index.jsp").forward(request, response);
此过程运行正常。但当我刷新页面时,我会被重定向回登录页面。
另外我注意到在index.jsp页面上我得到名称check
而不是index.jsp,即我的 servlet 名称被显示出来。例如像这样
显示localhost:8080/abc/check
而不是localhost:8080/abc/index.jsp
2)在索引页面上我有4个不同的div,当我使用jquery点击div时,我被重定向到一个页面(一种标签)但它不工作 这是我的代码<%
ServletContext sc=getServletContext();
URL resourceUrl = sc.getResource("/WEB-INF/admin/logindetails.jsp");
String path = resourceUrl.toString();
%>
$(document).ready(function(){
$('#wid7').click(function(){
var path = <%=path%>;
document.location.href=path;
});
});
我无法访问logindetails.jsp
这是我的结构
-Webcontent
--resources
---js
---css
--Web-Inf
---admin
----index.jsp
----logindetails.jsp
--login.jsp
答案 0 :(得分:1)
首先,请在不同的问题中询问不同的主题。所以:
1)getServletContext().getRequestDispatcher("/WEB-INF/admin/index.jsp").forward(request, response);
你的结构是这样的
login.jsp--(request)-->check.java--(forward(same request))-->index.jsp
表示你的index.jsp取决于来自login.jsp的请求,它不是一个单独的请求,这就是为什么它在URL中显示检查的原因当你在做刷新时,它会生成新的请求(不是来自login.jsp),这就是显示 login.jsp 的原因。
如果您想更改此行为,请使用 sendRedirect 而不是转发,然后在 check.java 之后创建新请求
修改:试试这个:
ServletContext sc=getServletContext();
URL resourceUrl = sc.getResource("/WEB-INF/admin/login.jsp");
String path = resourceUrl.toString();
response.sendRedirect(path);