基於ssh框架web示例


基於ssh框架web示例

介紹

Spring Boot Web 開發非常簡單,該示例包括包括目前web開發基本都需要用到的內容

- 序列化(json)輸出
- 過濾器(filters)
- 監視器(listener)
- 攔截器(interceptor)
- 日志(基於lombok)
- properties配置
- 數據庫(mysql)crud
- ORM
- 單元測試

等等內容

示例代碼目錄介紹

java代碼目錄規划如下:

com
  +- easy
    +- common
      +- filter
      |  +- CustomFilter.java                   自定義過濾器
      +- interceptor
      |  +- CustomHandlerInterceptor.java       自定義攔截器
      +- listener
      |  +- CustomRequestListener.java          自定義Request監視器
      |  +- CustomSessionListener.java          自定義Session監視器
      +- AppProperties                          項目配置解析類
    +- model                                    model層
      +- repository                             數據訪問
      |  +- UserRepository.java
      +- User.java
    +- service                                  服務層
    +- web                                      controller層
      |  +- HelloController.java                入門示例
      |  +- ThymeleafController.java            模塊引擎示例
      |  +- UserController.java                 查詢用戶示例
    +- WebApplication                           啟動器
    +- WebConfiguration                         配置入口(配置過濾器、攔截器、監視器)等

依賴模塊引入

    <!--Java持久化規范-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!--thymeleaf模板引擎-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <!--web依賴,包含(包括Tomcat和spring-webmvc)等-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--mysql連接驅動-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!--lombok依賴-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <!--jquery依賴-->
    <dependency>
        <groupId>org.webjars.bower</groupId>
        <artifactId>jquery</artifactId>
        <version>3.4.1</version>
    </dependency>

    <!--bootstrap依賴-->
    <dependency>
        <groupId>org.webjars.bower</groupId>
        <artifactId>bootstrap</artifactId>
        <version>3.3.7</version>
    </dependency>

    <!--單元測試-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

技術選型

后端技術

技術 名稱
SpringFramework 容器
Spring Boot 框架容器
spring-boot-starter-data-jpa Java持久化規范
spring-boot-starter-thymeleaf 模板引擎
spring-boot-starter-web 快速web應用開發
mysql-connector-java mysql連接驅動
lombok 簡化java代碼
spring-boot-starter-test 單元測試

前端技術

技術 名稱
jquery JavaScript 庫
bootstrap 前端框架

監聽器、過濾器、攔截器介紹

監聽器

listener是servlet規范中定義的一種特殊類。用於監聽servletContext、HttpSession和servletRequest等域對象的創建和銷毀事件。監聽域對象的屬性發生修改的事件。用於在事件發生前、發生后做一些必要的處理。

其主要可用於以下方面:

- 1、統計在線人數和在線用戶
- 2、系統啟動時加載初始化信息
- 3、統計網站訪問量
- 4、記錄用戶訪問路徑。

過濾器

Filter是Servlet技術中最實用的技術,Web開發人員通過Filter技術,對web服務器管理的所有web資源:例如Jsp, Servlet, 靜態圖片文件或靜態 html 文件等進行攔截,從而實現一些特殊的功能。例如實現URL級別的權限訪問控制、過濾敏感詞匯、壓縮響應信息等一些高級功能。它主要用於對用戶請求進行預處理,也可以對HttpServletResponse進行后處理。使用Filter的完整流程:Filter對用戶請求進行預處理,接着將請求交給Servlet進行處理並生成響應,最后Filter再對服務器響應進行后處理。

攔截器

Interceptor 在AOP(Aspect-Oriented Programming)中用於在某個方法或字段被訪問之前,進行攔截然后在之前或之后加入某些操作。比如日志,安全等。一般攔截器方法都是通過動態代理的方式實現。可以通過它來進行權限驗證,或者判斷用戶是否登陸,或者是像12306 判斷當前時間是否是購票時間。

三大器在springboot中使用時,首先實現相應的接口定義類,然后通過配置類將其加入到spring容器中,從而實現相應的功能。

請求鏈路過程

請求鏈路過程

資料

示例代碼-github


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM