提交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中获取这些数据并将它们添加到数据库?

创build一个扩展HttpServlet的类,并在其上放置@WebServlet注释,该注释包含servlet应该监听的所需URL。

 @WebServlet("/yourServletURL") public class YourServlet extends HttpServlet {} 

只要让<form action> 指向这个URL即可。 我也build议使用POST方法进行非幂等请求。 您应该确保已经指定了HTML表单input字段( <input><select><textarea><button> )的name属性。 这表示HTTP请求参数名称。 最后,还需要确保感兴趣的input字段包含在期望的表格内,因此不在外面。

以下是各种HTML表单input字段的示例:

 <form action="${pageContext.request.contextPath}/yourServletURL" method="post"> <p>Normal text field. <input type="text" name="name" /></p> <p>Secret text field. <input type="password" name="pass" /></p> <p>Single-selection radiobuttons. <input type="radio" name="gender" value="M" /> Male <input type="radio" name="gender" value="F" /> Female</p> <p>Single-selection checkbox. <input type="checkbox" name="agree" /> Agree?</p> <p>Multi-selection checkboxes. <input type="checkbox" name="role" value="USER" /> User <input type="checkbox" name="role" value="ADMIN" /> Admin</p> <p>Single-selection dropdown. <select name="countryCode"> <option value="NL">Netherlands</option> <option value="US">United States</option> </select></p> <p>Multi-selection listbox. <select name="animalId" multiple="true" size="2"> <option value="1">Cat</option> <option value="2">Dog</option> </select></p> <p>Text area. <textarea name="message"></textarea></p> <p>Submit button. <input type="submit" name="submit" value="submit" /></p> </form> 

在您的servlet中创build一个doPost()方法,它将提交的input值作为input字段name不是 id )键入的请求参数。 您可以使用request.getParmeter()从单值字段获取提交的值,使用request.getParmeter()从多值字段获取提交的值。

 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String pass = request.getParameter("pass"); String gender = request.getParameter("gender"); boolean agree = request.getParameter("agree") != null; String[] roles = request.getParameterValues("role"); String countryCode = request.getParameter("countryCode"); String[] animalIds = request.getParameterValues("animalId") String message = request.getParameter("message"); boolean submitButtonPressed = request.getParameter("submit") != null; // ... } 

如果需要的话进行一些validation ,最后将其以DB / DAO方式保存在DB中。

 User user = new User(name, pass, roles); userDAO.save(user); 

也可以看看:

  • HTML初学者教程
  • 我们的Servlets wiki页面
  • doGet和doPost在Servlets中
  • 如何在JSP中的特定button的点击/提交事件时调用特定的Java方法?
  • 如何在JSP中以相同的forms执行validation和显示错误消息?
  • 将表单提交给Servlet后,如何在JSP中保留HTML表单字段值?
  • 如何使用JSP / Servlet将file upload到服务器?
  • 在JSP页面中使用MVC和DAO模式在HTML中显示JDBC ResultSet
  • Servlet返回“HTTP状态404请求的资源(/ servlet)不可用”

那么,有很多关于java的在线数据库教程(你要找的就是JDBC)。 但是如果你使用普通的servlet,你将有一个扩展HttpServlet的类,在它里面有两个看起来像

 public void doPost(HttpServletRequest req, HttpServletResponse resp){ } 

 public void doGet(HttpServletRequest req, HttpServletResponse resp){ } 

其中一个被调用来处理GET操作,另一个被用来处理POST操作。 然后,您将使用HttpServletRequest对象来获取作为表单的一部分传递的参数,如下所示:

 String name = req.getParameter("name"); 

然后,一旦从表单获得了数据,使用Web上广泛提供的JDBC教程将其添加到数据库中相对容易。 我也build议寻找一个基本的Java servlet教程来帮助你开始。 这很容易,但是有一些步骤需要正确configuration。

http://oreilly.com/catalog/javacook/chapter/ch18.html

search :

“问题

您想要从servlet中的HTML表单处理数据。 “

首先创build你的jsp文件:然后写出你想要的文本字段
例如:

之后创build你的servlet类:

 public class test{ protected void doGet(paramter , paramter){ String name = request.getparameter("name"); } }