1. 程式人生 > >Spring MVC 實現增刪改查

Spring MVC 實現增刪改查

一、核心原理

1. 用於傳送請求給伺服器: /home.htm

2. 請求被DispatchServlet攔截到

3. DispatchServlet通過HandleMapping檢查url有沒有對應的Controller, 如果有則呼叫Controller

4. Controller開始執行業務邏輯

5. Controller執行完畢後, 如果返回字串, 則ViewResolver將字串轉化成相應的檢視物件;

如果返回ModelAndView物件, 該物件本身就包含了檢視物件資訊.

6. DispatchServlet將檢視物件中的資料輸出給伺服器.

7. 伺服器將資料輸出給客戶端.

二、REST風格

1. 查詢:
傳統:  /user_query?id=123
rest: /user/123
2. 刪除:
傳統:  /user_delete?id=123
rest: /user/123/delete
3. 更新:
傳統:  /user_update?id=123
rest: /user/123/update
4. 列表:
傳統:  /user_list
rest: /user/users

三、增刪改查

1. 程式碼結構


2. web.xml 配置DispatchServlet

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xmlns="http://java.sun.com/xml/ns/javaee"
  4.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"version=
    "2.5">
  6.   <!-- user需要和配置檔案user-servlet.xml名字對應 -->
  7.   <servlet>
  8.     <servlet-name>user</servlet-name>
  9.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10.     <load-on-startup>1</load-on-startup>
  11.   </servlet>
  12.   <servlet-mapping>
  13.     <servlet-name>user</servlet-name>
  14.     <url-pattern>/</url-pattern>
  15.   </servlet-mapping>
  16.   <!-- 配置過濾器, 設定編碼為UTF-8 -->
  17.   <filter>
  18.         <filter-name>CharacterFilter</filter-name>
  19.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  20.         <init-param>
  21.             <param-name>encoding</param-name>
  22.             <param-value>UTF-8</param-value>
  23.         </init-param>
  24.     </filter>
  25.     <filter-mapping>
  26.         <filter-name>CharacterFilter</filter-name>
  27.         <url-pattern>/*</url-pattern>
  28.     </filter-mapping>
  29. </web-app>

 <load-on-startup>1</load-on-startup>是啟動順序,讓這個Servlet隨Servletp容器一起啟動。

 <url-pattern>/</url-pattern> 會攔截所有的請求。

在DispatcherServlet的初始化過程中,框架會在web應用的 WEB-INF資料夾下尋找名為[servlet-name]-servlet.xml 的配置檔案,

生成檔案中定義的bean。我們配的是user,所以它會找到user-servlet.xml檔案。

3. user-servlet.xml

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xmlns:context="http://www.springframework.org/schema/context"
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc"
  6.     xsi:schemaLocation="http://www.springframework.org/schema/mvc   
  7.         http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd  
  8.         http://www.springframework.org/schema/beans   
  9.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  10.         http://www.springframework.org/schema/context   
  11.         http://www.springframework.org/schema/context/spring-context-3.1.xsd">
  12.     <!-- spring自動掃描的包名 -->
  13.     <context:component-scanbase-package="com.zdp"></context:component-scan>
  14.     <!-- 使用spring註解 -->
  15.     <mvc:annotation-driven/>
  16.     <!-- 設定返回url字首和字尾 -->
  17.     <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">
  18.         <propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/>
  19.         <propertyname="prefix"value="/WEB-INF/jsp/"></property>
  20.         <propertyname="suffix"value=".jsp"></property>
  21.     </bean>
  22.     <!-- 指明靜態資源位置 -->
  23.     <mvc:resourceslocation="/WEB-INF/resources/"mapping="/resources/**"/>
  24. </beans>

<context:component-scan/> 掃描指定的包中的類上的註解,常用的註解有:

@Controller 宣告Action元件
@Service  宣告Service元件    @Service("userService") 
@Repository 宣告Dao元件
@Component 泛指元件, 當不好歸類時. 
@RequestMapping("/user") 將url和類繫結 

@RequestParam("name") String username   用於將指定的請求引數賦給方法中的形參, 如果請求引數名稱和形參一致, 則不需要這種寫法

@Resource 用於注入,( j2ee提供的 ) 預設按名稱裝配,@Resource(name="beanName") 
@Autowired 用於注入,(srping提供的) 預設按型別裝配 
@Transactional( rollbackFor={Exception.class}) 事務管理
@ResponseBody
@Scope("prototype")   設定bean的作用域

/WEB-INF/resources對映到ResourceHttpRequestHandler進行處理,location指定靜態資源的位置.

配置了<mvc:annotation-driven />,spring會自動幫我們註冊這個bean,就不須要我們顯示的註冊這個bean了。

4. User.java

  1. /** 
  2.  * 實體類 
  3.  */
  4. publicclass User {  
  5.     private String username;  
  6.     private String password;  
  7.     public

    相關推薦

    Spring MVC 實現刪改

    一、核心原理 1. 用於傳送請求給伺服器: /home.htm 2. 請求被DispatchServlet攔截到 3. DispatchServlet通過HandleMapping檢查url有沒有對應的Controller, 如果有則呼叫Contro

    MyBatis-Spring(二)--SqlSessionTemplate實現刪改

    允許 ref ack part basic pre 就是 path pda SqlSessionTemplate是個線稱安全的類,每運行一個SqlSessionTemplate時,它就會重新獲取一個新的SqlSession,所以每個方法都有一個獨立的SqlSession,這

    spring-boot react一步一步實現刪改 元件化

    在 spring-boot react一步一步實現增刪改查 中,用一個元件實現了表格和表單功能,所以現在需要將其拆分成元件獨立出來 拆分表格 建立Table.js import React, {Component} from 'react' class Tab

    spring-boot react一步一步實現刪改

    maven繼承spring-boot <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-paren

    idea使用SpringBoot和Spring和Mybatis來實現刪改

    需求: 使用新SSM來實現增刪改查 步驟 第一步:看最終包結構 糾正:資料庫連線池部分還有整合mybatis和springboot 這裡主要是匯入依賴的jar包 第二步:配置pom.xml 導包springBoot支援jdk1.8

    MVC+EF實現刪改

    在MVC的控制器中查詢資料庫中的資料,然後在用檢視顯示出來,這套流程是怎麼走的哪,下面我自己先巨集觀的總結一下。     首先,在Controllers資料夾下建立HomeController控制器,然後在ActionResult Index()方法右擊——>

    微服務架構實戰篇(三):Spring boot2.0 + Mybatis + PageHelper實現刪改和分頁查詢功能

    簡介 該專案主要利用Spring boot2.0 +Mybatis + PageHelper實現增刪改查和分頁查詢功能,快速搭建一套和資料庫互動的專案。 小工具一枚,歡迎使用和Star支援,如使用過程中碰到問題,可以提出Issue,我會盡力完善該Starter 版本基礎

    spring data jpa實現刪改

    一、引子: (1)finAll()方法: 二、增刪改查程式碼 (一)建立springboot框架 1.專案結構 2.apllication.properties配置mysql連線資訊 spring.jpa.hibernate.ddl

    ztree與springmvc+spring+mybatis整合實現刪改

     在springmvc+spring+mybatis裡整合ztree實現增刪改查,上一篇已經寫了demo,下面就只貼出各層實現功能的程式碼: Jsp頁面實現功能的js程式碼如下: <script> //用於捕獲分類編輯按鈕的 click 事件

    spring連線mongodb實現刪改

    applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

    Spring --08.Spring整合JdbcTemplate實現刪改

    1、建立工程並引入依賴 匯入需要引入的依賴:Spring ioc + JdbcTemplate+druid+ mysql。pom.xml內容 <?xml version="1.0" encoding="UTF-8"?> <project xmln

    Spring Boot整合MongoDB實現刪改

    MongoDB這兩年來是本人一直使用較多的,之前的使用大多通過封裝的工具類對資料庫進行操作,雖然也算穩定,但有了Spring Boot之前的工具類直接加到SpringBoot裡就沒那麼好使了,因此查閱資料後自己小試牛刀寫了個增刪改查,覺得也還不錯,所以分享給大家看看 1 p

    MVC+EF實現刪改》——

        在MVC的控制器中查詢資料庫中的資料,然後在用檢視顯示出來,這套流程是怎麼走的哪,下面我自己先巨集觀的總結一下。     首先,在Controllers資料夾下建立HomeController

    Spring+SpringMVC+Mybatis實現刪改--(六)SSM刪除、批量刪除員工的實現

    Spring+SpringMVC+Mybatis實現增刪改查--(六)SSM刪除、批量刪除員工的實現單個刪除: 批量刪除  刪除邏輯1.單個刪除URI:/emp/{id} DELETE(1)給刪除按鈕繫結上員工的ID號(2)單個刪除按鈕的點選事件(3)員工刪除的方法2.全選複

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

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

    Spring Boot入門系列(六)如何整合Mybatis實現刪改

    前面介紹了Spring Boot 中的整合Thymeleaf前端html框架,同時也介紹了Thymeleaf 的用法。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。 今天主要講解Springboot整合M

    Spring Boot入門系列(十八)整合mybatis,使用註解的方式實現刪改

    之前介紹了Spring Boot 整合mybatis 使用xml配置的方式實現增刪改查,還介紹了自定義mapper 實現複雜多表關聯查詢。雖然目前 mybatis 使用xml 配置的方式 已經極大減輕了配置的複雜度,支援 generator 外掛 根據表結構自動生成實體類、配置檔案和dao層程式碼,減輕很大一

    修改Haproxy文件配置,實現刪改

    文件配置 str data bin 都是 [1] local def onf Haproxy 源文件 global log 127.0.0.1 local2 daemon maxconn 256 log 12

    [python] 用pickle模塊實現刪改”的簡易功能

    python pyckle模塊 #!/usr/bin/env python2 #coding:utf-8 """ pickle的作用: 1:pickle.dump(dict,file)把字典轉為二進制存入文件. 2:pickle.load(file)把文件二進制內容轉為字典. """ im

    .NET EF 框架-實現刪改

    ont int string dbcontext 增刪 base set cts cti 聲明一個EF上下文對象 Model dbContext=new Model(); 添加操作(向表中插入一條數據) //聲明一個表的實體 Contact contact =new Con