How to transfer data from JSP to servlet when submitting HTML form -
i have jsp page html form:
<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>
how obtain these data in servlet , add them database?
create class extends httpservlet
, put @webservlet
annotation on containing desired url servlet should listen on.
@webservlet("/yourservleturl") public class yourservlet extends httpservlet {}
and let <form action>
point url. i'd recommend use post method non-idempotent requests. should make sure have specified name
attribute of html form input fields (<input>
, <select>
, <textarea>
, <button>
). represents http request parameter name. finally, need make sure input fields of interest enclosed inside desired form , not outside.
here examples of various 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>
create dopost()
method in servlet grabs submitted input values request parameters keyed input field's name
(not id
!). can use request.getparmeter()
submitted value single-value fields , request.getparametervalues()
submitted values multi-value fields.
@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; // ... }
do if necessary validation , persist in db usual jdbc/dao way.
user user = new user(name, pass, roles); userdao.save(user);
see also:
- html beginner tutorial
- our servlets wiki page
- doget , dopost in servlets
- how call specific java method on click/submit event of specific button in jsp?
- how perform validation , display error message in same form in jsp?
- how can retain html form field values in jsp after submitting form servlet?
- how upload files server using jsp/servlet?
- show jdbc resultset in html in jsp page using mvc , dao pattern
- servlet returns "http status 404 requested resource (/servlet) not available"
Comments
Post a Comment