简体   繁体   English

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

[英]how to pass datalist values from jsp to servlet

I have written a jsp file and servlet .In jsp I have used data list inside a form .And I want to pass that user input to the servlet.I have posted the code below. 我已经编写了一个jsp文件和servlet。在jsp中,我使用了表单内的数据列表。我想将该用户输入传递给servlet。我在下面发布了代码。

jsp code 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 code servlet代码

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

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

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

But this is not working.Can someone help me to solve this? 但这不起作用,有人可以帮我解决这个问题吗?

First of all you need to submit the form to the servlet which path is mapped to NewServlet1 首先,您需要将表单提交到servlet,该路径已映射到NewServlet1

<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>

Now your servlet code is fine which is: 现在,您的servlet代码很好:

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

Note : Need to write some value in website text box 注意:需要在website文本框中写一些值

Or if you want to get attribute which previously stored in request object then use RequestDispatcher . 或者,如果您想获取先前存储在request对象中的attributerequest使用RequestDispatcher

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM