Jsp 如何将页面重定向到与当前url相同的url,并附加其他参数?
如果满足一些条件,我希望将代码重定向到url中带有额外参数的同一页面。我该怎么做 我尝试使用response.setHeader,但它不起作用Jsp 如何将页面重定向到与当前url相同的url,并附加其他参数?,jsp,servlets,redirect,Jsp,Servlets,Redirect,如果满足一些条件,我希望将代码重定向到url中带有额外参数的同一页面。我该怎么做 我尝试使用response.setHeader,但它不起作用 if(request.getParameter("lang")==null && UserProfileHelper.readCookie(request,"bha_code")!=null){ langCode=UserProfileHelper.readCookie(request,"bha_code"); if(la
if(request.getParameter("lang")==null && UserProfileHelper.readCookie(request,"bha_code")!=null){
langCode=UserProfileHelper.readCookie(request,"bha_code");
if(langCode!=null && langCode!="en")
{
String url=CafeUtils.getCurrentURLNonUFT8(request);
String[] urlNew = url.split(fullLailaURL);
url=fullLailaURL+"/"+langCode+urlNew[1];
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Refresh", url);
}
}
我希望浏览器中的url反映新的url
SC_MOVED_temporary=302这是错误的
response.setHeader("Refresh", url);
HTTP规范规定必须使用位置
标题字段
response.setHeader("Location", url);
甚至可以做得更简单。而不是两条线,
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Location", url);
您可以使用标准方法
另见其重点(我的):
使用指定的重定向位置URL向客户端发送临时重定向响应,并清除缓冲区。缓冲区将被此方法设置的数据替换。调用此方法将状态代码设置为SC_FOUND 302(FOUND)
检查
RequestDispatcher
是否可以完成此任务。@Vishrant:不,OP显然想发送重定向,而不是转发。OP明确使用了术语“重定向”,并明确声明“我希望浏览器中的url反映新的url。”。如果你不知道这意味着什么,那就去吧
response.sendRedirect(url);