職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

JSPとサーブレットの連携

2015年04月25日 | java
JSPとサーブレットの連携

JSPとサーブレットを連携について、フォームのデータのやり取りを使って、紹介していきたいと思います。 input.jsp(フォーム)→Check.java(サーブレットで簡単なエラーチェック)→view.jsp(結果を出力) といった流れで処理を行っていきます。 ですので、今回は •input.jsp •Check.java •view.jsp を作成します ではinput.jspを新規作成し、入力フォームを作成していきます。

【input.jsp 】
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC </code>"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
"Content-Type" content="text/html; charset=UTF-8">
<title>フォームに値を入力する画面</title>
</head>
<body>
 
<form method="</code">"post" action="Check">
    
    
名前:
        
<input type="</code">"text" name="name" size="30" maxlength="30">
    
年齢:
        
<input type="</code">"text" name="age" size="10" maxlength="3">
    
上記の内容で送信します
        
<input type="</code">"submit" value="送信" />
        <input type="</code">"reset" value="リセット"/>
    
</form>
 

"color: red;">

<% if(request.getAttribute("errmsg") != null){ %>
    入力エラー:
    <%= request.getAttribute("errmsg") %>
<% } %>

 
</body>
</html>
 
【Check.java 】
package hoge;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
/**
 * Servlet implementation class Check
 */
@WebServlet("/Check")
public class Check extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
       protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
 
        // セッションを利用するためにtrue
        HttpSession session = request.getSession(true);
 
        // 文字化け対策
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
 
        // フォームデータの取得
        String name =  request.getParameter("name");
        String age = request.getParameter("age");
 
        // 初期値にエラーの場合のURL指定
        String url = "/input.jsp";
        String errmsg = null;
 
        if (name.equals("") || name == null || age.equals("") || age == null) {
            // 空白だった場合errmsgをrequestに格納
            errmsg ="空白となっています。";
            request.setAttribute("errmsg", errmsg);
        } else if (!age.matches("^[0-9]+$")) {
            errmsg ="年齢は半角数字で入力して下さい。";
            request.setAttribute("errmsg", errmsg);
        } else {
            // 上記のエラーチェックが通った場合、urlを次へ変更し、sessionにフォームデータを格納
            url = "/view.jsp";
            session.setAttribute("name", name);
            session.setAttribute("age", age);
        }
 
        // フォワードにて次もしくは前画面に遷移する
        ServletContext context = getServletContext();
        RequestDispatcher rd = context.getRequestDispatcher(url);
        rd.forward(request, response);
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         processRequest(request, response);
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         processRequest(request, response);
    }
 
}
【view.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="true" %>
<!DOCTYPE html PUBLIC </code>"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
"Content-Type" content="text/html; charset=UTF-8">
<title>結果を出力します</title>
</head>
<body>

フォームデータの結果を出力します

名前:<%= session.getAttribute("name") %>さん

年齢:<%= session.getAttribute("age") %>歳

</body>
</html>

詳細にはサーブレット・JSPの基本を見るべし


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« htmlからデータのするに... | トップ | 不良のUPDATEやDELETEを防ぐ »
最新の画像もっと見る

コメントを投稿

java」カテゴリの最新記事