質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Q&A

解決済

1回答

662閲覧

「URLエンコードされていますか?」をクッリクすると、エラーになる

退会済みユーザー

退会済みユーザー

総合スコア0

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

0グッド

0クリップ

投稿2019/08/10 10:00

編集2019/08/10 10:02

JSP&サーブレットをEclipseで勉強中です。HTTP通信を学ぶというコーナーで
以下のコードを実行すると、

ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jspで
「URLエンコードされていますか?
送信されたパラメータ:param:null 」と出ます。

リンクの張られた「URLエンコードされていますか?」をクッリクすると、
ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jsp?param=%E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97
になるんですが、HTTPステータス 404 - Not Found のエラーになります。

「HTTPステータス 404 - Not Found
Type ステータスレポート

メッセージ /04_Scope/URLEncodeSample.jsp

説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.」

再度初めから
ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jspで
「URLエンコードされていますか?
送信されたパラメータ:param:null 」と出て、

この状態でブラウザのアドレスの後に?param=%E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97を追加して、

ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jsp?param=%E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97

エンターで
「URLエンコードされていますか?
送信されたパラメータ:param:全/角文?字 」と変化し、思惑通りに表示されます。

「URLエンコードされていますか?」をクッリクすると、リンク先は合っているのに
どうしてエラーになるのかわかりません。

このコードを実行した時点で
「URLエンコードされていますか?
送信されたパラメータ:param:全/角文?字 」となるはずなんですが、私の理解が
間違っていますか。エラーログは出てないみたいです。

windows10
Eclipse Version: 2019-06 (4.12.0)

よろしくおねがいいたします。

<%@page import="java.net.URLDecoder"%> <%@page import="java.net.URLEncoder"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% // パラメータを渡すURL String url = "URLEncodeSample.jsp?param="; // クエリ文字列に入れたい値 String params = "全/角文?字"; // 全角文字やURLに含めてはいけない文字列があるのでURLエンコード // 送信されるパラメータ「全/角文?字」が以下に変換される // %E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97 String encoded = URLEncoder.encode(params, "UTF-8"); // URLを作成 url = url + encoded; %> <a href="<%= url %>">URLエンコードされていますか?</a><br /> <% String receive = request.getParameter("param"); if ( receive != null ) { // 受け取ったパラメータをURLデコードする receive = URLDecoder.decode(receive, "UTF-8"); // 標準のJSPでは全てのリクエストパラメータは文字コードiso-8859-1として扱われるので、本来のUTF-8へ戻す receive = new String( receive.getBytes("iso-8859-1") , "UTF-8"); } %> 送信されたパラメータ:param:<%= receive %> </body> </html>

consoleの表示

1情報: Server version: Apache Tomcat/8.5.42 [土 8 10 16:41:55 JST 2019] 2情報: Server built: Jun 4 2019 20:29:04 UTC [土 8 10 16:41:55 JST 2019] 3情報: Server number: 8.5.42.0 [土 8 10 16:41:55 JST 2019] 4情報: OS Name: Windows 10 [土 8 10 16:41:55 JST 2019] 5情報: OS Version: 10.0 [土 8 10 16:41:55 JST 2019] 6情報: Architecture: amd64 [土 8 10 16:41:55 JST 2019] 7情報: Java Home: C:\pleiades\java\8\jre [土 8 10 16:41:55 JST 2019] 8情報: JVM Version: 1.8.0_202-b08 [土 8 10 16:41:55 JST 2019] 9情報: JVM Vendor: Oracle Corporation [土 8 10 16:41:55 JST 2019] 10情報: CATALINA_BASE: C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [土 8 10 16:41:55 JST 2019] 11情報: CATALINA_HOME: C:\pleiades\tomcat\8 [土 8 10 16:41:55 JST 2019] 12情報: Command line argument: -Dcatalina.base=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [土 8 10 16:41:55 JST 2019] 13情報: Command line argument: -Dcatalina.home=C:\pleiades\tomcat\8 [土 8 10 16:41:55 JST 2019] 14情報: Command line argument: -Dwtp.deploy=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [土 8 10 16:41:55 JST 2019] 15情報: Command line argument: -Djava.endorsed.dirs=C:\pleiades\tomcat\8\endorsed [土 8 10 16:41:55 JST 2019] 16情報: Command line argument: -Dfile.encoding=UTF-8 [土 8 10 16:41:55 JST 2019] 17情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\pleiades\java\8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades/eclipse/jre/bin/server;C:/pleiades/eclipse/jre/bin;%JAVA_HOME%bin;%CATALINA_HOME%bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Brackets\command;%ECLIPSE_HOME%;C:\Program Files\PuTTY\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Program Files (x86)\EaseUS\Todo Backup\bin\x64\;C:\pleiades\eclipse;;.] [土 8 10 16:41:55 JST 2019] 18情報: Initializing ProtocolHandler ["http-nio-8080"] [土 8 10 16:41:55 JST 2019] 19情報: Using a shared selector for servlet write/read [土 8 10 16:41:55 JST 2019] 20情報: Initializing ProtocolHandler ["ajp-nio-8009"] [土 8 10 16:41:55 JST 2019] 21情報: Using a shared selector for servlet write/read [土 8 10 16:41:55 JST 2019] 22情報: Initialization processed in 942 ms [土 8 10 16:41:55 JST 2019] 23情報: サービス [Catalina] を起動します [土 8 10 16:41:55 JST 2019] 24情報: Starting Servlet Engine: Apache Tomcat/8.5.42 [土 8 10 16:41:55 JST 2019] 25情報: Starting ProtocolHandler ["http-nio-8080"] [土 8 10 16:41:56 JST 2019] 26情報: Starting ProtocolHandler ["ajp-nio-8009"] [土 8 10 16:41:56 JST 2019] 27情報: Server startup in 460 ms [土 8 10 16:41:56 JST 2019] 28

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

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

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

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

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

guest

回答1

0

ベストアンサー

サーバーがないので、
ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jspで
「URLエンコードされていますか?
送信されたパラメータ:param:null 」と出て、

この状態でブラウザのアドレスの後に?param=%E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97を追加して、

ブラウザ:http://localhost:8080/04_Scope/URLEncodeSample_117.jsp?param=%E5%85%A8%2F%E8%A7%92%E6%96%87%3F%E5%AD%97

エンターで
「URLエンコードされていますか?
送信されたパラメータ:param:全/角文?字 」として、実行するしかないみたいです。

投稿2019/08/10 11:04

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問