- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2016-06-11T23:49:10+09:00","default:Authors","Authors")
''[[TopPage]]''
* Webアプリ開発環境構築(Eclipse&Tomcat)とWARサンプルデプロイ 2016年6月11日 [#e7c28ea5]
#author("2018-05-20T23:34:57+09:00","default:Authors","Authors")
''[[FrontPage]]''
* Webアプリ開発環境構築(Eclipse&Tomcat)とWARサンプルデプロイ 2018年5月20日 [#e7c28ea5]
** Eclipse [#pb31e6fe]
一連の流れをメモした
+ 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://www.oracle.com/technetwork/developer-tools/eclipse/downloads/oepe-12131-2228123.html~
ダウンロードページ: 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を追加~
++ そのままだとjavax.servlet.*がみつからないと怒られるので、プロジェクトを右クリック、Properties→Java Build Path→ライブラリー→モジュールパス→Add External JARs...→「tomcatルート」\lib配下のservlet-api.jarを追加~
++ "BenefitsServlet.java"なんかを適当に編集する。~
~
+ デプロイ~テスト~
++ プロジェクト右クリック→Export→WAR FileでWARファイル作成~
++ X:\XXXX\[tomcatルート]\webapps配下にWARファイルを配置し、X:\XXXX\[tomcatルート]\bin\startup.batを叩く~
++ Alt+Shift+D→Rでサーバをデバッグ起動~
++ http://127.0.0.1:8080/benefitsへアクセスして動作確認できる。~
~
+ サンプルコード~
** サンプルコード1 [#gf508e90]
例として、http://bj006.comからHTTP GETした結果をそのまま表示するservletの動作確認用javaを以下に示す~
GetInformationボタンを押せばservletに処理が渡る。~
~
*** 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 [#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://blogs.yahoo.co.jp/dk521123/34220519.html~
http://techfun.cc/java/windows-eclipse-install.html~