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とかの閉じ忘れがあったらどうするんだろう?
うーん, ちょっと試した限りだと放置, なのかな?