Jsp 如何将页面重定向到与当前url相同的url,并附加其他参数?

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

如果满足一些条件,我希望将代码重定向到url中带有额外参数的同一页面。我该怎么做

我尝试使用response.setHeader,但它不起作用

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);