はじめに
たなしょです。
お久しぶりです。 本当に色々ありました。
ようやく復調してきました。 ブログの執筆再開します!
本題
C++の勉強はひとまず置いて今日はJavaでwebアプリケーションを作ろうと思います。
開発はEclipse+pleiadesを使って実装していきます。
ディレクトリ構成はこんな感じ
tree . ├── WebContent │ ├── META-INF │ │ └── MANIFEST.MF │ └── WEB-INF │ ├── jsp │ │ ├── musicChoice.jsp │ │ └── musicChoiceResult.jsp │ └── lib ├── build │ └── classes │ ├── model │ │ ├── MusicChoice.class │ │ └── musicLogic.class │ └── servlet │ └── musicChoiceSite.class └── src ├── model │ ├── MusicChoice.java │ └── musicLogic.java └── servlet └── musicChoiceSite.java 12 directories, 9 files
musicChoiceSite.java
サーブレットクラスは下記のようになっています。
package servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; 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 model.MusicChoice; import model.musicLogic; /** * Servlet implementation class musicChoiceSite */ @WebServlet("/musicChoiceSite") public class musicChoiceSite extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //フォワード RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/musicChoice.jsp"); dispatcher.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //リクエストパラメータ取得 String music = request.getParameter("music"); String musicianName = request.getParameter("musician"); String price = request.getParameter("price"); String detail = request.getParameter("detail"); //入力値をプロパティに設定 MusicChoice mc = new MusicChoice(); mc.setPrice(Integer.parseInt(price)); mc.setMusicNumber(music); mc.setMusicianName(musicianName); mc.setMusicDetail(detail); //消費税10%を付与する musicLogic ml = new musicLogic(); ml.execute(mc); //リクエストスコープに保存 request.setAttribute("musicchoice", mc); //フォワード RequestDispatcher d = request.getRequestDispatcher("/WEB-INF/jsp/musicChoiceResult.jsp"); d.forward(request, response); } }
doGet
サーブレットクラスがGETリクエストされると実行されるクラス。
GETは指定したURI(リソース)の情報を取得する。
doPost
サーブレットクラスがPOSTリクエストされると実行されるクラス。
POSTはリソースの追加や作成の役割を持っている。
フォワード
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/musicChoice.jsp");
dispatcher.forward(request, response);
request.getRequestDispatche("フォワード先")で記述する。
文字コード指定
request.setCharacterEncoding("UTF-8");
記載する文字コードを指定する。今回の場合「UTF-8」が設定される。
この記載がないとリクエストパラメータの値が文字化けする。
リクエストスコープ
request.setAttribute("musicchoice", mc);
musicchoiceはスコープに保存したインスタンスを取得する際に必要になる。
MusicChoice mc = (MusicChoice) request.getAttribute("musicchoice");
最後に
今日はこの辺で終わりです。 11月が始まりましたね。結構激変の1ヶ月になるかもです! わくわく!
最後まで読んでいただいてありがとうございました。 もしよろしければtwitterアカウント(@piklus100yen)もフォローしていただけると幸いです!