ラベル Jsp、Servlet の投稿を表示しています。 すべての投稿を表示
ラベル Jsp、Servlet の投稿を表示しています。 すべての投稿を表示

2010年12月14日火曜日

Java Dao・Dto・Beanの役割分担のマトメ

Controlクラス{
①request.getParameterのパラメータによって処理の切り替え、
②Daoを生成し、必要なDaoメソッドの実行、
③DaoからListオブジェクトがリターンされるのでセッションやrequestに格納
④ディスパーチ

Daoクラス{
①DBクラスのコネクションとステートメントメソッドの呼び出し、
②Sql文の作成、
③Sql文の実行、
④ループでリザルトの一行ずつの結果をDtoの必要メソッドで実行、
⑤ループ毎でDtoからリターンされるBeanオブジェクトをList.add(Bean)
⑥Listを呼び出し元のControlクラスにリターン


Dto{
①Daoで一行毎のレコードが渡ってくるので、
②一行毎のBeanオブジェクトを生成
②Beans.setId(リザルト.getInt("ID"));
③一行毎のBeansオブジェクトを呼び出し元のDaoにリターン


Beansクラス{
set・getメソッドを記述



2010年12月9日木曜日

Java・DTO・DAO・Beansを自分的にマトメ

★★★★処理内容★★★★★
JspよりIDとパスが入力されるのでIDとパスが正しいのか返す、
★★★★処理の流れ★★★★
①IDとパス入力
②コントロールクラスが値を受け取り、
③Beanクラスを呼び出す
④BeanクラスはIDを受け取り、DaoにIDを渡す、この時の戻り型はDto
⑤DaoクラスはSelect文でIDに紐づく値を実行
⑤DaoはDtoクラスを呼び出しSelect文の値をDtoのフィールドにセット
⑥BeanはDto型で戻ってきた値を、Dtoのgetメソッドを使いBeanのsetメソッドでセット、
⑦Beanに格納されたパスを入力されたパスが同じか調べて結果を返す
⑧jspにディスパーチ

こんな感じかな、
わたしは説明へたですが 、

下記の本はUMLの書き方やオブジェクトなど丁寧で分かりやすく、
2度ほど読むとオブジェクト指向やUMLの感じがつかめるを思います。

*追伸・UML等を勉強中です。

2010年12月7日火曜日

Java セッションのお勉強

■javax.servlet.http.HttpServletRequest.getRequestURI()
本来アクセスしようとしたURLを取得
 
■/Cus/で始まる全てのURLにマッチします。*で 
<filter>
    <filter-name>AuthFilter</filter-name>
    <filter-class>AuthFilter1</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/Cus/*</url-pattern>
★.jspや*.cgiと記述すれば指定したファイルにフィルターが掛かります 
★複数のフィルタがマッチした場合にはどうなるでしょうか。
その場合にはマッチしたフィルタ全てが起動されます。起動される順番は、
設定の順番が有線

2010年9月27日月曜日

Jsp/Servletのスコープ

リクエストスコープの有効範囲は1つのリクエストが終わるまでの間です。
セッションスコープは同じクライアント間が有効範囲です。
アプリケーションスコープはWebアプリケーション内で有効です。リクエストやセッションが違っても有効です。また、アプリケーションコンテキストと呼ばれます。

■getAttribute(String name)での値はObjectで帰ってくるので、必要に応じてキャスト
行う、

■セッションIDとカウンター
package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import sun.net.www.content.text.plain;

public class CounterServlet extends HttpServlet
{
    public void doGet(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException, IOException
    {
        HttpSession session = request.getSession();//セッションの取得
       
        Integer count = (Integer) session.getAttribute("count");//セッションかたcountの取得
       
        if(count == null)//nullなら0を代入        {
            count = new Integer(0);
        }
        count = new Integer(count.intValue() + 1);//カウントUP
       
        session.setAttribute("count", count);//セッションに格納
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
       
        pw.print("<p>sessionIdは" + session.getId() + "</p>");//セッションIDの取得       
        pw.print("<p>" + count + "</p>");//カウントの表示       
    }
   
}

Jsp/Servletでフィルター処理

■フィルター処理
public class TestFilter implements Filter
{
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException
    {
        request.setCharacterEncoding("Windows-31J");//文字コードの設定
        response.setContentType("text/plain; charset=Windows-31J");//文字コードの設定

chain.doFilter(request,response);//次の処理に渡す

■XMLの記述

    <filter>
        <filter-name>TestFilter</filter-name>
        <filter-class>filter.TestFilter</filter-class>
    </filter>
   
    <filter-mapping>
        <filter-name>TestFilter</filter-name>
        <url-pattern>/*</url-pattern>//すべてのファイルにフィルターを掛ける
    </filter-mapping>

jsp/servletで入力値のチェック

■数値チェック,intに変換し数値で無い場合はキャッチで受け取る
int year = Integer.parseInt(yearStr);
catch (Exception e)

■emailの書式チェック
String pattern = "[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+";
if(text.matches(pattern))
{
 マッチ処理
}
else{マッチしない処理}

2010年9月16日木曜日

JspとServletとJavaBeansの連携で分かった事

■■■■■■■■■■■サーブレットで大事な事■■■■■■■■■■■■■■

 リクエストに渡すスコープ名request.setAttribute("cb",cb);とJsp部分でJavaBeansで受け取る
<jsp:useBean id="cb" class="mybeans.CarBean"の部分の名前は合わせておく、
public class Sample7 extends HttpServlet
{
    public void doGet(HttpServletRequest request,
            HttpServletResponse respons)
    throws ServletException
    {
        try
        {
            //GETで名前の受け取り
            String tmp = request.getParameter("cars");
            String names = new String(tmp.getBytes("8859_1"),"JISAutoDetect");
       
            //BeansにCarの名前をセット
            CarBean cb = new CarBean();
            cb.setCarName(names);
            cb.makecardata();
       
            request.setAttribute("cb",cb);//この部分

2010年9月14日火曜日

コンテキストとは!!サーブに画面線維の注意点

アプリケーションサーバは各階層をコンテキストという単位で管理している、
コンテキストルートはJspでは
request.getContextPath()
で呼び出します。
requestHttpServletRequestクラスの暗黙オブジェクトで、Jspではデフォルトで
使えます。

■■■■■getRequestDispatcherdeでサーブに画面線維の注意点■■■■■■■■■■■■
(    RequestDispatcher rd = sc.getRequestDispatcher("/ExInclude2Servlet");

getRequestDispatcherdeを使ってサーブレットに画面線維をする場合は、
web.xmlに登録しておかなければいけません

■■■■■forwardメソッドとsendRedirectメソッドとの違い■■■■■

forwardは(独立しない)リクエスト処理
sendRedirect (独立した)リクエスト処理