SpringMVC的使用基础篇

Java零基础——SpringMVC篇 SpringMVC是Spring框架中的一个组件,是一个轻量级的web的MVC框架,充当controller,其本质就是一个Servlet。 阅读详情

springmvc面世也有很长一段时间了,之前也抽不出时间学习,这几天得空随便学了一下觉得还是挺简单也挺好用的,这次打算和大家分享springmvc的环境搭建,考虑到后面要和jpa整合开发包看着有点恐怖,要用到的开发包如下所示:


是不是超吓人的,不过没关系管他有多少呢


接下来则是编写springmvc的配置文件,网上有很多种说法有的说文件名是固定的有人说是随意,我比较倾向后者的说法,接下来分享一下我的写法,下面这种是比较全面的包含数据库连接池、事务管理等的总配置文件


<?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:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd ">
    <import resource="LocalSet.xml"/>
    <import resource="Module.xml"/>
    <import resource="springmvc-servlet.xml"/>
    <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
    <context:component-scan base-package="org.hncst"/>
	<context:annotation-config />
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="false" />
			</bean>
		</property>
		<property name="jpaProperties">
			<props>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
	</bean>
	<!-- 如果没有数据源可以使用如下配置 -->
	<!--  <bean id="entityManager"  
        class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">  
        <property name="persistenceUnitName" value="mengya"></property>  
    </bean> -->
	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
	<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>
	<tx:annotation-driven transaction-manager="txManager" />
	
</beans>
  

jpa的这段配置可能见得比较少,但是应该还是能看得懂


下面这段是真正起到作用的springmvc配置文件springmvc-servlet.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:p="http://www.springframework.org/schema/p"    
    xmlns:mvc="http://www.springframework.org/schema/mvc"    
    xmlns:context="http://www.springframework.org/schema/context"    
    xmlns:util="http://www.springframework.org/schema/util"    
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd    
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd    
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 
     
    
	<mvc:annotation-driven />  <!-- 支持spring3.0新的mvc注解 -->

    <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
   
    <!--对模型视图名称的解析,即在模型视图名称添加前后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:suffix=".jsp">
         <!-- 如果使用jstl的话,配置下面的属性 -->
    	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />    
    </bean>
    <!-- 文件上传相关配置 -->
    <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >  
	    <property name="defaultEncoding" value="gbk"/> <!-- 默认编码 (ISO-8859-1) -->  
	    <property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)-->  
	    <property name="uploadTempDir" value="/temp/"/> <!-- 上传后的目录名 (WebUtils#TEMP_DIR_CONTEXT_ATTRIBUTE) -->  
	    <property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) -->  
    </bean>
</beans>


最后把web.xml的内容也贴出来,用过spring的对下面的配置应该不会感到陌生

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>UseSpringMVC2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

其他的不是很重要就不贴出来了,以上配置都属于注解方式使用springmvc,当然了使用xml配置的方式也是ok的,只是这种方式用的比较少罢了


下面是真正的重头戏,springmvc是struts的替代品因此它的主要功能就是充当控制器,一般情况命名都是以controller结尾,这样方便维护,来看一个我写的控制器


package org.hncst.controller;

import java.util.Date;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hncst.pojo.Sex;
import org.hncst.pojo.User;
import org.hncst.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;



@Controller
@RequestMapping("/user.do")
public class UserController {
	@Resource
	private IUserService userService;
	@Autowired  
	private  HttpServletRequest request;
	
	@RequestMapping(params="method=reg")
	public String reg(User user){
		
		 System.out.println(user.getName());
		 request.setAttribute("flag", "成功");
		
		return "success";
	}
	
	@RequestMapping(params="method=reg2")
	public String reg2(@RequestParam("uname")String name){
		
		 System.out.println(name);
		 request.setAttribute("flag", "成功");
		
		return "success";
	}

}

下面简要说明这几个注解的用途:

@Controller                      该注解标识该java类是一个控制器,和spring注解注入的那个注解就是一样

@RequestMapping         该注解配置可用于请求action路径的指定、请求的映射(如不同的参数值使用不同的方法)

@RequestParam            该注解主要用于参数的指定(如表单的name属性和控制器不一致的情况)


来看这个小例子,先来看注册表单

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
  <form action="user.do" method="post">
    用户名:<input type="text" name="name"/><br>
    <input type="hidden" name="uname" value="pwb"/>
    <input type="hidden" name="method" value="reg2"/>
    <input type="submit" value="注册"/>
  </form>
</body>
</html>

点注册后出现如下界面:

是不是很简单呢,下次接着分享springmvc中跳转和内置对象的使用

SpringMVC基础篇十二:注解配置SpringMVC 注解配置SpringMVC 阅读详情

相关推荐

ATAC-seq数据分析流程

Outline0. ATAC-seq原理0.1 染色体结构0.2 原理0.3 结果0.4 意义1. ATAC-seq数据分析流程1.1 上游分析(1)序列质控和比对(2)序列筛选1.2 下游分析1.3 进阶分析 0. ATAC-seq原理 0.1 染色体结构 0.2 原理 0.3 结果 0.4 意义 1. ATAC-seq数据分析流程 1.1 上游分析 (1)序列质控和比对 fastqc trim_golare bowtie2 mapping时要加上参数 --very-sensitive -X 2000

weixin_57830892的博客 1万+

SpringMVC 核心技术(一)

Spring MVC简介 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分。Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring MVC大大简化了我们日常We...

pngyul的博客 5987

大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。 通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别? 1、什么是维度? 维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素 2、一维、二维、三维的区别? (1)一维:一维数组就像是一条直线上排列的一组数据,例如: a = np.array([1, 2

1362

SpringMVC使用进阶-文件上传

如今文件上传的方式已经是遍地开花,各种五花八门的文件上传有的时候着实让人难以抉择,如果是使用springmvc也不用为文件上传而发愁,springmvc的文件上传比struts2的那个还要简单,就是寥寥无几的一点代码就能解决上传。

技术成就梦想 2149

OpenModelica入门指南:从下载安装到第一个仿真模型(附常见问题解答)

本文提供OpenModelica开源项目的完整入门指南,涵盖从下载安装、界面熟悉到构建首个仿真模型的全过程。通过创建经典的阻尼震荡系统实例,详细讲解组件拖放、参数设置、仿真运行及结果分析,并附有常见问题解决方案,帮助工程师和研究人员快速上手这一强大的多领域物理系统建模与仿真工具。

weixin_29239279的博客 730

C#图表开发避坑指南:Chart控件的Series和Points属性详解

本文深入解析C#图表开发中Chart控件的Series和Points核心属性,提供避坑指南。详细阐述了Series的数据序列管理、Points的高效操作与空值处理,以及多Series与ChartArea的协同配置,帮助开发者避免常见错误,实现稳定、高性能的数据可视化应用。

weixin_29313239的博客 364

让JPA的Query返回Map对象

[size=xx-large]让JPA的Query返回Map对象[/size] 在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一个对象数组返回。 常见的用法是这样的: [code=...

zjumty 3423

PCL 平面点云的凹多边形边界提取【2025最新版】

平面点云的凹多边形边界提取及边界轮廓线绘制。博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 7183

史上最实用的Springmvc技术教程

springmvc 简介 springmvc是一个web层mvc框架, 何谓MVC? model 模型 view 视图 controller 控制器 这是一种设计模式,将责任进行拆分,不同的组件负责不同的事情。 好处 结构清晰 更好维护(大量使用jsp的年代,<%%>,显示) 坏处 更加复杂了 目录(点击选项跳转) springm...

开发猫 1万+

YOLO-World:从入门到实战的多模态目标检测全指南

想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。

know_F0727的博客 204

YOLOv11涨点改进| CVPR 2026 |独家创新首发、特征融合改进篇| 引入FAAFusion傅里叶角对准融合模块,促进高低频特征融合,增强模型在小目标、密集目标检测和旋转目标检测任务高效涨点

🔥本文提出FAAFusion傅里叶角对准融合模块,用于改进YOLOv11网络模型。该模块通过在特征金字塔融合阶段对齐高低层特征的方向信息,缓解传统FPN直接融合带来的方向冲突问题。FAAFusion利用傅里叶旋转等变性原理,在频域估计主方向并进行特征对齐,显著提升了多尺度特征表达的一致性与有效性。实验表明,该方法在DOTA等遥感数据集上取得了新的最先进水平,特别适用于旋转目标检测任务。文章详细介绍了模块原理、结构优势,并提供了三种不同的YOLOv11改进配置方案和完整的核心代码实现。

Ai缝合怪、助力小伙伴高效发论文 152

SpringMVC【入门】篇

SSM三部曲: 如果你读完这篇文章,恭喜你!你的spring入门了! 如果你读完这篇文章,恭喜你!你的Mybatis入门了! 第一篇 SpringMVC的概念及入门 什么是SpringMVC? 概念 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Sp...

qq_40181435的博客 1万+

YOLOv11改进 | 特殊场景检测篇 | 低照度图像增强网络SCINet改进黑暗目标检测(全网独家首发)

本文给大家带来的改进机制是低照度图像增强网络SCINet,SCINet(自校正照明网络)是一种专为低光照图像增强设计的框架。它通过级联照明学习过程和权重共享机制来处理图像,优化了照明部分以提升图像质量。我将该网络集成在YOLOv11的主干上针对于图像的输入进行增强,同时该网络的并不会增加参数和计算量,基本和普通的网络结构保持一致,同时该结构支持自定义调节层数,来控制图像增强的效果 ,非常适合想要在黑夜目标检测领域发表文章的读者,该基本网络不会影响模型的速度。欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 2207

SpringMVC - 基础篇

上一次我们讲了Spring - 基础篇:https://blog.youkuaiyun.com/Dream_Weave/article/details/84106650 这次我们开始讲解SpringMVC - 基础篇…… 附:更多教程 SpringMVC - 原理机制 SpringMVC - 注解方式 SpringMVC - 过滤器之中文乱码 SpringMVC - 配置不...

2524

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【SpringMVC】SpringMVC基础篇

SpringMVC基础篇,对于一些基础知识和注解的使用,以及xml文件的配置

HXY19的博客 170

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SpringMVC基础篇二:SpringMVC的基础注解分析

springMVC各种简单注解

czj66666666666的博客 96

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SSM框架入门学习(SpringMVC篇)

快速上手了解掌握springmvc核心内容

2302_77423520的博客 1263

springMVC基础篇

         对于一个不懂技术的人来说springMVC是什么呢?有人会说:“春天里的MVC”这也许就是春天里的几个字母,不错在我没有接触java框架的时候留给我的记忆就是这样的。那么现在接触到了就让我们来好好讨论一下springMVC到底是什么吧? 一、是什么?         百度百科上这样解释:Spring MVC属于SpringFrameWork的后续产品,已经

刘玉杰 点滴之笔 1548

《学会 SpringMVC 系列 · 基础篇》

博主所在公司早期后端采用 SSM(Spring + SpringMVC + MyBatis),2020年进行了微服务拆分,顺带技术栈升级,后端调整为 SpringCloud 和 SpringBoot,深刻体会到了SpringBoot为我们带来的遍历。经常会听到新人之间在议论,“还是新框架好,旧框架已过时了,不要浪费时间学习旧框架”,那么 SpringBoot 是否完全取代了 SSM 技术栈呢?那么,有了 SpringBoot,是否还需要学习 SpringMVC?

山人行 1388

springmvc使用篇

文章目录一,springmvc基本概念1.三层架构2.MVC模型3.springmvc是什么4.springmvc和struts2的优劣对比二,Springmvc入门1.入门案例需求:web.xmlspringmvc.xml2.入门案例流程分析3.请求响应流程4.案例中涉及的组件5.RequestMapping注解三,请求参数的绑定1.绑定的机制2.支持的数据类型3.使用要求4.代码示例5.请求参数乱码问题6.关于静态资源处理7.关于get请求8.自定义类型转换器代码:9.使用servletAPI对象作为方

weixin_45596022的博客 502

SpringMVC篇

1、SpringMVC的工作流程(重点) 2、SpringMVC的主要组件 3、什么是SpringMVC?简单介绍下你对SpringMVC的理解 4、SpringMVC的优点 5、SpringMVC常用的注解 6、SpringMVC怎么设定重定向和转发的 7、SpringMVC和Struts2的区别有哪些? 8、如何解决POST请求中文乱码问题? 9、GET请求乱码怎么解决 10、springMVC里面拦截器是怎么写? 11、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?

qq_46423017的博客 1685

【SpringMVC篇】——我们为什么学习SpringMVC?

学前思考:我们为什么要学习springMVC?他帮助我们解决了什么技术上的问题?

m0_64231944的博客 1172

我靠着这篇SpringMVC,拿到了各大厂的offer

不小心就拿了这么多offer

3y 6478

SpringMVC基础篇一:SpringMVC简介

springMVC简介及简单配置

czj66666666666的博客 658

SpringMVC基础篇之HelloWorld

一、准备 Eclipse:Luna Service Release 1 (4.4.1) Tomcat插件:tomcat7-maven-plugin JDK:1.7.0_79 spring-webmvc:4.1.3.RELEASE 二、步骤 搭建Maven工程如下: POM文件依赖配置: &lt;project xmlns="http://maven.apache.org/PO...

Java小蚂蚁 348
上一篇: freemarker的使用心得
下一篇: SpringMVC使用进阶-内置对象和跳转
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值