1. 程式人生 > >框架搭建(SpringMVC+Spring+hibernate )

框架搭建(SpringMVC+Spring+hibernate )

spring版本:3.0.5

hibernate版本:3.3

簡介:Spring MVC

Spring MVC(Model View Controller)是 Spring 中一個重要的組成部分。

Spring MVC 框架處理請求的流程:

Spring MVC 核心架構圖


Spring MVC優勢:

1、清晰的角色劃分:前端控制器(DispatcherServlet)、請求到處理器對映(HandlerMapping)、處理器介面卡(HandlerAdapter)、檢視解析器(ViewResolver)、處理器或頁面控制器(Controller)、驗證器(   Validator)、命令物件(Command  請求引數繫結到的物件就叫命令物件)、表單物件(Form Object 提供給表單展示和提交到的物件就叫表單物件)。

2、分工明確,而且擴充套件點相當靈活,可以很容易擴充套件,雖然幾乎不需要;

3、由於命令物件就是一個POJO,無需繼承框架特定API,可以使用命令物件直接作為業務物件;

4、和Spring 其他框架無縫整合,是其它Web框架所不具備的;

5、可適配,通過HandlerAdapter可以支援任意的類作為處理器;

6、可定製性,HandlerMapping、ViewResolver等能夠非常簡單的定製;

7、功能強大的資料驗證、格式化、繫結機制;

8、利用Spring提供的Mock物件能夠非常簡單的進行Web層單元測試;

9、本地化、主題的解析的支援,使我們更容易進行國際化和主題的切換。

10、強大的JSP標籤庫,使JSP編寫更容易。

………………還有比如RESTful風格的支援、簡單的檔案上傳、約定大於配置的契約式程式設計支援、基於註解的零配置支援等等。

參考:http://blog.jobbole.com/29706/

1.準備的jar包以及配置檔案如下:

2.新建一個JAVA web專案(MyEclipse:如果想用maven工具的話,新建工程時也可以勾選上Maven,當然也可以後期全工程轉換為Maven專案)


3.建好以後出現以上包結構即可(這裡包結構不一定非要這麼建,但自己在建時要注意在接下來的配置檔案裡的相關配置)。

4.然後可以將config資料夾裡的配置檔案複製到專案的config中,同時把lib資料夾中的JAR

包複製到專案的lib檔案中 如圖:


5.最後配置web .xml檔案(可以複製第一步圖中那個web.xml檔案的內容)

首先介紹下web.xml檔案配置,一下圈的是需要注意的


接下來介紹Spring-mvc.xml

注:

1、<context:component-scan>配置這個標籤,spring可以自動去掃描base-pack下面或者子包下面的java檔案,如果掃描到有@Component @[email protected]等這些註解的類,則把這些類註冊為bean。如果配置了<context:component-scan>那麼<context:annotation-config/>標籤就可以不用再xml中配置了,因為前者包含了後者。

2、org.springframework.web.servlet.view.UrlBasedViewResolver是檢視解析器的一種,Spring常用的檢視解析器列表如下:

檢視解析器 描述
XmlViewResolver 介面 ViewResolver 的實現,從 XML 配置檔案中查詢檢視實現(預設 XML 配置檔案為 /WEB-INF/views.xml).
ResourceBundleViewResolver 介面 ViewResolver 的實現,用於從 properties 檔案中查詢檢視。.
UrlBasedViewResolver 介面 ViewResolver 的實現,用於根據請求的 URL 路徑返回相應的檢視,該檢視需為抽象類 AbstractUrlBasedView 的實現,它還有些子類,如 InternalResourceView 和 JstlView 等 .
InternalResourceViewResolver UrlBasedViewResolver 的子類,通常用於查詢 JSP(類 InternalResourceView)和 JSTL(類 JstlView,InternalResourceView 的子類)等檢視。
VelocityViewResolver /FreeMarkerViewResolver UrlBasedViewResolver 的子類分別用於支援 Velocity(類 VelocityView)和 FreeMark 檢視(類 FreeMarkerView)。
ContentNegotiatingViewResolver 介面 ViewResolver 的實現,用於根據請求檔案的字尾名或請求的 header 中的 accept 欄位查詢檢視。
      

如使用InternalResourceViewResolver時可以這樣配置:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>

檢視解析器的詳細配置可以檢視http://www.ibm.com/developerworks/cn/java/j-lo-springview/

-------------------------------------------------------------------------------------------------------------------------------------------------

然後介紹SpringContext.xml

這裡資料來源配置我沒使用jdbc.properties,你可以自己設定,檔案已準備!

注:

1、dataSource裡使用的是apache的dbcp 資料來源org.apache.commons.dbcp.BasicDataSource.

也可以使用spring的資料來源:org.springframework.jdbc.datasource.DriverManagerDataSource

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url"
            value="jdbc:mysql://localhost:3306/oa?useUnicode=true&amp;characterEncoding=utf-8">
        </property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>

還可以使用c3p0資料來源:

<bean id="dataSource_oracle" class="com.mchange.v2.c3p0.ComboPooledDataSource"

        destroy-method="close" >

        <property name="driverClass" value="${jdbc.driverClassName}" />

        <property name="jdbcUrl" value="${jdbc.url}" />

        <property name="user" value="${jdbc.username}" />

        <property name="password"  value="${jdbc.password}" />

</bean>

2、使用靜態資源(mvc必須是3.1以上版本才支援,如http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd)

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

    <mvc:default-servlet-handler />

3、事務管理配置

<!-- 事務管理配置  -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>

最後一步測試(記得資料庫服務要啟動):可以在entiry裡新建一個實體類!如圖:

建好如圖實體類後(mysql的name可以小寫)就可以把專案加到web伺服器啟動服務了!

啟動沒有拋錯的話就會在資料庫新建一張表,如圖:

以上就是SMSH的基本配置 如果控制檯沒拋錯誤,並新建表了,就說明SMSH框架搭建成功!

異常情況一:org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.

spring配置檔案裡xsd檔案版本號與jar包不匹配,使用自己jar包相匹配的版本號即可。

異常情況二:The request sent by the client was syntactically incorrect ().

從字面上理解是:客戶端傳送的請求語法錯誤。實際就是springmvc無法實現資料繫結。

舉個例子:

  1. public String saveOrder(  
  2.             String[] itemIds,  
  3.             @RequestParam("level")String[] levels,  
  4.             ModelMap modelMap)  

這裡面的itemIds就一定要和jsp頁面裡的引數名字相同;如果你非要命名不相同要像levels的寫法那樣通過@RequestParam來轉換,其中括號裡面的level是jsp頁面裡面的引數名字,levels是在controller方法中要用到的名字;如果jsp頁面中沒有itemIds和level任何一個引數,也會報相同的錯誤,就是因為springmvc無法實現資料的繫結。因此,如果不能保證存在”level”的引數,必須使用:@RequestParam(value = "level", required = false)

===============================================================================================================================

小知識點:控制層Controller想用HttpServletRequestr的方法,可以在方法上直接用引數的形式傳入,框架會自動注入。

request.getParameterNames();可以看到前臺封裝了哪些引數到後臺,request.getParameter("page");取出引數值。

小知識點:Spring MVC 自動轉換功能HttpMessageConverter(參見http://www.360doc.com/content/12/0809/11/9600761_229177035.shtml)

預設起作用的MVC註解功能

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

裡面有一些預設的轉換類



小知識點:@ResponseBody作用:把返回值直接寫到HTTP response body裡。

小知識點

相關推薦

框架搭建SpringMVC+Spring+hibernate

spring版本:3.0.5 hibernate版本:3.3 簡介:Spring MVC Spring MVC(Model View Controller)是 Spring 中一個重要的組成部分。 Spring MVC 框架處理請求的流程: Spring MVC 核心

關於框架整合springMVC+spring+mybatis

所需的jar包 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯器進行了一些功

SSH三大框架搭建整合struts2+spring+hibernate

SSH說的上是javaweb經典框架,不能說100%要會SSH框架,但是大部分公司都在用,說到框架,都會提到ssh吧,這次就以很簡單的註冊例子來整合SSH框架。整合框架要注意的是先每個框架單獨測通後再整合,不然整合後出現問題比較難排查。 環境:windows

使用myeclipse搭建SSMspringMVC+spring+mybatis

一、SSM搭建     1、使用的工具:  myeclipse+jdk8+maven+MySQL+Tomcat8.5     2、配製檔案截:            二、配置檔案     1、web.xml          1 <?xml version="1.0

SSH框架整合過程Struts2+Spring+Hibernate

在學習java框架的過程中,我總結過如下文章:在將三大框架都學習一遍之後,再來看看如何整合SSH框架。先來看看SSH框架如何配合使用,如圖所示:整合步驟:1、匯入所需jar包。2、搭建struts2環境

SSH整合Struts2+Spring+Hibernate

iso 實體 action sun xmlns prop ftw .com efi 為了方便本次使用的是Myeclipse8.5 一、創建web工程,搭建Struts框架開發環境: 步驟1::導入struts框架所需的jar包 步驟2:在web.xml中配置struts2

SSH集成Struts+Spring+Hibernate

ren struts2的 ping rect 註意 實現 XML 配置文件 cor 環境:struts2.3.Xspring4.0.0hibernate4.2 思路:從下開始往上集成;層與層之間沒有關系;在集成的時候,只關註當前集成的那個層的內容; 1,創建一個空的web項

SSH整合Struts+Spring+Hibernate

環境:struts2.3.Xspring4.0.0hibernate4.2 思路:從下開始往上整合;層與層之間沒有關係;在整合的時候,只關注當前整合的那個層的內容; 1,建立一個空的web專案;重新定位class檔案編譯路徑2,設定專案的編碼;3,完成domain;4,完成對映檔案;5,寫DAO介面;6,

高可用分散式服務框架搭建Dubbo、ZooKeeper

以下是官方例項部署方法。此處涉及四個服務: zookeeper:註冊中心 dubbo-admin:服務管理後臺 dubbo-demo-provider:生產者(服務提供者) dubbo-demo-consumer:消費者(服務使用者) 需要注意的是,必

Maven專案環境搭建Maven + Spring + IBatis步驟

準備步驟 ‍1. 安裝Maven,下載解壓即可。官網下載 ‍2. 修改maven_home/conf/settings.xml中的<localRepository>D:/MavenRepo</localRepository>指定本地倉庫位置,這個位置是本地計算

SSH三大框架搭建整合struts2+spring+hibernate

SSH框架整合理論: 在SSH框架的JAVAweb專案的開發過程中,WEB層通常使用的是Struts2+jsp,service層使用的是javaBean,DAO層使用的是hibernate,而spring的使用覆蓋三層。 使用了spring框架之後,我們可以把物件交給spring

[Shiro教程] Shiro 教程基於SSMSpringMVC + Spring + MybatisEHCache版本

一、Shiro簡介 Apache Shiro 是 Java  的一個安全框架。我們經常看到它被拿來和 Spring  的 Security  來對比。大部分人認為 Shiro  比 Security  要簡單。我的觀點贊成一半一半吧。 首先 Shiro  

SSH三大框架搭建非常之基礎

完全的從無到有的搭建一個最基礎的SSH框架。 我們先做一下最開始的基礎工作,先來將一個數據源配置好,然後進行三大框架的完整配置!!! 如圖: 首先我們從右上角來建立一個數據源: 在“2”所指示的空白的地方,我們右鍵然後new一下,然後彈出對話方塊,如下圖: 這裡我

.net轉java 學習筆記 使用eclipse 搭建 ssh框架 struts spring hibernate )

註入 mage 面向切面 但是 模式 nbsp gen pro jdbc ssh為 struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架 struts :是一個基於MVC設計模式的Web應用框架,struts類似.net

SSM的環境搭建整合SpringSpringMVC、Mybatis框架

本案例基於開發工具IDEA、MySQL,模擬查詢學生類的資訊 專案模組圖: MySQL中Student表 (1)新建一個maven的web-app專案 (2)新建test、java、resources資料夾,並對檔案進行標記 (3)將controller(控制包)、mapper

SSM框架搭建spring+springmvc+mybatis

一.建立web專案(eclipse)  File-->new-->Dynamic Web Project (這裡我們建立的專案名為SSM) 下面是大致目錄結構   二. SSM所需jar包。  jar包連結:https://pan.b

SSM框架搭建Spring+SpringMVC+MyBatis與easyui整合並實現增刪改查實現

一、用myEclipse初始化Web專案        新建一個web project: 二、建立包 controller        //控制類 service//服務介面 service.impl//服務實現類 dao  //data access object

用Maven整合SpringMVC+Spring+Hibernate 框架,實現簡單的插入資料庫資料功能

前一篇寫的有些多,大家先看前一篇,傳送門 具體的資源已將上傳到資源了。 上文我們直接搭建前的準備和資源配置都寫好了,下面進入具體程式碼編寫。承接上文的小3 3、我習慣建立介面,這樣對整個專案感覺更合理。 (1.)建立IBaseService(業務邏輯層,有的習慣寫成Ba

STSSpring Tool Suite下SSMSpring+SpringMVC+Mybatis框架搭建

搭建 div 圖片 control 網盤 ext lmap wid 方便 繼完成controller配置並使用controller實現頁面跳轉,現連接數據庫進行登錄。 在SSM框架中,使用Mybatis與數據庫連接,因此需要配置關於mybatis的配置。 廢話少說直接開始

使用IDEA基於Maven搭建多模塊聚合工程springmvc+spring+mybatis整合

utf-8 組件 json處理 con mon 博客 quick 作者 處理工具 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關註我的微信公眾號:好好學java,獲取優質學習資源。 終於有時間搞java了,今天使用IDEA基於maven搭建了多模塊聚合工程,經過了