EclipseのServlet実行
前回の記事でTomcatをインストールして
さぁ実行だ!と思ったら詰まりました。
何があったかというと
実行してー、Webブラウザの8080にアクセスすれば…
あれ、出ない(・_・;)
あ、アドレス指定してやらないとなのね
出ないじゃん(・_・;)
っていうかアドレスわからないってなった
というわけで実行までしようってお話
前回の記事でTomcatをインストールして
Eclipseに実行の構成でサーバの設定して、プラグインから起動できるようになったと思います
まず新規プロジェクトの作成ですが
Javaプロジェクトとかではなく
でプロジェクトを作ります
そしてJavaプロジェクトではsrcディレクトリにソースファイルを置いていましたが
ServletではWEB-INF/srcに.javaファイルを作成します
とりあえず適当にコード書いてみましょう
/* * @auther yuzu */ import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { response.setContentType("text/html; charset=utf-8"); PrintWriter pw = response.getWriter(); Date dt = new Date(); pw.println("<html>"); pw.println("<head><title>サンプル</title></head>"); pw.println("<body"); pw.println("<center>"); pw.println("<h2>ようこそ</h2>"); pw.println("<hr />"); pw.println("今" + dt + "です。"); pw.println("お選びください"); pw.println("<br />"); pw.println("<a href=\"#\">乗用車</a>"); pw.println("<a href=\"#\">トラック</a>"); pw.println("<a href=\"\#">オープンカー</a>"); pw.println("</center>"); pw.println("</body>"); pw.println("</html>"); } catch(Exception e) { e.printStackTrace(); } } }
学校の課題で書いたコード若干変更Verですが
まぁテストではいいんじゃないですかね?
がちゃがちゃ弄ってて気づいた
どうもServletはEclipseでやってるとEclipseが勝手にコンパイルしてるのか
適切な場所に.classファイルを置いてくれています
保存して
次にweb.xmlを作成します
WEB-INFディレクトリに新規>ファイルでweb.xmlを作成
web.xmlには
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Test</servlet-name> <servlet-class>TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/servlet/test</url-pattern> </servlet-mapping> </web-app>
servlet-classが実行したい.javaファイルを書くところで
url-patternがアクセスするときに使用するアドレス
この2つをservlet-nameでリレーションを取ってるって感じです。
最後にプロジェクトエクスプローラーの作成したプロジェクトを右クリックし
Tomcatプロジェクト>コンテキストファイルの更新
をしてEclipse側の処理は完了
ブラウザで
localhost:8080/<プロジェクト名>/<url-pattern>
で、記述したプログラムにアクセスできるはずです。
今回の場合
localhost:8080/Servlet/servlet/test
でアクセスできます。できるはずです。