#04:doPost() - POSTメソッド
このチャプターでは、HTTP POSTリクエストを処理するdoPost()メソッドについて学習します。
doPost @Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html; charset=UTF-8");
System.out.println(2);
}
結果画面をあらわす文字列 private String resultHtml = """
<!DOCTYPE html>
<html lang=\"ja\">
<head>
<meta charset=\"UTF-8\">
<title>ログイン</title>
</head>
<body>
<h1>%s</h1>
</body>
</html>
""";
LoginServlet.javapackage jp.paiza.servlet;
import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private String inputHtml = """
<!DOCTYPE html>
<html lang=\"ja\">
<head>
<meta charset=\"UTF-8\">
<title>ログインフォーム</title>
</head>
<body>
<div class=\"page-background\">
<div class=\"form-container\">
<h1>ログイン</h1>
<form action=\"/learning/login\" method=\"POST\">
<div class=\"input-group\">
<label for=\"user-id\">ユーザーID</label>
<input type=\"text\" id=\"user-id\" name=\"user-id\" required>
</div>
<div class=\"input-group\">
<label for=\"password\">パスワード</label>
<input type=\"password\" id=\"password\" name=\"password\" required>
</div>
<div class=\"form-actions\">
<button type=\"submit\">ログイン</button>
</div>
</form>
</div>
</div>
</body>
</html>
""";
private String resultHtml = """
<!DOCTYPE html>
<html lang=\"ja\">
<head>
<meta charset=\"UTF-8\">
<title>ログイン</title>
</head>
<body>
<h1>%s</h1>
</body>
</html>
""";
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html; charset=UTF-8");
PrintWriter out = res.getWriter();
out.println(inputHtml);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
res.setContentType("text/html; charset=UTF-8");
String userId = req.getParameter("user-id");
String password = req.getParameter("password");
PrintWriter out = res.getWriter();
if ("kyoko".equals(userId) && "paiza".equals(password)) {
out.println(resultHtml.formatted("ログイン成功"));
} else {
out.println(resultHtml.formatted("ログイン失敗"));
}
}
}
Web技術入門編
https://paiza.jp/works/web_tech/primer
テクノロジー編06: システムの組み合わせ方法を理解しよう
https://paiza.jp/works/technology/primer/beginner-technology6
新・HTML/CSS入門編
https://paiza.jp/works/html-css/new-primer
HTML/CSS入門編
https://paiza.jp/works/html/primer
Maven入門編
https://paiza.jp/works/maven/primer
新・Java入門編
https://paiza.jp/works/java/new-primer
新・Java入門編35: ファイル入出力について学習しよう > キャラクタストリーム
PrintWriter
https://paiza.jp/works/java/new-primer/java-new-primer-35/97003
help:effective-pom
https://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html
Module jakarta.servlet
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/module-summary.html
Class HttpServlet
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/http/httpservlet
Interface HttpServletRequest
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/http/httpservletrequest
Interface HttpServletResponse
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/http/httpservletresponse
getParameter
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/servletrequest#getParameter(java.lang.String)
setCharacterEncoding
https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/servletrequest#setCharacterEncoding(java.lang.String)