JSP/Servlet, そしてJavaのお勉強メモ その12
JSP/Servletに収束する内容であっても,
最近全然JSP/Servletのことに触れてないのでタイトルにJavaの一言を追加する.
昨日のソースをテストするんだったら, Stringの中の値を一々変更するより,
tomcat上でやっちまった方が効率がいいだろうってことで, ちょっと前に書いたServletのソースを更新.
package test.textarea; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import test.textarea.ProcessInputData; public class ProcessInputDataServlet extends HttpServlet { public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { // リクエストパラメータの文字エンコーディング名をセット request.setCharacterEncoding( "EUC_JP" ); String textarea = request.getParameter( "text" ); // テキストエリアの値を取り出す HttpSession session = request.getSession( true ); // セッションオブジェクトを取り出す ProcessInputData test = new ProcessInputData( textarea ); test.processString(); textarea = test.getOutputString(); session.setAttribute( "textarea", textarea ); request.getRequestDispatcher( "/jsp/test/textarea/output.jsp" ).forward( request, response ); } }
今んとこすごく上手くいってて嬉しいかぎり.
さて, \nを見つけたときの改行をどうするかだな.
普通にbrとしちまうか, それともはてなみたいにpで囲うか.
気をつけなきゃいけないのは, ulとかのタグの中では, このbrやpを反映させちゃいけないってことだよなあ.
はてなだと, ulとか来ると, pで閉じるのを/ulが来るまで中止してる.
自分で書いたpなんかだと無視して閉じちゃうけど.
テストしてて気付いたことは, "
"の間に何が入っていてもいいということ.
Firefoxでしかテストしてないけど, 改行入ってても問題なかった.
さて, どうしようかな.
はてなだと, "
"ってのは, 許してないみたいだけど.
1行目に"
"は, 不等号として処理される.
追記, あれっ、2行上にある"< /ppp>"って私書いてないよ。もしかして、はてなのバグ?
今さらだけど, ProcessInputDataって名前へんじゃないかな.
Processじゃなくて, Translateの方がしっくりくる気がする.
変数名とかメソッド名とかも変なのがちらほら.
こういうセンスないなあ.
さて, タグ中の属性はどうしようかなあ.
昨日のソースをいじれば, 簡単な属性のチェックなら実装できそうな気がするけど.
"許可している属性名="がくれば, 空白, もしくは'>'が来るまで無視, をくりかえせばいいだけだろうから.
まあ, 中に空白を含む括弧「( )」みたいなのがあったら破綻するけどサ.
次は, 1行をpタグでくくるを実装してみるかな.
ul, ol, dl, table, この3つの内どれかが来たら, それが閉じられるまでpで閉じるのを中止するってかんじにする.
ul, ol, dlとかの閉じ忘れがあったらどうするんだろう?
うーん, ちょっと試した限りだと放置, なのかな?