springmvc快速上手

一、創建工程

1、創建maven工程,添加maven-archetype-webapp模版

2、添加依賴

  <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><spring.version>4.0.1.RELEASE</spring.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- log4j 日志jar--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- 連接mysql5 的驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><!-- mybatis依賴 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.2</version></dependency><!-- 參考版本對應 http://www.mybatis.org/spring/ --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><!-- 數據源管理  使用了dbcp2數據 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-dbcp2</artifactId><version>2.1.1</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.4.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- commons 文件上傳jar --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>1.4</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><!-- jstl --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 加入JSON轉換工具 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency></dependencies>

3、配置springmvc-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc   http://www.springframework.org/schema/mvc/spring-mvc.xsd
"><!-- 掃描控制器的注解 --><context:component-scan base-package="com.controller"></context:component-scan><!--開啟了注解驅動--><mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value><value>text/html;charset=UTF-8</value></list></property></bean><bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value><value>text/html;charset=UTF-8</value></list></property><property name="features"><list><value>WriteDateUseDateFormat</value></list></property></bean></mvc:message-converters></mvc:annotation-driven><!-- 配置視圖解析器  作用:解析邏輯視圖,轉換為真正的視圖地址 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"></property><property name="suffix" value=""></property></bean><!-- 解決靜態資源的加載問題,屏蔽真實的訪問目錄mapping 對應的是引用時的路徑location 項目結構中真實的文件路徑--><mvc:resources mapping="/static/**" location="/static/"/><!--<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">--><!--<property name="exceptionMappings">--><!--<props>--><!--<prop key="java.lang.RuntimeException">error.jsp</prop>--><!--</props>--><!--</property>--><!--</bean>--><!-- 上傳解析器 id需要設置為multipartResolver --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"></property><property name="maxUploadSize" value="50000000"></property></bean><!--    <mvc:interceptors>-->
<!--        <mvc:interceptor>-->
<!--            <mvc:mapping path="/sys/**"/>-->
<!--            <mvc:exclude-mapping path="/sys/test02"/>-->
<!--            <bean class="com.xinsilu.controller.interceptor.SysInterceptor"></bean>-->
<!--        </mvc:interceptor>-->
<!--    </mvc:interceptors>--></beans>

并根據配置內容,創建相應的目錄。static、jsp、controller等。

3、配置web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

4、創建controller

package com.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HelloController {@RequestMapping("/hello")public String hello(){return "hello.jsp";}}

5、配置tomcat,并運行測試。

二、接收請求中的參數

@RequestMapping("/login")
@ResponseBody
public String user(String username,String password){System.out.println(username+"---"+password);return "hello.jsp";
}
@RequestMapping("/addUser")
@ResponseBody
public User addUser(@RequestBody User user){return user;
}

三、統一接口返回格式

    <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version><scope>provided</scope></dependency>
package com.util;import lombok.Data;import java.io.Serializable;@Data
public class ResultUtil<T> implements Serializable {public static final Integer SUCCESS_CODE = 2000;public static final Integer FAIL_CODE = 4000;public static final String SUCCESS_MESSAGE = "success";public static final String FAIL_MESSAGE = "fail";/*** 返回狀態碼*/private Integer code;/*** 返回信息*/private String message;/*** 返回數據*/private T data;private ResultUtil() {}public static <T> ResultUtil<T> success() {ResultUtil<T> resultUtil = new ResultUtil<>();resultUtil.setCode(SUCCESS_CODE);resultUtil.setMessage(SUCCESS_MESSAGE);return resultUtil;}public static <T> ResultUtil<T> success(T data) {ResultUtil<T> resultUtil = success();resultUtil.setData(data);return resultUtil;}public static <T> ResultUtil<T> success(String message, T data) {ResultUtil<T> resultUtil = success();resultUtil.setMessage(message);resultUtil.setData(data);return resultUtil;}public static <T> ResultUtil<T> success(Integer code, String message, T data) {ResultUtil<T> resultUtil = new ResultUtil<>();resultUtil.setCode(code);resultUtil.setMessage(message);resultUtil.setData(data);return resultUtil;}public static <T> ResultUtil<T> fail() {ResultUtil<T> resultUtil = new ResultUtil<>();resultUtil.setCode(FAIL_CODE);resultUtil.setMessage(FAIL_MESSAGE);return resultUtil;}public static <T> ResultUtil<T> fail(T data) {ResultUtil<T> resultUtil = fail();resultUtil.setData(data);return resultUtil;}public static <T> ResultUtil<T> fail(String message, T data) {ResultUtil<T> resultUtil = fail();resultUtil.setMessage(message);resultUtil.setData(data);return resultUtil;}public static <T> ResultUtil<T> fail(Integer code, String message) {ResultUtil<T> resultUtil = fail();resultUtil.setCode(code);resultUtil.setMessage(message);return resultUtil;}public static <T> ResultUtil<T> fail(Integer code, String message, T data) {ResultUtil<T> resultUtil = new ResultUtil<>();resultUtil.setCode(code);resultUtil.setMessage(message);resultUtil.setData(data);return resultUtil;}}

修改controller

    @RequestMapping("/addUser")@ResponseBodypublic Object addUser(@RequestBody User user){return ResultUtil.success(user);}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37657.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每日一題——Python實現PAT乙級1059 C語言競賽(舉一反三+思想解讀+逐步優化)四千字好文

一個認為一切根源都是“自己不夠強”的INTJ 個人主頁&#xff1a;用哲學編程-CSDN博客專欄&#xff1a;每日一題——舉一反三Python編程學習Python內置函數 Python-3.12.0文檔解讀 目錄 我的寫法 時間復雜度分析 空間復雜度分析 代碼優化建議 總結 我要更強 優化方法…

macos Darwin安裝faiss-cpu

文章目錄 macos 使用brew instll fass, 后python3.12執行引用faiss包功能出現的問題 安裝時遇到問題如下 ModuleNotFoundError Traceback (most recent call last) File ~/Src/ai/framework/langchain/.venv/lib/python3.12/site-packages/langchain_co…

Spring事務的實現

Spring事務的實現分為編程式事務和聲明式事務。 編程式事務 編程式事務管理需要開發者在代碼中顯式地調用事務管理相關的方法,如`beginTransaction()`、`commit()`和`rollback()`等。在Spring中,通常通過以下兩種方式來實現編程式事務: 使用`TransactionTemplate`,`Tran…

macOS 安裝redis

安裝Redis在macOS上通常通過Homebrew進行&#xff0c;Homebrew是macOS上一個流行的包管理器。以下是安裝Redis的步驟&#xff1a; 一 使用Homebrew安裝Redis 1、安裝Homebrew&#xff08;如果尚未安裝&#xff09;&#xff1a; 打開終端&#xff08;Terminal&#xff09;并執…

.NET周刊【6月第4期 2024-06-23】

國內文章 C#.Net筑基-集合知識全解 https://www.cnblogs.com/anding/p/18229596 .Net中提供了數組、列表、字典等多種集合類型&#xff0c;分為泛型和非泛型集合。泛型集合具有更好的性能和類型安全性。集合的基礎接口包括IEnumerator、IEnumerable、ICollection、IList、ID…

Gradio 4.37.1官方教程二:Blocks

文章目錄 一、Blocks及事件監聽器1.1 Blocks結構1.2 事件監聽器的類型1.3 多數據流1.4 多輸入組件1.5 多輸出組件1.6 更新組件配置1.7 添加示例1.8 連續運行事件1.9 持續運行事件1.9.1 every參數1.9.2 load方法1.9.3 change方法 1.10 收集事件數據1.11 綁定多個觸發器到同一函數…

基于線調頻小波變換的一維時間序列時頻分析方法(MATLAB)

在機械故障診斷領域,振動信號的處理常采用以快速傅立葉變換為基礎的相關分析、幅值分析、頻譜分析等時域和頻域分析方法。但經典的FFT存在固有缺點,即它雖然在頻域范圍內是完全局部化的,但是它不包含任何時域信息,因而不適于分析非平穩信號。近年來涌現的各種時頻分析方法(短時…

【刷題】初步認識深搜(DFS)

送給大家一句話&#xff1a; 擁有希望的人&#xff0c;和漫天的星星一樣&#xff0c;是永遠不會孤獨的。 -- 《星游記》 初步認識深搜&#xff08;DFS&#xff09; dfs算法二叉樹中的深搜Leetcode 129. 求根節點到葉節點數字之和題目描述算法思路 Leetcode 814. 二叉樹剪枝題…

Redis-實戰篇-緩存更新策略(內存淘汰、超時剔除、主動更新)

文章目錄 1、緩存更新策略1.1、內存淘汰1.2、超時剔除1.3、主動更新 2、業務場景&#xff1a;3、主動更新在企業中業務實現有三種方式3.1、Cache Aside Pattern3.1.1、操作緩存和數據庫時有三個問題需要考慮&#xff1a;3.1.1.1、刪除緩存還是更新緩存&#xff1f;3.1.1.2、如何…

數據同步軟件有哪些

數據同步軟件有哪些呢&#xff1f;隨著企業規模的擴大&#xff0c;企業數據也積累得越來越多&#xff0c;萬一發生宕機風險&#xff0c;那么這個損失將不可估量。所以為了容災備用&#xff0c;我們往往需要將數據同步到另一臺備胎服務器上&#xff0c;進行冗余。 那么需要同步的…

centos7.9 python3環境(virtualenv)搭建及所遇錯誤

人望山&#xff0c;魚窺荷&#xff0c;真正喜歡想要的&#xff0c;沒有一樣可以輕易得到。 目錄 # 1. 解決版本沖突問題--建議不要跳過(一定要查看軟鏈接是否鏈接正確) # 2. python3(virtualenv)環境搭建 # 3. virtualenv常用命令 # 4. 所遇錯誤解析 ## 4.1 遇到 No modul…

惠海 H6246低功耗DC/DC降壓型恒壓芯片60V降3.3V5V12V 藍牙模塊 單片機供電

1.產品描述 H6246是一種內置60V耐壓MOS&#xff0c;支持輸入高達48V的高壓降壓開關控制器&#xff0c;可以向負載提供0.3A的連續電流。H6246支持輸出恒定電壓&#xff0c;可以通過調節VFB采樣電阻來設置輸出電壓&#xff0c;同時支持最大電流限制&#xff0c;可以通過修改CS采…

操作系統期末復習考題二

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文??????三、總結&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&am…

【資源調度】1-何為調度?

導讀&#xff1a;本期是全網最全【資源調度】系列推文的第1期(共50期左右)。我們將對調度的定義與作用、計劃與調度的關系、調度問題的拆解做出詳細介紹&#xff0c;使大家對【資源調度】問題有了一個整體的認識&#xff0c;為后續的內容奠定基礎。 作者1&#xff1a;張哲銘&am…

個人搭建cppreference網站

近日,由于購買的騰訊云服務器要過期了,之前在服務器搭建的cppreference也要重新搭建,故寫下此文章 cppreference的訪問速度也慢,故自己WSL子系統簡單搭鍵一下是個不錯的選擇 環境準備 首先,自己先安裝Nginx,在網上找安裝教程即可下載cppreference網站資源包:https://pan.baidu…

ubuntu 軟鏈接(ubuntu20.04)

ubuntu 軟鏈接&#xff08;ubuntu20.04&#xff09; 在Ubuntu和其他Linux系統中&#xff0c;軟鏈接&#xff08;也稱為符號鏈接&#xff09;是文件系統中的一個特殊類型的文件&#xff0c;它作為一個引用或指針&#xff0c;指向另一個文件或目錄。軟鏈接類似于Windows中的快捷…

java-快速排序 4

總結 快速排序是一種高 java (String[] args) { int[] array {10, 7, 8, 9, 1, 5, 7, 8}; // 基本快速排序 int[] basicArray array.clone(); basicQuickSort(basicArray, 0, basicArray.length - 1); System.out.println("Basic…

unity ScrollRect裁剪ParticleSystem粒子

搜了下大概有這幾種方法 通過模板緩存通過shader裁剪區域&#xff1a;案例一&#xff0c;案例二&#xff0c;案例三&#xff0c;三個案例都是類似的方法&#xff0c;需要在c#傳入數據到shader通過插件 某乎上的模板緩存方法link&#xff0c;&#xff08;沒有登錄看不到全文&a…

混沌工程介紹

概念 混沌工程是通過實驗探究系統穩定性的實踐過程&#xff0c;其作戰武器是風險因子&#xff0c;即在系統中引入風險變量來驗證系統對風險的抵抗能力&#xff0c;它的作用是推動系統容錯能力建設、驗證監控告警及時性、提升研發問題排查能力。 混沌工程的工作內容 推動基礎…

RFID固定資產管理系統在企業中的應用與優勢

隨著企業資產規模的不斷擴大和管理復雜性的增加&#xff0c;傳統的資產管理方式已無法滿足企業高效管理的需求。RFID固定資產管理系統憑借其高效、準確、實時的特點&#xff0c;成為企業固定資產管理的新寵。 一、什么是RFID固定資產管理系統 RFID&#xff08;無線射頻識別&…