这是一个java web应用程序,在.jsp文件中我有:
<form method="post" action="<% out.print(response.encodeRedirectURL(request.getContextPath()+"/target.do")); %>"
accept-charset="utf-8">
<label for="name">
<input type="text" name="name" id="name"/>
</label>
<input type="submit">
</form>
target.do映射到doPost所在的servlet:
HttpSession session = httpServletRequest.getSession();
session.setAttribute("sessionName",httpServletRequest.getParameter("name"));
httpServletResponse.sendRedirect(getServletContext().getContextPath()+"/target.jsp");
在target.jsp中我只显示名称:
Your Http Session name is:
<%
String sessionName = (String) request.getSession().getAttribute("sessionName");
out.print(sessionName);
%>
但是,当禁用cookie时,这将无效。我不想使用.forward我需要使用sendRedirect。
将应用程序部署到Tomcat。
将名称放在请求属性中是一种可能的解决方案,但我实际上在寻找URL编码,但我无法实现它?
编辑:encodeURL而不是encodeRedirectURL也不起作用。
答案 0 :(得分:0)
我会回答我自己的问题:
This worked:
httpServletResponse.sendRedirect(httpServletResponse.encodeRedirectURL(getServletContext().getContextPath()+"/target.jsp"));
并且在.jsp文件中编码...部分不是必需的..