Servletの呼び出しについてフライングファルコン!
本日紛失した「IQOSクリップオントレイ」の再購入方法を調べてたら、21時過ぎになってしまった。。
カスタマーセンターにも電話したが、結局「販売中止になったのか在庫が無いだけなのかはよく分からない」とのこと。。
しょうがないので、公式以外の通販を調べて、はじめてメルカリで購入してみた。ちょっと怖い。
今日も遅くなってしまったので、ご飯を食べてから進めたいと思う。
JSPファイルの作成
前回はServletファイルを作成して、表示するだけだったので、今回はJSPファイルも作成して連携してみる。
JSPファイルは、ルート直下のWebContentディレクトリに配置するようだ。
ファイルがindexだと名にすると、ファイル名の指定なし(/ルート指定)で参照できるみたいなので、「index.jsp」というファイルを作ってみる。
参照もできた。 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")); }
文字化けしてしまった。。
調べると、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); }
でぎだ!
このフィルタクラスは、文字エンコーディングの他にも、認証などにも使われる機能みたい。確かに使ったことあるわ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")); }
できた!まあ、当たり前だけど。
このペースでは間に合わない
基礎から1つづつ進めるのは悪くないと思うんだけど、こんな調子じゃ9月までにVue.jsとSpring Bootを学習するのは間に合わない。クソみたいな記事を書くのも無駄に時間がかかるし。
モチベーションも上がらないし、明日は多少分からないところがあっても一旦無視して、Spring Bootを使ってサンプルアプリをつくってみる。
動くものを作ってから、動かしながら理解を進めていくほうが早いと思うし。
とりあえず今日は・・・プロテイン飲んで寝る!
今日の出来事
新仮面ライダーのコレクションアイテム『プログライズキー』を購入。帰りに西友のおもちゃ売り場を覗いたら、1つだけ売ってた。
収納しやすそうな形は好印象。ライドウォッチは絶縁シートの再挿入ができないうえに、収納し辛かったので。。
中々カッコイイけど、光り方が局所的なのは残念。もっと全体が光ってくれたらキレイなのに。
今回のアイテムは認識ピンが無いけど、ICチップで個別認識するのだろうか。それとも磁石が入っているだけなのか・・・
今年は2週類のベルトと武器も一緒に予約したので、放送開始前に遊び倒すぞ!
なんにせよ発売日の8/31が楽しみ。