【问题标题】:Call Servlet Get method from another Servlet Post Method?从另一个 Servlet Post 方法调用 Servlet Get 方法?
【发布时间】:2015-08-28 12:18:23
【问题描述】:

我有包含 Get 和 Post 方法的 ServletDemo1.java 类。 而且我有包含 Get 方法的 ServletDemo2.java 类。

有两个jsp文件:- demo1.jsp(有表单布局)和demo2.jsp(只是为了显示“欢迎”)。

这是 ServletDemo1.java 如下:-

@WebServlet("/demo1")
public class ServletDemo1 extends HttpServlet {
private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   request.getRequestDispatcher("demo1.jsp").include(request, response);    
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("-------demo 1request post-------");
    String name = request.getParameter("userName");
    String pwd = request.getParameter("userPass");
    System.out.println("-------name-------> "+name);
    System.out.println("-------pwd-------> "+pwd);
    response.sendRedirect("demo2/?userName="+name+"&&pwd="+pwd);
 } 
}

ServletDemo2.java如下:-

@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("-------demo2 request get-------");
    request.getRequestDispatcher("demo2.jsp").include(request, response);
 }
}

执行以下步骤:-

  1. 我加载了调用 ServletDemo1.java url 的 demo1.jsp 页面。

  2. 在demo1.jsp中填写用户名和密码,登录按钮为
    点击。

  3. 调用 ServletDemo1.java 类 Post 方法并在浏览器中调用它 给出 404 not found 错误。

我想使用 ServletDemo2.java 的 Get 方法加载 demo2.jsp 页面

我怎样才能做到这一点?

【问题讨论】:

  • 你试过response.sendRedirect("/demo2/#userName="+name+"&&pwd="+pwd); 我猜路径不正确。尝试添加/
  • 是的,我试过了,但仍然报同样的错误。
  • 你为什么使用# ??你是说?试试response.sendRedirect("/demo2?userName="+name+"&&pwd="+pwd);

标签: java spring jsp servlets


【解决方案1】:

试试这个

response.sendRedirect(req.getContextPath()+"/demo2/?userName="+name+"&&pwd="+pwd);

还要注意一些容器(例如 Tomcat)在请求分派时存在编码问题/错误,如果可能,请尝试使用客户端重定向。

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多