我有一个带有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中获取这些数据并将它们添加到数据库中?
答案 0 :(得分:75)
创建一个扩展HttpServlet
并在其上放置@WebServlet
注释的类,其中包含servlet应该监听的所需URL。
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
然后让<form action>
point加入此网址。我还recommend对非幂等请求使用POST方法。您应确保已指定HTML表单输入字段的name
属性(<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="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中创建一个doPost()
方法,该方法将提交的输入值作为输入字段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 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并最终以通常的JDBC / DAO方式将其保留在数据库中。
User user = new User(name, pass, roles);
userDAO.save(user);
答案 1 :(得分:3)
嗯,有很多关于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教程将其添加到数据库相对容易。我还建议您搜索一个基本的Java servlet教程来帮助您入门。虽然有许多步骤需要正确配置,但这很容易。
答案 2 :(得分:0)
答案 3 :(得分:-1)
首先创建你的jsp文件: 并写下你想要的文本字段 例如:
之后创建你的servlet类:
public class test{
protected void doGet(paramter , paramter){
String name = request.getparameter("name");
}
}