回答編集履歴

1

やりたい事への注意点追加

2021/08/14 00:28

投稿

TetsujiMiwa
TetsujiMiwa

スコア1124

test CHANGED
@@ -149,3 +149,107 @@
149
149
  あとは、やりたい事を、先ほどのdoGetメソッドに実装していけば、
150
150
 
151
151
  実現できるかと思っております。
152
+
153
+
154
+
155
+ ---
156
+
157
+
158
+
159
+ 追記:やりたいことに対して以下の修正が必要になるかと思います。
160
+
161
+ ■出力方法の変更1
162
+
163
+
164
+
165
+ ```Java
166
+
167
+ System.out.println(data[i] + " ");
168
+
169
+ ```
170
+
171
+
172
+
173
+ は、標準出力に対しての出力なので、ブラウザに対する出力に変えてあげる必要があります。
174
+
175
+ ```Java
176
+
177
+ out.println(data[i] + " "); // 前段で右記を宣言:PrintWriter out = response.getWriter();
178
+
179
+ ```
180
+
181
+
182
+
183
+ ■出力方法の変更2
184
+
185
+
186
+
187
+ whileの最後で
188
+
189
+ ```Java
190
+
191
+ System.out.println();
192
+
193
+ ```
194
+
195
+ とやっていますが、ブラウザでの改行は<br/>なので改行してくれないです。
196
+
197
+ 変更1を加味して以下のように修正する必要があります。
198
+
199
+ ```Java
200
+
201
+ out.println("<br/>"); // 前段で右記を宣言:PrintWriter out = response.getWriter();
202
+
203
+ ```
204
+
205
+
206
+
207
+ ■文字コードの対処
208
+
209
+
210
+
211
+ 最近のTomcatは、文字コードがUTF-8、対してcsvはShift-JIS、という事がよくあるので、
212
+
213
+ 文字化けを起こす可能性があります。
214
+
215
+
216
+
217
+ 対処するために、
218
+
219
+ - ファイルをShift-JISで読み込む。
220
+
221
+ - レスポンスも文字コードをShift-JISに設定する。
222
+
223
+ が必要です。
224
+
225
+
226
+
227
+ 前者は、
228
+
229
+ ```Java
230
+
231
+ br = new BufferedReader(new FileReader(file));
232
+
233
+ ```
234
+
235
+ の部分を、
236
+
237
+ ```Java
238
+
239
+ br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"Shift-JIS"));
240
+
241
+ ```
242
+
243
+ と書き換える。
244
+
245
+
246
+
247
+ 後者は、
248
+
249
+ ```Java
250
+
251
+ response.setCharacterEncoding("Shift-JIS");
252
+
253
+ ```
254
+
255
+ を追記することで対処します。