JSP/Servletのお勉強メモ その9
とりあえず, 今日はHTMLタグを認識しなくした.
余計なのまで調べて, これだけですごく苦労した.
サーブレットソースにちょっとだけ手を加えた.
package test.textarea; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; 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 ); // セッションオブジェクトを取り出す StringBuffer text = new StringBuffer( textarea ); for( int i=0; i<text.length(); i++ ){ char c = text.charAt(i); if( c == '&' ){ text.deleteCharAt( i ); text.insert( i, "&" ); } else if( c == '>' ){ text.deleteCharAt( i ); text.insert( i, ">" ); } else if( c == '<' ){ text.deleteCharAt( i ); text.insert( i, "<" ); } else if( c == '\"' ){ text.deleteCharAt( i ); text.insert( i, """ ); } } textarea = text.toString(); session.setAttribute( "textarea", textarea ); request.getRequestDispatcher( "/jsp/test/textarea/output.jsp" ).forward( request, response ); } }
これで不等号やダブルクォーテーションをちゃんと変換する.
Wikiのソース見てたら, 何かパーサを使ってるみたいだった.
自分も使ってみようと調べてみたけどだめだった.
いきなりパーサに飛んでも分かりゃしねえ.
ゆっくりやってこう. ゆっくり.