JSp

从mysql数据库检索下拉列表并插入到jsp数据库中

发布于 2021-02-01 16:33:24

这件事真的让我感到困扰。如何从MySQL数据库获取下拉列表,然后将其提交到JSP中的另一个表。我只知道如何使用html创建静态下拉列表,但是如何使它动态化。我正在考虑一种链接到Servlet的形式,该Servlet连接到数据库并从数据库表中获取字符串数组,然后将其发送到JSP以填充选项,并且在提交选项时,它将发送到然后将servlet插入数据库。有人请给我一些可以做到这一点的示例代码。最具体地说,我需要标记中使用的JSP代码和从Servlet发送的代码。我已经与Google核实过,但没有明确的答案。希望我在这里得到答案

关注者
0
被浏览
237
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    你说得差不多了。要从数据库获取下拉列表值,您应该首先调用执行预处理工作的servlet,然后让servlet显示带有下拉列表的JSP。

    由于普通的HTTP请求(单击链接,书签或在地址栏中输入URL)会按定义触发GET请求,因此您希望在该doGet()方法中完成这项工作。这是一个以a的形式获取下拉值的示例List<Product>

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Product> products = productService.list();
        request.setAttribute("products", products); // It'll be available as ${products}.
        request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
    }
    

    在其中/WEB-INF/products.jsp可以显示如下:

    <form action="order" method="post">
        <select name="productId">
            <c:forEach items="${products}" var="product">
                <option value="${product.id}">${product.name}</option>
            </c:forEach>
        </select>
        <input type="submit" value="Order" />
    </form>
    

    将此servlet映射到的URL模式,/products并通过http://example.com/context/products调用它。它将从数据库加载产品,将其存储在请求范围内,再转发给JSP以使其呈现。

    提交表单时,将调用doPost()映射到URL模式的servlet
    的方法/order。提交HTML表单时,name=value每个输入元素对都可以用作HTTP请求参数。因此,您可以获得产品ID,如下所示:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String productId = request.getParameter("productId");
        // ... do your job here to insert the data.
    
        request.getRequestDispatcher("/WEB-INF/someresult.jsp").forward(request, response);
    }
    


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看