java - 如何将数据列表值从jsp传递到servlet

标签 java jsp

我编写了一个jsp文件和servlet。在jsp中,我在表单中使用了数据列表。我想将用户输入传递给servlet。我已经发布了下面的代码。

jsp代码

 <form  action="NewServlet1" method="Post" >
<center>
        <input type="text" name="website" list="website" placeholder="Enter your website">
        <datalist id="website">
        <option value="https://www.google.lk/">GOOGLE</option>
        <option value="https://www.yahoo.com/">YAHOO</option>
        <option value="https://www.hackerrank.com/">HACKER RANK</option>

        </datalist><br><br><br>

    </center></form>

     <div style="width: 400px; height: 400px">
        <canvas id="myChart" width="1000" height="1000" ></canvas>
    </div>
<center> <div>
       <button id="button1"  name="button1" onclick="submit()" class="btn btn-primary">submit</button>
    </div></center>
    <script>
        function Test(today, time) {
            var ctx = new Chart(document.getElementById("myChart")

            , {

                type: 'line',
                data: {
                    labels: today,
                    datasets: [{
                            data: time,
                            label: "Web Service 1",
                            borderColor: "red",
                            fill: false
                        }
                    ]
                },
                options:
                        {
                            scales: {xAxes: [{display: true, scaleLabel: {display: true, labelString: 'date and time'}}], yAxes: [{display: true, ticks: {beginAtZero: true, steps: 100, stepValue: 50, max: 6000}}]},

                            hover: {intersect: false },
                            title: {display: true, text: 'response time of selected website'},
                              tooltips: { mode: 'nearest'}

                        }
            });
}
function submit()
{

    $.post("NewServlet1",
            {

            },
            function (data)
            {

                Test(data.today, data.time);
            });
}

servlet 代码

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

       response.setContentType("text/html;charset=UTF-8");

       String website = (String)request.getParameter("website");

但这不起作用。有人可以帮我解决这个问题吗?

最佳答案

首先,您需要将表单提交到路径映射到NewServlet1的servlet

<form  action="NewServlet1" method="Get" >
    <center>
            <input type="text" name="website" placeholder="Enter your website">
            <datalist id="website">
            <option value="https://www.google.lk/">GOOGLE</option>
            <option value="https://www.yahoo.com/">YAHOO</option>
            <option value="https://www.hackerrank.com/">HACKER RANK</option>

            </datalist>
    </center>
        <%
        String website= request.getParameter("website"); // it is not needed
        request.setAttribute("website",website);         // it is not needed
        %>
    <input type="submit"/> <!--need to add submit button to submit it to the servlet-->
</form>

现在您的 servlet 代码就很好了:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    String website = (String)request.getParameter("website");
}

注意:需要在website文本框中写入一些值

或者,如果您想获取先前存储在request对象中的attribute,则使用RequestDispatcher

关于java - 如何将数据列表值从jsp传递到servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44797973/

相关文章:

java - java 中非默认语言环境的 NumberFormat 解析不正确

c# - 如何在C# winforms控件上嵌入Java控件?

java - @Mock 注释不适用于对象映射器

java - 如何在 JSF 标记中操作字符串?

jquery - 使用 JQuery 自动刷新内容而不重新加载页面?

java - 如何在 Google App Engine (Java) 中访问图像中的各个像素?

java - 如何使用 Dom4j 测试元素的 CDATA 值?

java - 将字节数组转换为PDF并在JSP页面中显示

java - 将 "Localhost2"指向 tomcat 中的新文件夹

java - 如何将表单从html文件提交到java文件?