提交HTML表单时如何将数据从JSP传输到servlet

提交HTML表单时如何将数据从JSP传输到servlet

我有一个带有HTML表单的JSP页面:

<form action="SERVLET">
    <input type="text" name="name"/><br>        
    <input type="text" name="group"/>
    <input type="text" name="pass"/>
    <input type="submit" value="submit">            </form>

如何在servlet中获取这些数据并将它们添加到数据库中?


紫衣仙女
浏览 2236回答 3
3回答

青春有我

创建一个扩展HttpServlet然后放@WebServlet包含servlet应该侦听的URL的注释。@WebServlet("/yourServletURL")public&nbsp;class&nbsp;YourServlet&nbsp;extends&nbsp;HttpServlet&nbsp;{}就让<form action>&nbsp;点到这个URL。我也会推荐对非幂等请求使用POST方法。您应该确保您已经指定了nameHTML表单输入字段的属性(<input>,&nbsp;<select>,&nbsp;<textarea>和<button>)。这表示HTTP请求参数名。最后,您还需要确保感兴趣的输入字段包含在所需的表单中,因此不包含在外部。以下是一些不同的例子HTML表单输入字段:<form&nbsp;action="${pageContext.request.contextPath}/yourServletURL"&nbsp;method="post"> &nbsp;&nbsp;&nbsp;&nbsp;<p>Normal&nbsp;text&nbsp;field.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="text"&nbsp;name="name"&nbsp;/></p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Secret&nbsp;text&nbsp;field.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="password"&nbsp;name="pass"&nbsp;/></p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Single-selection&nbsp;radiobuttons.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="radio"&nbsp;name="gender"&nbsp;value="M"&nbsp;/>&nbsp;Male&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="radio"&nbsp;name="gender"&nbsp;value="F"&nbsp;/>&nbsp;Female</p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Single-selection&nbsp;checkbox.&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="checkbox"&nbsp;name="agree"&nbsp;/>&nbsp;Agree?</p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Multi-selection&nbsp;checkboxes.&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="checkbox"&nbsp;name="role"&nbsp;value="USER"&nbsp;/>&nbsp;User&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="checkbox"&nbsp;name="role"&nbsp;value="ADMIN"&nbsp;/>&nbsp;Admin</p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Single-selection&nbsp;dropdown.&nbsp;&nbsp;&nbsp;&nbsp;<select&nbsp;name="countryCode"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="NL">Netherlands</option> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="US">United&nbsp;States</option> &nbsp;&nbsp;&nbsp;&nbsp;</select></p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Multi-selection&nbsp;listbox.&nbsp;&nbsp;&nbsp;&nbsp;<select&nbsp;name="animalId"&nbsp;multiple="true"&nbsp;size="2"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="1">Cat</option> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="2">Dog</option> &nbsp;&nbsp;&nbsp;&nbsp;</select></p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Text&nbsp;area.&nbsp;&nbsp;&nbsp;&nbsp;<textarea&nbsp;name="message"></textarea></p> &nbsp;&nbsp;&nbsp;&nbsp;<p>Submit&nbsp;button.&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="submit"&nbsp;name="submit"&nbsp;value="submit"&nbsp;/></p></form>创建一个doPost()方法,该方法以请求参数的形式获取提交的输入值,该参数由输入字段的name(不&nbsp;id!)。你可以用request.getParameter()从单值字段获得提交的值,并且request.getParameterValues()若要从多值字段获取提交的值,请执行以下操作。@Overrideprotected&nbsp;void&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;request.getParameter("name"); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;pass&nbsp;=&nbsp;request.getParameter("pass"); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;gender&nbsp;=&nbsp;request.getParameter("gender"); &nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;agree&nbsp;=&nbsp;request.getParameter("agree")&nbsp;!=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;roles&nbsp;=&nbsp;request.getParameterValues("role"); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;countryCode&nbsp;=&nbsp;request.getParameter("countryCode"); &nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;animalIds&nbsp;=&nbsp;request.getParameterValues("animalId"); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;message&nbsp;=&nbsp;request.getParameter("message"); &nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;submitButtonPressed&nbsp;=&nbsp;request.getParameter("submit")&nbsp;!=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;...}必要时做一些验证最后,按照通常的方式将其保存在DB中。JDBC/道方式,道路。User&nbsp;user&nbsp;=&nbsp;new&nbsp;User(name,&nbsp;pass,&nbsp;roles);userDAO.save(user);另见:HTML初学者教程我们的servlet wiki页面Servlet中的doGet和doPost如何在JSP中特定按钮的单击/提交事件上调用特定的Java方法?如何在JSP中以相同的形式执行验证和显示错误消息?在向servlet提交表单后,如何在JSP中保留HTML表单字段值?如何使用JSP/Servlet将文件上传到服务器?使用MVC和DAO模式在JSP页面中显示JDBCResultSetservlet返回“HTTP状态404请求的资源(/servlet)不可用”

潇潇雨雨

好吧,有大量的数据库教程在线为java(您正在寻找的是所谓的JDBC)。但是,如果您使用的是普通servlet,则将有一个类扩展HttpServlet在它里面,您将有两个看起来像public&nbsp;void&nbsp;doPost(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp){}和public&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp){}其中一个被调用来处理GET操作,另一个操作用于处理POST行动。然后使用HttpServletRequest对象获取作为表单一部分传递的参数,如下所示:String&nbsp;name&nbsp;=&nbsp;req.getParameter("name");然后,一旦您从表单中获得了数据,就可以使用Web上广泛使用的JDBC教程将其添加到数据库中,这是相对容易的。我还建议搜索一个基本的Javaservlet教程,让您开始学习。这很容易,尽管有许多步骤需要正确配置。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
SQL Server