首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用servlet通过2个表单发送变量

使用servlet通过2个表单发送变量
EN

Stack Overflow用户
提问于 2012-02-25 06:56:16
回答 1查看 391关注 0票数 0

我遇到了两个servlet的问题。基本上我得到了一个jsp页面的表单,当我点击提交,我需要得到所有的变量从这个jps,以便注入到第二个上(输入type=“隐藏”),为最终提交所有一起。

我的servlet 1(添加客户端)

代码语言:javascript
复制
    @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    System.out.println("salut 1  ");
    request.getRequestDispatcher("/JSP/Template/BankAdvisor/AddClient.jsp").forward(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String firstname = request.getParameter("firstname");
    String lastname = request.getParameter("lastname");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    String city = request.getParameter("city");
    String zipcode = request.getParameter("zipcode");
    String phone = request.getParameter("phone");

    if (firstname != null && lastname != null && email != null && address != null && city != null && zipcode != null && phone != null) {

        if (!lastname.isEmpty() && !firstname.isEmpty() && !email.isEmpty() && !address.isEmpty() && !city.isEmpty() && !zipcode.isEmpty() && !phone.isEmpty()) {

            request.setAttribute("firstname", firstname);
            request.setAttribute("lastname", lastname);
            request.setAttribute("email", email);
            request.setAttribute("address", address);
            request.setAttribute("city", city);
            request.setAttribute("zipcode", zipcode);
            request.setAttribute("phone", phone);
            request.getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);

        } else {

            response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
        }

    } else {

        response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
    }

}

我的servlet 2(添加帐户)

代码语言:javascript
复制
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    request.getRequestDispatcher("/JSP/Template/BankAdvisor/AddAccount.jsp").forward(request, response);
    String firstname = request.getParameter("firstname");
    String lastname = request.getParameter("lastname");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    String city = request.getParameter("city");
    String zipcode = request.getParameter("zipcode");
    String phone = request.getParameter("phone");
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String firstname = request.getParameter("firstname");
    String lastname = request.getParameter("lastname");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    String city = request.getParameter("city");
    String zipcode = request.getParameter("zipcode");
    String phone = request.getParameter("phone");

    //The two news variables
    String accountName = request.getParameter("accountname");
    String accountType = request.getParameter("accounttype");

    if (firstname != null && lastname != null && email != null && address != null && city != null && zipcode != null && phone != null) {

        if (!lastname.isEmpty() && !firstname.isEmpty() && !email.isEmpty() && !address.isEmpty() && !city.isEmpty() && !zipcode.isEmpty() && !phone.isEmpty()) {

         // ACTION 
        } else {
            response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
        }

   } else {
 response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
   }
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-25 07:05:45

在servlet 1中,您应该使用:

代码语言:javascript
复制
getServletContext().getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);

而不是:

代码语言:javascript
复制
request.getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);

因为对于ServletRequest#getRequestDispatcher(java.lang.String),如果路径以"/“开头,它将被解释为相对于当前上下文根(即当前请求的上下文路径)。

  • 示例:如果您在http://test/myapp/toto上收到请求,它将在http://test/myapp/toto/BankAdvisor/AddAccount

上转发

而对于ServletContext#getRequestDispatcher(java.lang.String),路径被解释为相对于当前上下文根(即,当前web应用的上下文路径)。

  • 示例:如果您在http://test/myapp/toto上收到请求,如果webapp上下文根是http://test/myapp

,则它将在http://test/myapp/BankAdvisor/AddAccount上转发

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9439212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档