👌
JSP
内容について
新卒エンジニアが研修で学んだことの備忘録
フォルダ作成
- WebContent を右クリック
- 新規->JSPファイル
コーディング
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% String str = "Hello World!";
for(int i = 0 ; i < 5 ; i++){
%>
<h1><%= str %></h1>
<% } %>
</body>
</html>
JSPでフォームを作る
入力画面
jsp11.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="jsp12.jsp">
<label>お名前</label>
<input type="text" name="onamae">
<button type="submit">送信</button>
</form>
</body>
</html>
出力
jsp12.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>こんにちは!<%= request.getParameter("onamae") %>さん!</h2>
</body>
</html>
文字化けしたら
<% request.setCharacterEncoding("UTF-8"); %>
を追記してみる
サーブレットでHello World!してみる
サーブレットはjavaのクラス
現場ではコントローラーって言ったりする
JavaがWEBを扱うために用意したクラスで、HttpServlet がある
これをサーブレットと呼ぶ!
コントローラーの役割
- リクエストを受け付ける
- Modelを使ってデータコントロールができる
- viewを使ってレスポンスするHTMLを生成できる
- ユーザにレスポンスする
サーブレットを作る場所と作り方
- servletパッケージを右クリック
- サーブレットを選択
クラス名の設定
クラス Hello と入力
ここで、完了を押さず、次へを押す
URLマッピングをHelloをhelloに変更
作成できたら...
下のようなファイルができる!
package servlet;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Hello
*/
public class Sample2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Hello() {
//親クラスを呼び出して使う
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
解説
get送信のときに動いているメソッド
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
post送信のときに動いているメソッド
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
先ほどかいたHello worldを呼び出す
書き換える
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
response.getWriter().append("<h1>Hello World!</h1>");
}
URLをみてみる
http://localhost:8080/Sample/hello
http://localhost:8080/Sample/ ドキュメントルート
helloが呼び出されて、コントロールが動き出す
Discussion