「Java+MySQL+Tomcatで始めるWebアプリケーション構築入門」 正誤表・補遺
---------------------------------------------
p.53
誤:たとえばダブルクオート記号を"に置換する場合は、次のように書かなければ
ならない
str.replaceAll("\\"",""");
Javaの文字列ではダブルクオートを\"と書くが、これを正規表現で表す場合には\\"と
書かなければならないのだ。
正:たとえば数字をxに置換する場合は、次のように書かなければならない
str.replaceAll("\\d","x");
数字一文字を表す正規表現は\dだが、これをreplaceAllメソッドで指定する場合は\\d
と書かなければならないのだ。
補足:replaceAllで指定するパターン(最初の引数)は、まず文字リテラルのエスケー
プシーケンスが文字コードに変換され、次に正規表現の解釈が行われます。そのため、
正規表現で\記号を使う場合は、リテラルとして\\を指定する必要があるわけです。
拙著でのミスはリテラルのエスケープシーケンスと正規表現を混同した所にありました。
ダブルクオート記号を"に置換する場合は\記号を重ねずに
str.replaceAll("\"",""");
とします。
この件、スワジランドさんにご指摘いただきました。
ありがとうございます。
---------------------------------------------
p.62, 最後の行 //new --> //cal
p.142, 中段やや下 join 【テーブル1】-->【テーブル2】
p.305, 上段 異動先 --> 移動先
p.364, 1行目 createNew --> createNewFile
p.405, 中段 grant all on bbs.* to Mulder --> grant all on bbs.* to Mulder identified by 'TrustNo1';
p.420, 3行目 createStatement --> getConnection
p.435, 中段
--> 削除(id="user"のほうしか使用していない)
p.438, 下段 UserList0.java --> UserList0.jsp
以上、岡田さんにご指摘いただきました。
ありがとうございました。
---------------------------------------------
p.422 User.javaの String strUrl="" は String strUrl=null に訂正してください。
p.425 User.javaのloadメソッドで1行目と12行目の間に
this.strUserName=rs.getString("user_name");
を追加してください。
以上、AKIRAさんにご指摘いただきました。
ありがとうございました。
----------------------------------------------
P.417 の/BBS/WEB-INF/DBCP/BBS.xml について補足します。
このファイルは、P.404〜P.405で説明しているコンテキストの設定ファイル(BBS.xml)
を修正してDBCPが使えるようにするための例です。網かけの部分を
conf/Catalina/localhost/BBS.xmlにコピー/ペースト(またはファイル全体を上書き)
してください。
また、この設定を有効にするには、Tomcatをリスタートする必要があります。
-----------------------------------------------
P.442ページの UserEdit.jspには正しいコードが書かれていますが、
CD-ROMのコードが違っています。
7行目に次のようなコードがあります。
String strId = request.getParameter("id");
if(strId!=null){
int intId=Integer.parseInt(strId);
editUser.load(intId);
}
この後に
else{
editUser.clear();
}
を追加してください。次のようになります。
String strId = request.getParameter("id");
if(strId!=null){
int intId=Integer.parseInt(strId);
editUser.load(intId);
}else{
editUser.clear();
}
-----------------------------------------------
P.430
ユーザー名:test
パスワード:test
では、ログインできません。これは、testユーザーが初期状態で「無効アカウント」に
なっているからです。
ユーザー名:admin
パスワード:I-have-ABBA
でログインして、ユーザー管理画面でtestユーザーの権限を変更するとログインできる
ようになります。
-----------------------------------------------
P.413
コードの12行目に「//挿入」というコメントがありますが、正しくは「//更新」です。
下から3行目に「//更新」とありますが、正しくは「//挿入」です。
-----------------------------------------------
P.419
CD-ROMのコードの方に間違いがありました。
/BBS/DbcpTest/UserEdit.jsp の 24行目
誤:strId="0";
正:strId="新規";
同57行
誤:<%if(strId.equals("0")){%>
正:<%if(strId.equals("新規")){%>
同77行
誤:<%if(strId.equals("0")){%>
正:<%if(strId.equals("新規")){%>
もともと新規の場合は「ID=0」 と表示していたのをやめて
「ID=新規」と表示するようにしたのですが、DbTestの方だ
けを修正してDbcpTestのコードを修正するのを忘れていま
した。
-----------------------------------------------
P.361
「評価」が選択されていない場合に「評価が指定なし」となるべき所が、
空欄になってしまいます。p.361のコードの一番上の部分を次のように
修正してください。
誤:
if(strEval != null){
intEval=Integer.parseInt(strEval);
strEvalName = aryEval[intEval];
}
正:
if(strEval != null){
intEval=Integer.parseInt(strEval);
}
strEvalName = aryEval[intEval];
「じょん」さんにご指摘いただきました。ありがとうございます。
-----------------------------------------------
お詫びして訂正します。