Jsp+サーブレット+Spring+SpringMVC復習

12278 ワード

総考綱
   50 
      :
        1.     4  Spring & SpringMVC
        2.JSP+Servlet   46 
   10 
       
   20 
      :
            1.           
            2.  servlet     
            3.  servlet     
            4.  cookie session   
            5.  JSP      
            6.http           ?       ?
            7.  JSP       
            8.   method=“get” “post”     ?
   20 
      :
            1.  JDBC     JDBC                
            2.    servlet+jsp    (        )   

選択問題と空欄
先生のノートを調べる
簡単な解答
1.ソフトウェア開発の三層アーキテクチャを簡単に述べる
    ,        ,   “     ”、“     ”、“   ”。

     :                     ,                。

   :                   ,                    ,
            ,  Windows   Web  。

     :              ,    。
          ,             , “    ”        。

                、  、         。
      ,          ,
                 ,               。

2.servletライフサイクルの概要
1.   servlet  
                        
2.    init
            servlet             
3. service       
          
4.       destory  

3.servletの実行手順を簡単に説明する
1.                  
2.                
3.       ,HttpServletRequest         
4.          ,HttpServletResponse        
5.           web.xml     Servlet
6.      service(doGet/doPost)  
7.                  service  
8.service                   
9.           html
10.                      
11.                  

4.クッキーとセッションの違いを簡単に述べる
cookie  session    : 

1、cookie            ,session        。 

2、cookie     ,            COOKIE   COOKIE            session。 

3、session              。
     ,                         ,    COOKIE。 

4、  cookie         4K,
                20 cookie。 
cookie  session    : session   cookie    ,                 session
          ,    cookie 。

                     session_id       ,
        ,  sessionid                  。
  sessionid    ,                 。

cookie
session
クライアントに保存
サーバに保存
文字列のみ保存
任意のタイプのデータを保存できます
保存されているデータサイズはブラウザに関係して一般的に4 k程度です
保存されたデータサイズは、理論的にはサーバメモリが十分であれば制限されません.
比較的安全性が低い
高いセキュリティ
サーバの圧力を分担
サーバ圧力の増加
Cookie
         (   )
               
          
         
             
           cookie          。
            
            
                    
            。

Session
                
                     session  (HttpSession)
             jsessionid
               cookie    jsessionid         
            jsessionid      
     jsessionid     session  
                    

5.JSPの四大役割ドメインを簡単に述べる
アクティブドメイン
範囲
pageContext
現在のインタフェース
request
同じリクエスト
session
同じセッション
application
アプリケーション全体
6.http応答でよく使われるステータスコードはどれらがありますか?それぞれはどんな意味ですか.
共通ステータスコード:
ステータスコード
代表ステータス
200
成功
302
リダイレクトステータスコード
404
リソースが存在しないアクセスコマンドが見つかりません
405
要求方式が正しくない
500
サーバ内部の異常コードに異常が発生しました
ステータスコード<400
成功
ステータスコード>=400
失敗
7.JSPの九大内蔵対象を簡単に述べる
jsp仕様によって提供され、自分で作成する必要はありません.
1.page
      jsp        this
2.pageContext
            
                
      pageContext    page request session application      
3.request
                  
4.response  
           
5.out
                  
6.session
                 
7.config
         serlvetConfig   
        servlet     
8.application
             
                              
           ServletContext         
           。
                          。
      :                  
9.exception
        
          isErrorPage=true    

8.method=「get」と「post」の違いを説明してください.
    :   
get      url ,    ,   , post      ,    。

    :      
get         2kb, post   ,
get        ASCII  , post       ISO10646    

    :   
get         ,          , post               。

    :get post   enctype     
enctype    ,    application/x-www-form-urlencoded
     multipart/form-data    post。

    :    get            URI
  get              。 post     。

プログラミング問題
第1題JDBC接続データベースを作成してすべてのユーザー情報を検索する
JDBCの書写操作書写ツール類JDBCUtil.java
package cn.icanci.utils;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;

/**
 * @author icanci
 * @version 1.10
 * @classAction JDBC   
 */
public class JDBCUtil {
    private static Connection conn;
    private static String url;
    private static String username;
    private static String password;

    static {
        url = "jdbc:mysql://localhost:3306/icanci";
        username = "root";
        password = "ok";
    }
    @SuppressWarnings("unused")
    private static void init() throws ClassNotFoundException, SQLException {
        //      
        //     
        Class.forName("com.mysql.jdbc.Driver");
        //     
        conn = DriverManager.getConnection(url, username, password);
    }

    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        init();
        return conn;
    }
    public static void closeConn() throws SQLException {
        //       
        conn.close();
    }
}

テストクラスJDBC_CRUD.JAvaテスト
package cn.icanci.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.jupiter.api.Test;

import cn.icanci.utils.JDBCUtil;

/**
 * @author icanci
 * @version 1.10
 * @classAction
 */
class JDBCUtilTest {

    //    
    @Test
    void testGetConn() throws SQLException, ClassNotFoundException {
        Connection conn = JDBCUtil.getConnection();
        System.out.println(conn);
        JDBCUtil.closeConn();
    }

    //      
    @Test
    void testFindAdd() throws ClassNotFoundException, SQLException {
        PreparedStatement ps = null;
        ResultSet rs = null;

        //     
        Connection conn = JDBCUtil.getConnection();
        //   sql  
        String sql = "select * from t_user";
        //   sql  
        ps = conn.prepareStatement(sql);
        rs = ps.executeQuery();
        while (rs.next()) {
            int id = rs.getInt(1);
            String username = rs.getString(2);
            String password = rs.getString(3);
            String phone = rs.getString(4);
            String address = rs.getString(5);
            System.out.println(id + " " + username + " " + password + " " + phone + " " + address);
        }
        rs.close();
        ps.close();
        conn.close();
    }
    
    //    
    @Test
    void testInsert() throws ClassNotFoundException, SQLException {
        PreparedStatement ps = null;
        //    
        //    
        Connection conn = JDBCUtil.getConnection();
        //  sql  
        String sql = "insert into t_user (username,password,phone,address) values (?,?,?,?)";
        //       
        ps = conn.prepareStatement(sql);
        //      
        ps.setString(1,"haxi");
        ps.setString(2,"haxi");
        ps.setString(3,"110");
        ps.setString(4,"UU");
        ps.executeUpdate();
        
        conn.close();
        ps.close();
        
    }
    //    
    @Test
    void testDelete() throws ClassNotFoundException, SQLException {
        PreparedStatement ps = null;
        //    
        //    
        Connection conn = JDBCUtil.getConnection();
        //  sql  
        String sql = "delete from t_user where id = ?";
        //    
        ps = conn.prepareStatement(sql);
        ps.setInt(1, 2);
        //  
        ps.executeUpdate();
        ps.close();
        conn.close();
    }
    
    //    
    @Test
    void testUpdate() throws ClassNotFoundException, SQLException {
        PreparedStatement ps = null;
        //    
        //    
        Connection conn = JDBCUtil.getConnection();
        //  sql  
        String sql = "update t_user set username = ? where id = ?";
        ps = conn.prepareStatement(sql);
        ps.setString(1, "  ");
        ps.setInt(2, 5);
        ps.executeUpdate();
        ps.close();
        conn.close();
    }
    
}


テスト結果
1 icanci 98886f12e715dc58f36c15ac932f772c 15252067235     
2 dao dao 17372588461     
3 dao dao 17372588461     
4 ic f05a225e14ff5e194a8eef0c6990cefb 15252067235 USA

ここではJDBCをマージしますが、推奨しません.
package cn.icanci.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author 178111545333 
 * @version 1.10
 * @classAction
 */
public class JDBC_GO {
    private static Connection conn;
    private static String url;
    private static String username;
    private static String password;

    static {
        url = "jdbc:mysql://localhost:3306/shop";
        username = "root";
        password = "ok";
    }

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        PreparedStatement ps = null;
        ResultSet rs = null;
        //      
        //     
        Class.forName("com.mysql.jdbc.Driver");
        //      
        conn = DriverManager.getConnection(url, username, password);
        //   sql  
        String sql = "select * from t_user";
        //   sql  
        ps = conn.prepareStatement(sql);
        rs = ps.executeQuery();
        while (rs.next()) {
            int id = rs.getInt(1);
            String username = rs.getString(2);
            String password = rs.getString(3);
            String phone = rs.getString(4);
            String address = rs.getString(5);
            System.out.println(id + " " + username + " " + password + " " + phone + " " + address);
        }
        rs.close();
        ps.close();
        conn.close();
    }
}

テスト結果
1 icanci 98886f12e715dc58f36c15ac932f772c 15252067235     
2 dao dao 17372588461     
3 dao dao 17372588461     
4 ic f05a225e14ff5e194a8eef0c6990cefb 15252067235 USA

第2題servlet+jspによるログイン(ユーザ名ユーザパスワード)機能の実現
jspインタフェースindex.jsp



    
        
        
    
    
        <form action="/user/login" method="post">
              :<input type="text" name="username" id="" value=""/><br/>
              :<input type="password" name="password" id="" value=""/><br/>
            <input type="submit" value="  "/>
        </form>
    

</code></pre> 
 <p>          success.jsp</p> 
 <pre><code>



<meta charset="UTF-8"/>
<title>Insert title here


        



サーブレット制御ビジネスロジック
package cn.icanci.web.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author icanci
 * @version 1.10
 * @classAction user     
 */
@WebServlet("/user/login")
public class LoginServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //             
        req.setCharacterEncoding("UTF-8");
        //      
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //    
        if (!("icanci".equals(username) && "icanci".equals(password))) {
            //     
            //      
            //     index.jsp
            resp.sendRedirect("/index.jsp");
            return;
        }

        //               success.jsp
        resp.sendRedirect("/success.jsp");
        return ;
    }
}

ここ@私自身