基於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容器中,從而實現相應的功能。
請求鏈路過程