まじごみ日記

パチスロ・アニメ・特撮好きの日記です。最近の趣味は筋トレ。

Servletの呼び出しについてフライングファルコン!

本日紛失した「IQOSクリップオントレイ」の再購入方法を調べてたら、21時過ぎになってしまった。。 カスタマーセンターにも電話したが、結局「販売中止になったのか在庫が無いだけなのかはよく分からない」とのこと。。
しょうがないので、公式以外の通販を調べて、はじめてメルカリで購入してみた。ちょっと怖い。

今日も遅くなってしまったので、ご飯を食べてから進めたいと思う。

JSPファイルの作成

前回はServletファイルを作成して、表示するだけだったので、今回はJSPファイルも作成して連携してみる。 JSPファイルは、ルート直下のWebContentディレクトリに配置するようだ。
ファイルがindexだと名にすると、ファイル名の指定なし(/ルート指定)で参照できるみたいなので、「index.jsp」というファイルを作ってみる。
f:id:majigomi:20190805225210p:plain 参照もできた。 htmlファイルもここにおけば良いみたい。

Servletの呼び出し

Servletの呼び出しは、GetとPostがある。
まずはGetで呼び出してみる。

Getで呼び出し

index.jsp

<a href="/TestWebApp/HelloWorld?param=ぱらめーた">Getで呼び出す</a>

HelloWorld.java

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().append("param: ").append(request.getParameter("param"));
    }

f:id:majigomi:20190805234148p:plain
f:id:majigomi:20190805234204p:plain
文字化けしてしまった。。
調べると、Servletは日本語の文字コードに対応していないので、文字エンコーディングを行うフィルタが必要とのこと。 早速フィルタを作成する。 f:id:majigomi:20190805234822p:plain
f:id:majigomi:20190805234935p:plain

f:id:majigomi:20190805235032p:plain
URLパターンを「/*」にして全Servletを対象にする

doFilterメソッドに文字エンコーディング処理を追加する。

   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");
        chain.doFilter(request, response);
    }

f:id:majigomi:20190805235457p:plain
でぎだ!
このフィルタクラスは、文字エンコーディングの他にも、認証などにも使われる機能みたい。確かに使ったことあるわww

Postで呼び出し

お次はPostで呼び出してみる。
Postで呼び出す際は、formのactionでURLを指定し、methodにpostを指定する。
index.jsp

<form action="/TestWebApp/HelloWorld" method="post">
    <input type="text" name="param" />
    <input type="submit" value="Postで呼び出す" />
</form>

HelloWorld.java

   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().append("param:").append(request.getParameter("param"));
    }

f:id:majigomi:20190806000808p:plain
f:id:majigomi:20190806000926p:plain
できた!まあ、当たり前だけど。

このペースでは間に合わない

基礎から1つづつ進めるのは悪くないと思うんだけど、こんな調子じゃ9月までにVue.jsとSpring Bootを学習するのは間に合わない。クソみたいな記事を書くのも無駄に時間がかかるし。
モチベーションも上がらないし、明日は多少分からないところがあっても一旦無視して、Spring Bootを使ってサンプルアプリをつくってみる。
動くものを作ってから、動かしながら理解を進めていくほうが早いと思うし。

とりあえず今日は・・・プロテイン飲んで寝る!
f:id:majigomi:20190805232904j:plain

今日の出来事

仮面ライダーのコレクションアイテム『プログライズキー』を購入。帰りに西友のおもちゃ売り場を覗いたら、1つだけ売ってた。 f:id:majigomi:20190805211401j:plain
収納しやすそうな形は好印象。ライドウォッチは絶縁シートの再挿入ができないうえに、収納し辛かったので。。
f:id:majigomi:20190805211607j:plain
f:id:majigomi:20190805211624j:plain
中々カッコイイけど、光り方が局所的なのは残念。もっと全体が光ってくれたらキレイなのに。
今回のアイテムは認識ピンが無いけど、ICチップで個別認識するのだろうか。それとも磁石が入っているだけなのか・・・
今年は2週類のベルトと武器も一緒に予約したので、放送開始前に遊び倒すぞ!
なんにせよ発売日の8/31が楽しみ。