Java 使用来自servlet的重定向

Java 使用来自servlet的重定向,java,servlets,Java,Servlets,我正在使用servlet为我的web应用程序引入一个登录页面。但一旦我登录并单击“提交”按钮,我应该被重定向到另一个页面。我该怎么做?我目前正在尝试使用 RequestDispatcher rd = null; rd = getServletContext().getRequestDispatcher("/NextServlet"); rd.forward(request, response); 也试过用 response.sendRedirect("http://localhost:8080

我正在使用servlet为我的web应用程序引入一个登录页面。但一旦我登录并单击“提交”按钮,我应该被重定向到另一个页面。我该怎么做?我目前正在尝试使用

RequestDispatcher rd = null;
rd = getServletContext().getRequestDispatcher("/NextServlet");
rd.forward(request, response);
也试过用

response.sendRedirect("http://localhost:8080/myProject/NextServlet");

但在点击提交时什么也没发生,我不想包含带有href和use的链接。我该怎么办?

我认为您需要在重定向URL中添加
contextPath
,如下所示:

  String destinationURL = request.getContextPath()+"/NextServlet";
  RequestDispatcher rd = getServletContext().getRequestDispatcher(destinationURL);
  rd.forward(request, response);

我认为您需要在重定向URL中添加
contextPath
,如下所示:

  String destinationURL = request.getContextPath()+"/NextServlet";
  RequestDispatcher rd = getServletContext().getRequestDispatcher(destinationURL);
  rd.forward(request, response);
试试这个

response.sendRedirect("NextServlet");
试试这个

response.sendRedirect("NextServlet");
您是否已将表单的“操作”设置为html格式

<form action="your_jsp_script.jsp" method="post">

您是否已将表单的“操作”设置为html格式

<form action="your_jsp_script.jsp" method="post">



您是想查看java服务器页面还是servlet的内容?如果您想访问这个
NextServlet
,至少要确保这个servlet打印任何HTML代码或转发/重定向到JSP。我已经更新了答案。。请检查您是否在web.xml中提到了此路径?是的,我在我的NextServlet中包含了一个简单的hhtml代码,并且在我的web.xml RequestParamExample com.xyz.RequestParamExample RequestParamExample/*RequestParamExample是我包含dispatcher的servlet正如在第一篇文章中所说的,您是想查看java服务器页面还是servlet的内容?如果您想访问这个
NextServlet
,至少要确保这个servlet打印任何HTML代码或转发/重定向到JSP。我已经更新了答案。。请检查您是否在web.xml中提到了此路径?是的,我在我的NextServlet中包含了一个简单的hhtml代码,并且在我的web.xml RequestParamExample com.xyz.RequestParamExample RequestParamExample/*RequestParamExample是我包含dispatcher的servlet正如在第一个postpath中所说,它本身包含上下文路径,我只提供了一个request dispatcherNot Descience的替代方案,您甚至需要使用
Response\encodeRedirectURL
,如下所示:。当您需要对url进行编码时,它是必需的,否则您可以直接发送到该url让我们以任何url为例。。。response.sendRedirect(“);…试试itOk,怎么样";?路径本身包含上下文路径,我只提供了一个替代方法来请求dispatcherNot Essential,您甚至需要使用
Response\encodeRedirectURL
,如下所示:。当您需要对url进行编码时,它是必需的,否则您可以直接发送到该url让我们以任何url为例。。。response.sendRedirect(“);…试试itOk,关于
path=“somePage.jsp”
?是的@sifeng,我提到了这个操作,但我链接它调用了一个html页面而不是jsp页面!我错了吗?中的脚本““将在您单击“提交”按钮时执行。如果它只是一个html页面,什么也不会发生。嗨,一旦我更改为,我会被重定向到某个页面,但它是空的,只有out.prinltn()语句可见…我的jsp文件如下:iPTS欢迎使用iPTS!再说一次,我错在哪里?是的@sifeng,我已经提到了这个动作,但是我已经链接它来调用html页面,而不是jsp页面!我错了吗?单击“提交”按钮时,将执行“”中的脚本。如果它只是一个html页面,什么也不会发生。嗨,一旦我更改为,我会被重定向到某个页面,但它是空的,只有out.prinltn()语句可见…我的jsp文件如下:iPTS欢迎使用iPTS!再说一遍,我错在哪里?@blackhole当你说“不工作”时,发生了什么?您是否收到一些信息/错误?另外,您是否确定,由于我怀疑问题出在其他地方,它会到达此代码?我不会重定向到该页面,而是会停留在同一页面中,但用户名和密码字段会重置。我也没有任何错误。我试图增加我的log4j错误记录,但无法追踪我的怀疑,它没有达到那里。您能分享更多的代码吗?我现在收到如下错误:org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:219)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)上的线程“http-bio-8080-exec-4”java.lang.stackOverflower中出现异常org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)@blackhole你能看一下堆栈跟踪中的哪一行代码(它将有你的一个类的名称)导致了这个溢出错误吗?@blackhole当你说“不工作”时,发生了什么?您是否收到一些信息/错误?另外,您是否确定,由于我怀疑问题出在其他地方,它会到达此代码?我不会重定向到该页面,而是会停留在同一页面中,但用户名和密码字段会重置。我也没有任何错误。我试图增加我的log4j错误记录,但无法追踪我的怀疑,它没有达到那里。您能分享更多的代码吗?我现在收到如下错误:org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:219)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)上的线程“http-bio-8080-exec-4”java.lang.stackOverflower中出现异常org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)@黑洞你能在堆栈轨迹中看一看,看一下是什么吗