とりあえず、Tomcatで基本的な構築をしてみてください。
ちなみに、TomcatのURLパターンは、
URL
1http[s]://ドメイン(IP):[server.xmlで設定したポート番号]/[コンテキストルート]/[web.xmlで設定したURLパターン]
で、デフォルトでは、
URL
1http://localhost:8080/[プロジェクト名]/[web.xmlで設定したURLパターン]
という感じになります。
さて、作成手順ですが、
- 「動的WEBプロジェクト」で新規プロジェクトを作成する。プロジェクト名は任意につけて良いですが、デフォルトでコンテキストルート名になります。
- HttpServletクラスを継承したクラスを実装する。
- 上記クラスにdoGetメソッドをpublicで実装する。
- web.xmlを/WebContext/WEB-INFの直下に新規作成し、URLパターンと実装クラスの紐づけをする。
- サーバービューから、サーバーを追加する。
- 上記サーバに、プロジェクトを追加する。(ビュー右クリックで、「追加および除去」を選択し操作)
- サーバー再起動をする。(ビュー右上の緑の再生マークのボタンを押す)
- ブラウザで確認する。
となっています。
「Hello World !」をブラウザに出力するコード例を以下に張り付けておきます。
アドレスは、プロジェクト名をMVC2にしたという前提で、
http://localhost:8080/MVC2/Test001
になります。
Java
1package Test001;
2
3import java.io.IOException;
4import java.io.PrintWriter;
5
6import javax.servlet.ServletException;
7import javax.servlet.http.HttpServlet;
8import javax.servlet.http.HttpServletRequest;
9import javax.servlet.http.HttpServletResponse;
10
11public class Kadai01 extends HttpServlet {
12 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
13 response.setContentType("text/html");
14 PrintWriter out = response.getWriter();
15 out.println("Hello World !");
16 }
17}
web.xml
1<?xml version="1.0" encoding="UTF-8"?>
2<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
5 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
6 version="4.0"
7 metadata-complete="true">
8
9 <servlet>
10 <servlet-name>kadai01</servlet-name>
11 <servlet-class>Test001.Kadai01</servlet-class>
12 </servlet>
13
14 <servlet-mapping>
15 <servlet-name>
16 kadai01
17 </servlet-name>
18 <url-pattern>
19 /Test001
20 </url-pattern>
21 </servlet-mapping>
22
23</web-app>
あとは、やりたい事を、先ほどのdoGetメソッドに実装していけば、
実現できるかと思っております。
追記:やりたいことに対して以下の修正が必要になるかと思います。
■出力方法の変更1
Java
1System.out.println(data[i] + " ");
は、標準出力に対しての出力なので、ブラウザに対する出力に変えてあげる必要があります。
Java
1out.println(data[i] + " "); // 前段で右記を宣言:PrintWriter out = response.getWriter();
■出力方法の変更2
whileの最後で
Java
1System.out.println();
とやっていますが、ブラウザでの改行は<br/>なので改行してくれないです。
変更1を加味して以下のように修正する必要があります。
Java
1out.println("<br/>"); // 前段で右記を宣言:PrintWriter out = response.getWriter();
■文字コードの対処
最近のTomcatは、文字コードがUTF-8、対してcsvはShift-JIS、という事がよくあるので、
文字化けを起こす可能性があります。
対処するために、
- ファイルをShift-JISで読み込む。
- レスポンスも文字コードをShift-JISに設定する。
が必要です。
前者は、
Java
1br = new BufferedReader(new FileReader(file));
の部分を、
Java
1br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"Shift-JIS"));
と書き換える。
後者は、
Java
1response.setCharacterEncoding("Shift-JIS");
を追記することで対処します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/13 08:51
2021/08/13 20:07
2021/08/14 00:30