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 サーバーは起動時に初期化されており、サーバーを閉じるとフィルターは破棄されます。
- 中国語の文字化けへの対処
- ログイン認証
ステップ
-
ガイドパッケージ
-
書き込みフィルター
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>
``