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>
サーブレットでこれらのデータを取得してデータベースに追加する方法は?
HttpServlet
を拡張し、サーブレットがリッスンする必要のあるURLを含む _@WebServlet
_ アノテーションを追加するクラスを作成します。
_@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
_
そして、このURLに_<form action>
_ point を指定するだけです。また、 推奨 を使用して、POSTべき等でない要求にメソッドを使用します。HTMLフォームのname
属性を指定したことを確認する必要があります。入力フィールド(_<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>
_
入力フィールドのname
(をキーとする要求パラメーターとして送信された入力値を取得する doPost()
メソッドをサーブレットに作成します。 notid
!)。 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;
// ...
}
_
必要に応じて 検証 を実行し、最終的に通常のDBに永続化します [〜#〜] jdbc [〜#〜] / [〜#〜] dao [〜#〜] 方法。
_User user = new User(name, pass, roles);
userDAO.save(user);
_
Java(あなたが探しているものはJDBCと呼ばれています)のためのオンラインデータベースチュートリアルがたくさんあります。しかし、プレーンサーブレットを使用している場合、HttpServlet
とその内部には、次のような2つのメソッドがあります。
public void doPost(HttpServletRequest req, HttpServletResponse resp){
}
そして
public void doGet(HttpServletRequest req, HttpServletResponse resp){
}
1つはGET
操作を処理するために呼び出され、もう1つはPOST
操作を処理するために使用されます。次に、HttpServletRequest
オブジェクトを使用して、フォームの一部として渡されたパラメーターを取得します。
String name = req.getParameter("name");
次に、フォームからデータを取得したら、Webで広く利用可能なJDBCチュートリアルを使用して、データベースにデータを追加するのは比較的簡単です。また、基本的なJavaサーブレットチュートリアルを検索して開始することをお勧めします。非常に簡単です。ただし、正しく構成する必要があるステップがいくつかあります。