【发布时间】:2014-05-23 03:32:35
【问题描述】:
与我的问题所暗示的相反,我完全理解在 JSP 中包含任何形式的代码都是不正确的。但我有一个重要的任务要完成,这就是场景: 单击链接后,无论传递的参数是什么,都将被截断(出于安全原因),我需要在用户登录后以某种方式获取这些参数。我正在尝试使用会话来执行此操作.
我有四个 JSP 页面说:
- routing.jsp
- intermediateTarget.jsp
- login.jsp
- target.jsp
以及带有链接和一些参数的页面:
< a href="router.jsp?p1=s&p2=s123">Click here</a>
单击此按钮后,我将转到router.jsp,在那里我创建一个会话并获取传递的参数并将它们设置到会话中:
<% String param1 = request.getParameter("p1");
String param2 = request.getParameter("p2");
HttpSession session1 = request.getSession(true);
session1.setAttribute("p1", param1);
session1.setAttribute("p2", param2);
response.sendRedirect("intermediateTarget.jsp");
%>
router.jsp被执行onload所以它基本上被重定向到intermediateTarget.jsp。
这里,我使用 getAttribute 获取参数:
HttpSession session1 = request.getSession();
String param1 = (String) request.getAttribute("p1");
String param2 = (String) request.getAttribute("p2");
String param = request.getParameter("param");
String lgn = request.getParameter("lgn");
if (null != param) {
response.sendRedirect("empLogin.jsp");
} else if (null != lgn) {
response.sendRedirect("target.jsp");
}
我从登录页面和路由页面传递了两个隐藏参数,分别是lgn 和param。在检查请求来自哪个页面后,我需要将其重定向到target.jsp 或login.jsp。
基本上,登录后我只需要能够从会话中获取相同的参数并将其显示在目标页面上(就像确认我实际上能够获取我在链接中传递的参数一样。 )
同样,我不需要 servlet,因为这是我们需要从最终仅使用 JSP 包含的东西。
另外,我已经阅读了尝试提取? 之后的 URL 部分的内容,甚至还谈到了提取深层链接的概念,但我没有得到任何结果。
抱歉,如果帖子看起来太长。只是想清楚地了解我的情况,以及对此的任何其他想法将不胜感激。
提前非常感谢!
【问题讨论】:
标签: java jsp url-rewriting httpsession