【问题标题】:How can I display a confirmation message using Servlets如何使用 Servlet 显示确认消息
【发布时间】:2014-12-20 03:59:55
【问题描述】:

我想使用 JSP、JQuery 和 Servlet 将客户添加到数据库中。当数据库表中已经存在客户时,我想显示一条确认消息(客户已经存在。您确定要添加相同的客户吗?)。当客户不存在时,所有数据都写入表中,无需显示确认消息。

到目前为止我的 jquery 代码:

$('#myForm').submit(function() {

      var c = confirm("Customer have already. Are your sure you want to add the same customer?");
      return c;

});

还有我的 servlet:

   int i = 0;
   ArrayList<Customer> cus = CustomerDao.addcustomer("abc");
   i = cus.size();
   if(i > 0){
        statement;
    }else{
        statement ;
    }

当我单击提交按钮时,它总是显示确认消息。 当客户在数据库中不存在时,我不想显示确认消息。

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    您可以在提交时将 cookie 写入客户端,然后检查该 cookie 是否存在,如果没有,则显示消息,然后进行正常处理

    【讨论】:

    【解决方案2】:

    假设您有一个像 login.jsp 这样的 jsp,它发布到 servlet,例如myservlet 反过来调用一个方法来查询数据库。我会尝试以下方法:-

    1. 将用户提供的值发布到 servlet myservlet(发布方法)。现在在查询数据库并查找该用户是否已存在的方法上使用这些值。

    2.如果是,则使用 RequestDispatcher 到 login.jsp 。这次给出用户已经存在的消息。用户需要使用新用户名再次填写信息,再次发布值。

    1. 如果用户不存在,继续正常流程并创建用户。

    【讨论】:

    • 我了解您的回答。但是当客户已经存在时,我想通过显示确认消息来添加更多相同的客户,如果单击“是”可以插入相同的客户,如果单击“否”则取消
    • 好的...然后我建议使用 RequestDispatcher 转发到诸如 customerExists.jsp 之类的页面。这次询问用户他/她是否还想继续创建用户。如果是,那么继续插入它。如果没有,重定向到 login.jsp。
    • 但是,您必须确保您没有违反任何数据库唯一约束规则。如果您已将客户名称设为唯一,那么您肯定无法实现您在这里想要表达的内容。但是,如果用户名在您的数据库中没有被定义为唯一的,那么请继续,但要确保您有另一个属性来唯一地验证用户,例如为用户创建一个唯一的 id 或询问电子邮件并将其设为唯一字段。
    【解决方案3】:

    1)如果您使用 ajax 提交表单数据,您可以编写响应并显示相同的内容,例如:-

    //in servlet
    if(userExists)//dummycode
     response.getWriter().println("User already exists");
     //above will get displayed on your html/jsp page
    else
     //logic
    

    2) 如果你没有使用 ajax,你可以在 servlet 中的一个属性中编写你的响应,并在 jsp 中打印来自该属性的响应,例如:-

    //in servlet
    request.setAttribute("Response","User already exists");
    RequestDispatcher rd;
            rd = request.getRequestDispatcher("YourJSPpage");
            rd.forward(request, response);
    

    在jsp中

    <%
    String msg=request.getAttribute("Response");
    %>
    if(msg!=null){
    <p><%=msg%></p>
    }
    

    但由于不鼓励使用 jsp 中的 scriptlet,您可以使用 JSTL 标签,例如:-

    ${requestScope.Response} 
    

    【讨论】:

    • 这只是警告信息而不是确认是,否
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2016-09-24
    • 2021-05-02
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多