2012-04-09 8 views
0

私は現在、register.htmlとregister.jspという2つのファイルを持っています。 HTMLファイルはユーザーに何らかの情報を要求し、JSPファイルは情報をテキストファイルに書き込むものとします。私はファイルで、特にPrintWriter部分でエラーが発生し続ける。どんな助けでも大歓迎です。ありがとう!ここでPrintWriterでJSPが正しく動作しない

は私が取得していますエラーです:

An error occurred at line: 14 in the jsp file: /register.jsp 
Duplicate local variable pw 
11: 
12: try { 
13: 
14:  PrintWriter pw=null; 
15: pw = new PrintWriter(new FileWriter(new File(nameOfTextFile), true)); 
16: // PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
17:  

はregister.html:

<%@ page import="java.io.*, java.util.Date" %> 
<DOCTYPE! html> 
<HTML> 
<HEAD> 
<TITLE>Registration</TITLE> 
</HEAD> 
<BODY> 
<h1>Enter the following information to sign and create an account in the Book.</h1> 
<form name=registrationForm action="register.jsp"> 
    <table border=0> 
     <tr><td align=right>Username:</td> 
     <td><input type=text name="Username" size=25></td> 
    </tr> 
    <tr><td align=right>Password:</td> 
     <td><input type=text name="password" size=25></td> 
    </tr> 
    <tr><td align=right>Email address:</td> 
     <td><input type=text name="email" size=25></td> 
    </tr> 
    <tr> 
    <!--<td valign=middle align=right>Comments:</td> 
    <td><TextArea rows=5 cols=35 name="comments">none</TextArea> 
    </td>--> 
    </tr> 
</table> 
<br> 
<input type="submit" value="Register" name="button" onClick="validatingForm()"> 
<input type=reset value="Start Over"> 
</form> 
</BODY> 
</HTML> 

register.jsp:

<%@ page import="java.io.* , java.util.Date" %> 
<HEAD>Thanks for registering!</TITLE></HEAD> 
<BODY> 
<% 
String un =request.getParameter("Username"); 
String pw =request.getParameter("password"); 
String nameOfTextFile = "/xampp/tomcat/webapps/gb/userss.txt"; //directory path and name of file 
try { 
PrintWriter pw=null; 
    pw = new PrintWriter(new FileWriter(new File(nameOfTextFile), true)); 
    // PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
    pw.println(un); 
    pw.println(pw); 
    pw.close(); 
    } catch(IOException e) { 
    out.println(e.getMessage()); 
} 
%> 
</BODY> 
</HTML> 
+1

あなたが取得しているエラーを投稿してください。それらはあなたの質問に答えるのに役立ちます。 – uaarkoti

+1

これは、JSPを書き込まない方法の例です。 JSPでこれを行うべきではありません。 – duffymo

+0

使用しているWebフレームワーク(またはWebフレームワークを使用していない場合は 'Servlet'実装)に応じて、JavaコードをJavaクラスに再配置することを検討してください。 JavaコードをJSPファイルに直接置くことは、コード化の練習として非常に貧弱です。 'out.println(e.getMessage())'の代わりに 'e.printStackTrace()'を実行すると、さらに便利なデバッグ情報が得られるかもしれません。 – aroth

答えて

1

他の人が言ったように、あなたはこれを移動する必要がありますコードをJavaクラスに変換します。あなたの問題は、あなたがpwという名前の2つの変数を定義しているということです。

String un =request.getParameter("Username"); 
String pw =request.getParameter("password"); //FIRST DECLARATION OF PW 
String nameOfTextFile = "/xampp/tomcat/webapps/gb/userss.txt"; //directory path and name of file 
try { 
PrintWriter pw=null; //SECOND DECLARATION OF PW causes error 
    pw = new PrintWriter(new FileWriter(new File(nameOfTextFile), true)); 
    // PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
    pw.println(un); 
    pw.println(pw); 
    pw.close(); 
    } catch(IOException e) { 
    out.println(e.getMessage()); 
} 

試してみてください。

String un =request.getParameter("Username"); 
String pw =request.getParameter("password"); 
String nameOfTextFile = "/xampp/tomcat/webapps/gb/userss.txt"; //directory path and name of file 
try { 
PrintWriter printWriter=null; 
    printWriter = new PrintWriter(new FileWriter(new File(nameOfTextFile), true)); 
    // PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
    printWriter.println(un); 
    printWriter.println(pw); 
    printWriter.close(); 
    } catch(IOException e) { 
    out.println(e.getMessage()); 
} 
+0

ありがとう、それでした! – ajj

関連する問題