1. 程式人生 > >ssmweb專案的Demo 攔截器 頁面 jsp頁面實現 未完待續 以及配置資訊的載入順序和載入

ssmweb專案的Demo 攔截器 頁面 jsp頁面實現 未完待續 以及配置資訊的載入順序和載入

Controller請求到springmvc的前端控制器,從處理器對映器找相應的handler(用@RequestMapping(" URL引數之類的東西 "),對映成功後,由Springmvc生成一個handler物件,該物件中有一個方法,即對映成功的該方法),由相應的處理器介面卡去執行該handler,handler中呼叫的是業務控制層(service)的方法介面。然後返回jsp/html地址的字串或有地址和請求引數的ModelAndView物件(其中裝載著引數如name,id,和目標地址即相應的顯示頁面如jsp,Map儲存,然後放到request物件中)到前端控制器,然後前端控制器把ModelAndView傳給檢視解析器,加上解析器中設定的jsp地址的字首和字尾,然後把檢視返回給前端控制器,再進行檢視的渲染(把map中資料填充的request物件中)返回 。

業務控制層(service):

  一個service介面,還有其相應的實現類serviceImpl,這樣做可以使業務控制層的開發和顯示層的開發並行進行,因為只要給顯示層一個service的介面即可。service層的實現類中用Spring的IOC(Autowired註解)自動注入了一個或多個mapper物件,即該物件是呼叫sqlSessionFactory的getSession的getBean方法獲得的。然後再呼叫mapper物件的相應方法,需要的時候還應該加入適當的控制流程(比如BeanUtils.copyProperties()方法進行屬性的拷貝或業務的校驗)。

持久層(dao/mapper):

  用逆向工程生成了相應的mapper.java即相應的mapper.xml,還有和資料庫表對應的pojo,這些可以實現比較簡單的單表查詢。

  如果有多表關聯的查詢,則需要自定義mapper,因為返回結果包括多個pojo中的屬性,不建議直接在pojo中新增相應屬性,而應該寫一個繼承某個pojo類的子類,然後在該子類中新增所需的其他pojo中的屬性,這樣返回型別即為該子類。其中查詢的引數為QueryVo類,其中組合了該上述子類和其他子類的物件,需要什麼引數就往裡寫什麼物件。

但是這個時候配置資訊做了那些事情呢?

首先載入配置檔案是

1,web.xml

//根據指定的路徑區讀取spring配置檔案。注意:此時伺服器會去載入spring配置檔案,暫停本段配置之後的程式碼執行;

例如在我公司的配置檔案中 讀取了以下的配置檔案

<context-param>
        <param-name>log4jConfiguration</param-name>
        <param-value>classpath:log4j2.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>

    <context-param>

        <param-name>

            contextConfigLocation

      </param-name>

      <param-value>

           classpath:application-context.xml,

           classpath:application-database.xml,

           classpath:application-redis.xml

      </param-value>

    </context-param>

2.載入spring配置檔案。applicationContext.xml中的主要配置如下:

//自動掃描base-package對應的路徑下面的java檔案,如果掃描到檔案中帶有@Service,@Component,@Repository,@Controller等這些註解的類,則把這些類註冊為bean

<context:component-scan base-package="com.yc.*">

<context:include-filter type="annotation"
            expression="org.springframework.stereotype.Service" />
        <context:include-filter type="annotation"
            expression="org.springframework.stereotype.Component" />
        <context:exclude-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />

</context:component-scan>

web.xml配置的所有東西都會一一載入 不出意外就會載入完成,整個專案就這樣起來了

到這裡廢話就不多說了 開始整理ssm專案



相關推薦

ssmweb專案Demo 攔截 頁面 jsp頁面實現 待續 以及配置資訊載入順序載入

Controller請求到springmvc的前端控制器,從處理器對映器找相應的handler(用@RequestMapping(" URL引數之類的東西 "),對映成功後,由Springmvc生成一個handler物件,該物件中有一個方法,即對映成功的該方法),由相應的處理

Struts2 攔截控制jsp頁面跳轉

源自一個題目: 請編寫一個攔截器,該攔截器可以獲得使用者輸入的使用者名稱這個資料,業務邏輯為逐個判斷使用者名稱中是否包含“你”,“我”,“他”三個資料,如果包含則直接返回輸入頁面,如果不包含則執行至PersonAction。(除程式碼外,要給出攔截器和Action的配置檔案

mpvue+vant weapp專案開發過程中遇到的問題(待續

一、元件上bind:方法名=“方法”,找不到方法 報錯圖: 百度到的:都說methods不可用,可以用computed代替,但是我用了computed,裡面的方法全都在頁面載入時做完了。。。還操作毛線。。。 解決辦法:誤打誤撞用methods可以了。把元件上的bind:方法名=

使用 sitemesh/decorator裝飾裝飾jsp頁面(原理及詳細配置

sa一、SiteMesh介紹SiteMesh是一個Java WEB項目的網頁布局和修飾框架。使用SiteMesh後就不再需要在每個頁面中都用<jsp:include>標簽引入頁頭、頁尾、導航等其他公用頁面了。可以將網頁的內容和頁面結構分離,達到頁面結構共享的目的。頁面裝飾效果耦合在目標頁面中,無需

SSH專案開發中,將jsp頁面放在WEB-INF的原因解析

在一些安全型要求比較高的專案開發中,我們經常看到jsp頁面都被放在WEB-INF下面了。這是出於對安全性的考慮,是為了程式碼的安全。這樣實現起來雖然麻煩了點,而且頁面跳轉很不方便。但是整個專案的安全

Java小專案中WEB-INF下jsp頁面如何訪問?

                                       Java小專案中WEB-INF下jsp頁面如何訪問 一:一般為啥要把jsp頁面放在WEB-INF吶?      這樣主要是為了網站的安全的角度來說的,WEB-INF是安全目錄Tomcat 預設的

sitemesh/decorator裝飾裝飾jsp頁面(原理及詳細配置

摘要:首先這個Decorator解釋一下這個單詞:“裝飾器”,我覺得其實可以這樣理解,他就像我們用到的Frame,他把每個頁面共有的東西提煉了出來,也可能我們也會用各種各樣的include標籤,將我們的常用頁面給包括進來:比如說頁面的top,bottom這些每個頁面幾乎

用IntelliJ IDEA新建maven的javaWeb專案部署,啟動訪問index,jsp頁面

對於用慣了eclipse的人,idea其實還挺不一樣的,也是摸索了很久,看了好多部落格,這裡就記錄一下,以後肯定經常用!,不過使用

html 頁面/jsp 頁面 日期格式的轉換,將日期格式轉換為字串型別

jsp 頁面 引入jstl標籤庫中fmt <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 使用標籤進行日期Date型別到String 字串的轉化 <fmt:formatDate valu

springboot專案使用攔截修改/新增前端傳輸到後臺header的Cookie引數

  本質上來講,request請求當中的引數是無法更改的,也不能新增或者刪除。  但在後臺程式中,一般對request的引數的操作,都是通過request的getParameter、getParameterNames、getParameterValues等方法執行的;所以我們要是能重寫這些方法,就從側面改變了

SpringVC 攔截+自定義註解 實現權限攔截

json.js 加載 bean media tar attr esp 權限 encoding 1.springmvc配置文件中配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w

Mybatis攔截(插件實現原理)

通過 source hand page fault PE ace sign targe 在mybatis的mybatis.cfg.xml中插入: <plugins> <plugin inter

Mybatis之攔截--獲取執行SQL實現多客戶端數據同步

gin sign factor 方便 完成後 動態代理 exc batis 包安裝 最近的一個項目是將J2EE環境打包安裝在客戶端(使用 nwjs + NSIS 制作安裝包)運行, 所有的業務操作在客戶端完成, 數據存儲在客戶端數據庫中. 服務器端數據庫匯總各客戶端的數據進

關於SpringMVC攔截是否執行緒安全及多執行緒訪問產生的requestsession

Springmvc的攔截器預設是執行緒不安全,即全域性屬性就是共享的即不執行緒安全(如下程式碼中變數i就是執行緒不安全的)。 定義了一個攔截器: 並配置了一個SessionListener(關於JavaWeb的Listener配置這裡沒貼程式碼): 設定sess

利用xfire框架攔截(Handler)實現介面訪問日誌列印

前景:             因專案中釋出了80+個介面,需要給每個介面加上請求和響應的日誌資訊。(PS:沒日誌很蛋疼老是背鍋。)給這些介面加上日誌資訊的同時還必須滿足介面功能不受影響。 方案:             根據研究發現可以使用xfire的handler攔

Struts2攔截的自定義實現

為了實現自定義攔截器,Struts2提供了Interceptor介面,以及對該介面實現的一個抽象攔截器類(AbstractInterceptor)。實現攔截器類一般可以實現Interceptor介面,或者直接繼承AbstractInterceptor類。Struts2還提供了

SSM整合系列之 通過Mybatis攔截獲取SQL語句 實現SQL監控

摘要:Mybatis為我們提供了一個Interceptor介面,通過實現該介面就可以定義我們自己的攔截器,MyBatis攔截器介面提供的3個方法中,plugin方法用於某些處理器(Handler)的構建過程。interceptor方法用於處理代理類的執行。setProperties方法用

Struts2攔截的原理及實現

一、理解Struts2攔截器 1. Struts2攔截器是在訪問某個Action或Action的某個方法,欄位之前或之後實施攔截,並且Struts2攔截器是可插拔的,攔截器是AOP的一種實現. 2. 攔截器棧(Interceptor Stack)。Struts2攔截器

js頁面-待續

<a href="<a href="javascript :history.back(-1)">返回上一頁</a> 或 <a href="javascript :;

SpringBoot靜態資源訪問+攔截+Thymeleaf模板引擎實現簡單登陸

開始 -s 17. 登陸 maven安裝 有一點 1.8 static source 在此記錄一下這十幾天的學習情況,卡在模板引擎這裏已經是四天了。 對Springboot的配置有一個比較深刻的認識,在此和大家分享一下初學者入門Spring Boot的註意事項,如果是初學S