0

私は学校向けのオンラインテキストエディタを書いています。カスタム名でファイルを保存できたので問題ありません。私が持っているHTMLフォームでは、TextAreaのテキストをユーザーが指定したファイルに送信し、URLをblah.org/text.jsp?status=genに設定します。コードの後半で、変数status == genの場合はプログラムにファイルを書き込ませ、それ以外の場合は何もしません。[送信]をクリックするとファイルを作成できません。URLで変数を取得することと関係があると思います。これが私のコードです:

    /* Set the "user" variable to the "user" attribute assigned to the session */
String user = (String)session.getAttribute("user");
String status = request.getParameter("status");
    /* Get the name of the file */
String name = request.getParameter("name");
    /* Set the path of the file */
String path = "C:/userFiles/" + user + "/" + name + ".txt";
/* Get the text in a TextArea */
String value = request.getParameter("textArea");
    /* If there isn't a session, tell the user to Register/Log In */
if (null == session.getAttribute("user")) {
out.println("Please Register/Log-In to continue!");
    if (status == "gen") {
        try {
            FileOutputStream fos = new FileOutputStream(path);
            PrintWriter pw = new PrintWriter(fos);
            pw.println(value);
            pw.close();
            fos.close();
    }
    catch (Exception e) {
        out.println("<p>Exception Caught!");
    }
} else {
out.println("Error");
}
}

とフォーム:

<form name="form1" method="POST" action="text.jsp?status=gen">
<textarea cols="50" rows="30" name="textArea"></textarea>
<center>Name: <input type="text" name="name" value="Don't put a .ext"> <input type="submit" value="Save" class="button"></center>
other code here </form>
4

2 に答える 2

0

交換

if (status == "gen") {

if ( status.equals("gen") ) {

またはさらに良い

if ( "gen".equals(status) ) {

最初のステートメントは、文字列の同等性ではなく、オブジェクトの同等性を実行します。したがって、常にfalseを返します。

于 2012-12-12T19:08:46.933 に答える
0

文字列をと比較するのでは==なく、と比較してい.equals()ます。==文字列を比較するのは、同じ文字が含まれている場合ではなく、同じオブジェクトインスタンスです。

IOチュートリアルを必ずお読みください。ストリームは常にfinallyブロックで閉じる必要があります。または、Java7のtry-with-resources構造を使用する必要があります。

于 2012-12-12T19:08:57.113 に答える