2012-02-02 7 views
2

私は誰かが洙多くの「\」の使用があなたがここになぜこのコードには非常に多くの "..."がありますか...それの使用法は何ですか?

"<form method=\"post\" action =\"" + request.getContextPath() + 
     "/firstservlet\" >"); 

out.println("<table border=\"0\"><tr><td valign=\"top\">"); 
out.println("Your first name: </td> <td valign=\"top\">"); 
out.println("<input type=\"text\" name=\"firstname\" size=\"20\">"); 
out.println("</td></tr><tr><td valign=\"top\">"); 
out.println("Your last name: </td> <td valign=\"top\">"); 
out.println("<input type=\"text\" name=\"lastname\" size=\"20\">"); 
out.println("</td></tr><tr><td valign=\"top\">"); 
out.println("Your email: </td> <td valign=\"top\">"); 
out.println("<input type=\"text\" name=\"email\" size=\"20\">"); 
out.println("</td></tr><tr><td valign=\"top\">"); 

out.println("<input type=\"submit\" value=\"Submit Info\"></td></tr>"); 
out.println("</table></form>"); 
out.println("</body></html>"); 
+2

を入力してエスケープする必要があります。 –

+0

もし私があなただったら。私は厄介なエスケープ文字列を持つ代わりにプロパティファイルを使用します。 – Koekiebox

+1

これはコーディングが非常に悪いと思われます。表示用にJSPを使用してください。 –

答えて

17

よ、私を説明する場合servlet.I'llの内側に書かれたこのコードを見ての質問は感謝して得たservlets..andする初心者です\"を書くことによって、文字列内の引用符"をエスケープする必要があります。これをしなければ、ストリングは早すぎるでしょう。

編集:例:

String thisWillNotCompile = "This String terminates right now" and not later"; 

が、これはあなたの構文エラーを与えるコンパイルしようとしています。

String thisWillCompile = "This String doesn't terminate right now\" but now"; 

これは機能します。

編集2:詳細については、Escape Sequences in the Java Tutorialを参照してください。

+0

小さな例でそれを説明できますか? –

+1

あなたが提供した例からバックスラッシュを取り除き、何が起こるかを見てください。 – chrisbunney

+0

ああ...ありがとうございました。ありがとうございます。 –

1

文字「"」は、文字列の最後を示す特殊文字ではありませんが、文字列の一部です。

1

\プログラミング言語でエスケープ文字として知られています。これを使っていくつかの特殊文字をエスケープします。あなたは

Hello " World 

と呼ばれる文字列を印刷したい場合は、

system.out.println("Hello " World"); // Sorry Error :(

を指定した場合"特殊文字であるため、例えば、これはエラーになります。したがって、特殊文字をエスケープするには、

system.out.println("Hello \" World"); // It works :) 
関連する問題