#author("2018-05-20T23:34:26+09:00","default:Authors","Authors") #author("2018-05-20T23:34:57+09:00","default:Authors","Authors") ''[[FrontPage]]'' * Webアプリ開発環境構築(Eclipse&Tomcat)とWARサンプルデプロイ 2018年5月20日 [#e7c28ea5] 一連の流れをメモした + JDKとJREのインストール~ ダウンロードページ: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html~ ++ インストールしたX:\XXXX\[jdkルート]\binにpathを通す ++ 新規システム環境変数、JAVA_HOMEを作成し、インストールしたX:\XXXX\[jdkルート]\binを設定する ++ 新規システム環境変数、JRE_HOMEを作成し、インストールしたX:\XXXX\[jreルート]を設定する~ ~ + Eclipseのインストール~ ダウンロードページ: http://mergedoc.osdn.jp/ ~ + Tomcatのインストール~ ダウンロードページ: http://tomcat.apache.org/download-80.cgi~ ++ ポート番号を変えたい場合はX:\XXXX\[tomcatルート]\conf\server.xmlを編集する~ ~ + サンプルWARのダウンロード~ ++ benefits.war: http://www.oracle.com/webfolder/technetwork/jp/obe/fusion_middleware/wls103/appdeploy/deploy/deploy_apps/deploy_apps.htm~ ~ + Eclipseを起動し、サンプルWARをインポートする~ ++ File→Import→Web→WAR File ++ そのままだとjavax.servlet.*がみつからないと怒られるので、プロジェクトを右クリック、Properties→Java Build Path→ライブラリー→モジュールパス→Add External JARs...→「tomcatルート」\lib配下のservlet-api.jarを追加~ ++ "BenefitsServlet.java"なんかを適当に編集する。~ ~ + デプロイ~テスト~ ++ プロジェクト右クリック→Export→WAR FileでWARファイル作成~ ++ Alt+Shift+D→Rでサーバをデバッグ起動~ ++ http://127.0.0.1:8080/benefitsへアクセスして動作確認できる。~ ~ ++ サンプルコード1~ ** サンプルコード1~ [#f75be538] ** サンプルコード1 [#gf508e90] 例として、http://bj006.comからHTTP GETした結果をそのまま表示するservletの動作確認用javaを以下に示す~ *** BenefitsServlet.java [#ic041088] package com.dizzyworld; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; //import java.util.Enumeration; import java.net.*; public class BenefitsServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // ServletOutputStream out = response.getOutputStream(); // // String[] benefitNames = request.getParameterValues("benefit"); // // response.setContentType("text/html"); // for (String benefit : benefitNames) { // if (benefit.equals("vacation")) { // RequestDispatcher rd = request.getRequestDispatcher("company.jsp"); // rd.include(request, response); // continue; // } // if (benefit.equals("health")) { // RequestDispatcher rd = request.getRequestDispatcher("health.jsp"); // rd.include(request, response); // continue; // } // if (benefit.equals("vision")) { // RequestDispatcher rd = request.getRequestDispatcher("vision.jsp"); // rd.include(request, response); // continue; // } // if (benefit.equals("dental")) { // RequestDispatcher rd = request.getRequestDispatcher("dental.jsp"); // rd.include(request, response); // continue; // } // } // // out.print("<BR><A HREF='./welcome.html'>Back To Home Page</A><BR>"); PrintWriter out = response.getWriter(); URL url = new URL("http://bj006.com"); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setRequestMethod("GET"); con.connect(); response.setContentType("text/html;charset=Shift_JIS"); BufferedReader reader = new BufferedReader(new InputStreamReader (con.getInputStream(), "JISAutoDetect")); String buffer = reader.readLine(); System.out.println("accessed"); while (null != buffer) { out.println(buffer); buffer = reader.readLine(); } } } ++ サンプルコード2~ ** サンプルコード2~ [#k1e32abe] ** サンプルコード2 [#pd31c37e] GetInformationボタンを押せばservletに処理が渡る。~ getWriterを使うように修正して、例外"getOutputStream()はこのレスポンスに対して既に呼び出されています"に対応する。~ *** BenefitsServlet.java [#se31e295] package com.dizzyworld; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BenefitsServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); // ServletOutputStream out = response.getOutputStream(); PrintWriter out = response.getWriter(); String[] benefitNames = request.getParameterValues("benefit"); for (String benefit : benefitNames) { if (benefit.equals("vacation")) { RequestDispatcher rd = request.getRequestDispatcher("company.jsp"); rd.include(request, response); continue; } if (benefit.equals("health")) { RequestDispatcher rd = request.getRequestDispatcher("health.jsp"); rd.include(request, response); continue; } if (benefit.equals("vision")) { RequestDispatcher rd = request.getRequestDispatcher("vision.jsp"); rd.include(request, response); continue; } if (benefit.equals("dental")) { RequestDispatcher rd = request.getRequestDispatcher("dental.jsp"); rd.include(request, response); continue; } } out.print("<BR><A HREF='./welcome.html'>Back To Home Page</A><BR>"); } } ** 参考ページ [#da54c2a2] http://blogs.yahoo.co.jp/dk521123/34220519.html~ http://techfun.cc/java/windows-eclipse-install.html~