質問するログイン新規登録
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

943閲覧

JSPから受け取ったCSVファイルの情報をServletで受信させたい。

magmag123

総合スコア15

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2023/08/17 05:04

0

0

JspからCSVファイルをServletに送りたい

Jspから『input type="file"』で指定したcsvファイルをServletに送りJava側でデータの加工を行いたいのですが、アクセス拒否のエラーが発生します。
同じディレクトリ内に『txt』を配置させて、実行するとエラーが発生しないのですが、txt以外だと同じ事象が発生します。

『csv』ファイルなどをServletに送る場合の処理は何か特別な対応が必要なのでしょうか?

色々なサイトを調査してみたのですが、『input type="file"』から『csv』を選択してjava側で加工するコードなどがなく困っています。。

前提

Servletで受け取り処理でエラーが発生します
下記が質問になります。
①『input type="file"』でtxt以外のファイルを選択した時、Servletにデータを送る時に何か特別な処理が必要なのでしょう?
②Servletに送信が可能な場合、ファイルが格納されているディレクトリ情報を送ることもできるのでしょうか?

発生している問題・エラーメッセージ

エラーメッセージ HTTPステータス 500 – Internal Server Error タイプ 例外報告 メッセージ org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. C:\Users\upload_6f4ecdef_212e_4986_b4c9_6d5e55e3d17f_00000001.tmp (アクセスが拒否されました。) 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. C:\Users\upload_6f4ecdef_212e_4986_b4c9_6d5e55e3d17f_00000001.tmp (アクセスが拒否されました。) org.apache.catalina.connector.Request.parseParts(Request.java:2893) org.apache.catalina.connector.Request.getParts(Request.java:2750) org.apache.catalina.connector.Request.getPart(Request.java:2916) org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:803) servlet.sampleCsv.doGet(sampleCsv.java:37) servlet.sampleCsv.doPost(sampleCsv.java:54) javax.servlet.http.HttpServlet.service(HttpServlet.java:555) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因 org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. C:\Users\upload_6f4ecdef_212e_4986_b4c9_6d5e55e3d17f_00000001.tmp (アクセスが拒否されました。) org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:321) org.apache.catalina.connector.Request.parseParts(Request.java:2849) org.apache.catalina.connector.Request.getParts(Request.java:2750) org.apache.catalina.connector.Request.getPart(Request.java:2916) org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:803) servlet.sampleCsv.doGet(sampleCsv.java:37) servlet.sampleCsv.doPost(sampleCsv.java:54) javax.servlet.http.HttpServlet.service(HttpServlet.java:555) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因 java.io.FileNotFoundException: C:\Users\upload_6f4ecdef_212e_4986_b4c9_6d5e55e3d17f_00000001.tmp (アクセスが拒否されました。) java.base/java.io.FileOutputStream.open0(Native Method) java.base/java.io.FileOutputStream.open(FileOutputStream.java:298) java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237) java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187) org.apache.tomcat.util.http.fileupload.DeferredFileOutputStream.thresholdReached(DeferredFileOutputStream.java:151) org.apache.tomcat.util.http.fileupload.ThresholdingOutputStream.checkThreshold(ThresholdingOutputStream.java:200) org.apache.tomcat.util.http.fileupload.ThresholdingOutputStream.write(ThresholdingOutputStream.java:126) org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:104) org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:317) org.apache.catalina.connector.Request.parseParts(Request.java:2849) org.apache.catalina.connector.Request.getParts(Request.java:2750) org.apache.catalina.connector.Request.getPart(Request.java:2916) org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:803) servlet.sampleCsv.doGet(sampleCsv.java:37) servlet.sampleCsv.doPost(sampleCsv.java:54) javax.servlet.http.HttpServlet.service(HttpServlet.java:555) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 注意 原因のすべてのスタックトレースは、サーバのログに記録されています。

該当のソースコード

JSP/HTML

1 <form action="/DataConvertSample/sample-csv"enctype="multipart/form-data" method="post"> 2 <label>取込データ :</label> 3 <input type="file" name="file"><br> 4 <input type="submit" value="送信"> 5 </form>

該当のソースコード

Servlet

1@WebServlet("/sample-csv") 2@MultipartConfig(location="C:\\Users", maxFileSize=1048576) 3 4public class sampleCsv extends HttpServlet { 5 private static final long serialVersionUID = 1L; 6 7 /** 8 * @see HttpServlet#HttpServlet() 9 */ 10 public sampleCsv() { 11 super(); 12 // TODO Auto-generated constructor stub 13 } 14 15 /** 16 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 17 */ 18 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 19 20 // 選択ファイルを受信 21 Part part = request.getPart("file"); 22 // ファイル名を取得 23 String filename=part.getSubmittedFileName(); 24// Path p = Path.of(filename); 25// System.out.print(p); 26 //Path path = Paths.get(null); 27 28 29 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/jsp/kekka.jsp"); 30 rd.forward(request, response); 31 } 32 33 /** 34 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 35 */ 36 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 37 // TODO Auto-generated method stub 38 doGet(request, response); 39 } 40 41} 42

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

@MultipartConfig()の引数内容に誤りがそこでアクセス拒否がされているみたいでした。

投稿2023/08/17 05:18

magmag123

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問