为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2019-06-18 15:24:08
提交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中获取这些数据并将它们添加到数据库中?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

创建一个扩展HttpServlet然后放@WebServlet包含servlet应该侦听的URL的注释。

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

就让<form action> 到这个URL。我也会推荐对非幂等请求使用POST方法。您应该确保您已经指定了nameHTML表单输入字段的属性(<input><select><textarea><button>)。这表示HTTP请求参数名。最后,您还需要确保感兴趣的输入字段包含在所需的表单中,因此不包含在外部。

以下是一些不同的例子HTML表单输入字段:

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

创建一个doPost()方法,该方法以请求参数的形式获取提交的输入值,该参数由输入字段的name( id!)。你可以用request.getParameter()从单值字段获得提交的值,并且request.getParameterValues()若要从多值字段获取提交的值,请执行以下操作。

@Overrideprotected 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;
    // ...}

必要时做一些验证最后,按照通常的方式将其保存在DB中。JDBC/方式,道路。

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

另见:


查看完整回答
反对 回复 2019-06-18
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

好吧,有大量的数据库教程在线为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教程将其添加到数据库中,这是相对容易的。我还建议搜索一个基本的Javaservlet教程,让您开始学习。这很容易,尽管有许多步骤需要正确配置。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 2235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信