05-JavaBean、MVC、フィルター、リスナー

JavaBean

エンティティ クラス。通常、ORM をデータベース フィールドにマッピングするために使用されます。

特定の文言

  • 引数のないコンストラクターが必要です
  • プロパティは非公開である必要があります
  • 対応する get/set メソッドが必要です

ORM: オブジェクト リレーショナル マッピング

  • テーブル -> クラス
  • フィールド -> 属性
  • 行レコード -> クラスのオブジェクト
<%--javabean写法--%>
<%@page import="com.XZY_SUNSHINE.pojo.people" %>
<%@ page import="java.net.URLEncoder" %>
<%@page contentType="text/html;charset=utf-8" %>
<jsp:useBean id="someone" class="com.XZY_SUNSHINE.pojo.people" scope="page"/>
<jsp:setProperty name="someone" property="id" value="1"/>
<jsp:setProperty name="someone" property="name" value="hhh"/>
<jsp:setProperty name="someone" property="age" value="18"/>
<jsp:setProperty name="someone" property="address" value="china"/>
<jsp:getProperty name="someone" property="id"/><br>
<jsp:getProperty name="someone" property="name"/><br>
<jsp:getProperty name="someone" property="age"/><br>
<jsp:getProperty name="someone" property="address"/>
<%--java写法--%>
<hr>
<%
    people people = new people();
    people.setName("www");
    people.setAge(19);
    people.setAddress("中国");
    people.setId(2);
    out.println(people.getId()+"<br>");
    out.println(people.getName()+"<br>");
    out.println(people.getAge()+"<br>");
    out.println(people.getAddress()+"<br>");
%>

MVC 3 層アーキテクチャ

導入

MVC: モデル ビュー コントローラー モデル、ビュー、コントローラー

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

モデル

  • 業務処理:ビジネスロジック(サービス)
  • データ永続化レイヤー: CRUD (DAO)

意見

  • 表示データ
  • サーブレットリクエストを開始するためのリンクを提供します

コントローラ(サーブレット)

  • ユーザーのリクエストを受け入れる
  • 対応するコードをビジネス層に引き渡す
  • コントロールビュージャンプ

フィルター、リスナー

フィルター: フィルター

導入

Web サイトのデータをフィルタリングするために使用されます。Web サーバーは起動時に初期化されており、サーバーを閉じるとフィルターは破棄されます。

  • 中国語の文字化けへの対処
  • ログイン認証

ここに画像の説明を挿入

ステップ

  1. ガイドパッケージ

  2. 書き込みフィルター

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    
    
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        //让我们的请求继续往下走,如果不写的话,将会停在这里
        filterChain.doFilter(servletRequest,servletResponse);
    }
<filter>
        <filter-name>encodingfilter</filter-name>
        <filter-class>com.XZY_SUNSHINE.fiflter.encodingfilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encodingfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

リスナー

public class session implements HttpSessionListener {
    
    
    public void sessionCreated(HttpSessionEvent se) {
    
    
        ServletContext servletContext = se.getSession().getServletContext();
        Integer count = (Integer) servletContext.getAttribute("count");
        int onlinecount=0;
        if (count==null){
    
    
            onlinecount=1;
        }else{
    
    
            onlinecount=count.intValue()+1;
        }
        servletContext.setAttribute("count",new Integer(onlinecount));
    }

    public  void sessionDestroyed(HttpSessionEvent se) {
    
    
    }
}
<listener>
        <listener-class>com.XZY_SUNSHINE.listener.session</listener-class>
    </listener>

フィルターは許可のインターセプトを実装します

@Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    
    
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        User user = (User) request.getSession().getAttribute(constants.USER_SESSION);
        if (user==null){
    
    
            response.sendRedirect(request.getContextPath()+"/error.jsp");
        }else{
    
    
            filterChain.doFilter(servletRequest,servletResponse);
        }
    }
<filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.XZY_SUNSHINE.filter.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/jsp/*</url-pattern>
    </filter-mapping>
``

おすすめ

転載: blog.csdn.net/qq_52117201/article/details/129401387