我有一个带有 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中获取这些数据并将其添加到数据库中?
最佳答案
创建一个扩展 HttpServlet
的类并输入 @WebServlet
其上的注释包含 servlet 应监听的所需 URL。
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
就让<form action>
point到这个网址。我也会recommend对非幂等请求使用 POST 方法。您应该确保已指定 name
HTML 表单输入字段的属性( <input>
、 <select>
、 <textarea>
和 <button>
)。这表示 HTTP 请求参数名称。最后,您还需要确保感兴趣的输入字段包含在所需表单内,而不是外部。
以下是各种 HTML form input fields 的一些示例:
<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="title" value="Mr" /> Mr
<input type="radio" name="title" value="Ms" /> Ms
<input type="radio" name="title" value="Mx" /> Mx</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>
<p>Cancel button.
<input type="submit" name="cancel" value="Cancel" /></p>
</form>
创建 doPost()
servlet 中的方法,该方法将提交的输入值作为请求参数,由输入字段的 name
键入。 (不是id
!)。您可以使用request.getParameter()
从单值字段和 request.getParameterValues()
获取提交的值从多值字段获取提交的值。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String title = request.getParameter("title");
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;
boolean cancelButtonPressed = request.getParameter("cancel") != null;
// ...
}
如有必要,做一些validation最后将其保留在数据库中通常的 JDBC/DAO方式。
User user = new User(name, pass, roles);
userDAO.save(user);
另请参阅:
- HTML beginner tutorial
- Our Servlets wiki page
- doGet and doPost in Servlets
- How do I call a specific Java method on a click/submit event of a specific button in JSP?
- How perform validation and display error message in same form in JSP?
- How can I retain HTML form field values in JSP after submitting form to Servlet?
- How can I upload files to a server using JSP/Servlet?
- Show JDBC ResultSet in HTML in JSP page using MVC and DAO pattern
- Servlet returns "HTTP Status 404 The requested resource (/servlet) is not available"
关于jsp - 提交HTML表单时如何将数据从JSP传输到servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971877/