Spring入门学习之Spring MVC(part 2)

gtsam 学习十(ISAM2 理论) 翻译自:iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree 摘要 提出了一种新型的贝斯树处理稀疏矩阵,在转化为因子图,可以更好的求解平方根信息和映射问题。 文中提出了三个概念 使用概率密度项进行矩阵分解 介绍如何将矩阵分解转换为贝叶斯数和条件概率密度 基于贝叶斯树提供了一种新的系数非线性优化:ISAM2(进行重新排序和重新线性化,避免了批量更新) 问题描述 文章聚焦与如何用增量实时解决非线性问题, 利用增量即新的测量值实时更新估 阅读详情

Spring MVC

MVC设计模式

       SpringMVC框架当然也是基于MVC设计模式的框架。MVC设计模式包含模型、视图、控制器三个模块。视图负责应用的显示(例如JSP/html),模型封装了应用的数据和业务逻辑,控制器负责接受用户的输入,改变模型,以及调整视图的显示。

       其中servlet或者filter都可以充当控制器。Spring MVC 和 Struts1使用一个Servlet作为控制器,而struts2使用一个filter作为控制器。模型使用POJO(plain old java object)。

一个JavaBean必须拥有一个无参构造器,并且通过get/set方法来访问参数,同时支持持久化。

 

Spring mvc

1.      Spring MVC的优点:

1)      若基于某个框架来开发一个基于MVC模式的应用,我们需要负责编写一个Dispatcher Servlet和控制器类。其中,Dispatcher servlet必须能做如下事情:

l  根据URI调用相应的action(即controller,控制器类,实现具体的业务逻辑)。

l  实例化正确的控制器类。

l  调用控制器对象的相应方法。

l  转向到一个视图(JSP页面)。

Spring MVC是一个包含了Dispatcher servlet的MVC框架。它调用控制器方法并转发视图。不用编写Dispatcher servlet是使用Spring MVC的第一个好处。

2)      Spring MVC中使用基于xml的配置文件。

3)      Spring MVC实例化控制器,并根据用户输入来构造bean。

4)      Spring MVC可以自动绑定用户输入,并正确地转换数据类型。

5)      Spring MVC内置了常用的校验器。

6)      Spring MVC是spring框架的一部分,可以利用Spring框架提供的其他能力。

7)      支持国际化和本地化,支持多种视图技术。

2.      Spring MVC开发使用

1)      Spring MVC内置Dispatcher Servlet的使用:

l  在web.xml中配置

l  Dispatcher Servlet初始化时会在WEB-INF下寻找对应命名为servletName-servlet.xml的配置文件,servletName为之前声明的Dispatcher servlet 的 name。当然也可以把Spring MVC的配置文件放在应用程序目录的任何地方,用servlet定义的init-param元素,以便Dispatcher servlet加载到该文件,例如:

 

<servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>
  		org.springframework.web.servlet.DispatcherServlet
  	</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>/WEB-INF/personalBlog-config.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
</servlet>

 

2)      控制器开发(旧版,实现controller接口)

在Spring2.5版本前,开发控制器需要实现org.springframework.web.servlet.mvc.Controller接口。这个接口公开了一个handleRequest方法,该方法签名如下:

ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response)

开发完毕需在SpringMVC的bean配置文件中声明,如下:

<?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:util="http://www.springframework.org/schema/util" xsi:schemaLocation="  
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!-- bean definitions here --> 
	<bean name="/hello.action" class="controller.HelloController"></bean>
</beans>

将/hello.action映射到该控制器上。

3)      * View Resolver

通过在配置文件中定义视图解析器负责解析视图,这样view路径将缩短,仅需提供jsp文件名称即可完成页面跳转。SpringMVC-servlet.xml配置view resolver如下:

4)     基于注解的控制器

使用基于注解的控制器的优点:其一,一个控制器类可以处理多个动作(区别于实现Controller接口);其二,控制器的映射由RequestMapping注释处理,而不用在xml文件中配置。

基于注解的控制器使用方法:

a)      Spring使用扫描机制来找到应用程序中所有基于注解的控制器类。为了使Spring能够找到你的控制器,需要在Spring MVC的配置文件中做如下处理:

首先,在配置文件中声明Spring-context,如下:

<beans

       …

       xmlns : context=http://www.springframework.org/schema/context

       …

> 

然后,需要应用<component-scan/>元素,如下:

<context: component-scan base-package=”basePackage(控制器所在包)”>

 

b)     编写请求方法:每个请求处理方法可以有多个不同类型的参数,以及一个多种类型的返回结果。下面是可以在请求处理方法中出现的参数类型:

l  javax.servlet.ServletRequest/ javax.servlet.http.HttpServletRequest

l  javax.servlet.ServletResponse/ javax.servlet.http.HttpServletResponse

l  …HttpSession

l  java.util.Locale

l  表单对象

l  带@PathVariable注释的对象

l  org.springframework.ui.Model类型, 每次调用请求处理方法时,Spring MVC都创建Model对象并将其Map注入到各种对象。

l  …

请求方法可以返回如下类型对象:

l  ModelAndView

l  Model

l  Map包含模型的属性

l  View

l  代表逻辑视图名的String

l  Void

l  …

 

c)      使用@Controller 和 @RequestMapping 标注处理方法,如下:

请求映射的值可以是一个空字符串,此方法被映射到如下网址:

http://localhost:8080/context,可以用该方法设置应用程序的默认访问页。如下:

 

	@RequestMapping(value="/")
	public String welcomePage(Model Model){
		
		return "welcome";
	}

5)      *重定向和Flash属性

转发跟重定向的区别:转发比重定向快,因为重定向经过客户端,而转发没有。若需要重定向到一个外部网站,则无法使用转发。另外,使用重定向可以避免在用户重新加载页面时再次调用同样的动作。使用重定向的一个不方便的地方是:无法轻松传值给目标页面。而采用转发,则可以简单地将属性添加到Model,使得目标视图可以轻松访问。由于重定向经过客户端,所以Model中的一切都在重定向时丢失。可以通过Flash属性提供一种供重定向传值的方法。

Flash使用方法:

a)      首先在Spring MVC配置文件中,需要有个<annotation-driven/>元素

b)     然后需要在方法上添加一个新的参数类型org.springframework.web.sevlet.mvc.support.RedirectAttributs,如下:

 

@RequestMapping(value="/saveAndUpdateBlog")
	public String saveAndUpdateBlog(@RequestParam int blogID, @ModelAttribute Blog blog, RedirectAttributes redirectAttributes){
		
		if(blogID == 0){
			blogMapper.save(blog);	
		}else{
			Map<String, Object> parm = new HashMap<>();
			parm.put("blogID", blogID);
			parm.put("blog", blog);
			blogMapper.update(parm);
		}			
		
		String tags = blog.getBlogTags();
		String[] tagList = tags.split("\\s+");
		
		/**返回前台结果**/
		Map<String, Object> responseParm = new HashMap<>();
		responseParm.put("blog", blog);
		responseParm.put("tagList", tagList);
		
		redirectAttributes.addFlashAttribute("responseParm",responseParm);
		
		return "redirect:/blog/" + blog.getBlogID();
	}

6)      *请求参数和路径变量 

请求参数获取方法:

http://localhost:8080/context/method?valuename=value

Spring MVC中可以使用@RequestParm注释类型来注释方法参数,如下:

Public void sendProduce(@RequesetParam int valuename)

而且@RequestParam注解的参数类型不一定是字符串

路径变量的获取方法:

http://localhost:8080/context/method/productID,获取produceID的值方法如下:

@RequestMapping(value=”/method/{productID}”)

Public String viewProduct(@PathVariable Long id, Modelmodel){
       ...
}

当有多个路径变量时可能会倒是解析错误,导致404错误,不过可以使用JSTL的<c:url value=””/>标签来解决。

 

ODrive0.5.5源码分析(1) ADC的处理 odrive 0.5.5 ADC 阅读详情

相关推荐

8卡H20运行DeepSeek-V3-0324性能和推理实测

最近在一台 8卡H20 机器上,先后部署了 DeepSeek-R1-AWQ (671B)和最新的 DeepSeek-V3-0324 (685B) ,测试了下性能和数学问题跑分。服务器由火山引擎提供。

weixin_53138109的博客 3367

黑马就业班——SpringMVC框架:part2

1、响应数据和结果视图 1.1 Controller控制器类方法的返回值类型   参考项目:springmvc_day02_01_response 。   controller控制器类的方法可以返回:字符串、void、ModelAndView对象   注意: 1、success.jsp标签记得加:isELIgnored="false"属性,否则在jsp文件无法使用EL表达式! 如:<%@...

LKJgdut的博客 343

python解析通达信dat与blk数据文件【附源码】

本文介绍了一个完整的通达信金融数据解析器项目,该项目攻克了通达信专有二进制文件格式解析的技术难题。项目采用模块化架构,从基础二进制解析到增强数据分类,最终实现智能语义化列名生成,形成完整的数据处理链路。核心技术包括自适应编码检测、智能数据类型推断和基于业务规则的语义化处理,解决了逆向工程、多编码兼容性等挑战。项目成果显著,解析成功率达100%,数据可读性大幅提升,开发效率提高50%,为量化交易、可视化分析等场景提供了可靠数据支持。该方案不仅具备技术创新性,更具有实际工程应用价值,为金融数据分析领域提供了可复

qq_36224726的博客 2690

java spring省略jsp,Java +Tomcat + SpringMVC实现页面访问示例解析

window7下Java环境安装记录:一、安装Tomcat1、下载tomcat 7.0,解压,无需安装,放置到目录:D:\apache-tomcat-7.0.90。2、配置系统环境变量,CATALINA_BASE=D:\apache-tomcat-7.0.90,CATALINA_HOME=D:\apache-tomcat-7.0.90,在Path中新增“%CATALINA_HOME%\lib;%C...

weixin_33167456的博客 194

从CMT2300A实战出发:Sub1G射频匹配电路设计要点与315MHz应用详解

本文从CMT2300A芯片实战出发,详细解析Sub1G射频匹配电路设计要点,特别针对315MHz应用场景。内容涵盖频段划分逻辑、调制方式选择、晶体振荡器设计等基础认知,以及315MHz匹配电路物料选型、巴伦网络处理等实战技巧,并分享PCB布局防干扰设计和实测验证方法,助力开发者优化射频通信性能。

weixin_29238147的博客 166

Halcon —— 图像像素类型与转换

图像类型 就目前工业领域主流的图像处理工具halcon来讲,有以下几张图像类型:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具体含义如下图所示。相互间的转换可通过convert_image_type算子完成,但盲目转换会导致图像像素值异常。 ‘byte’ 每像素1字节,无符号 值范围: (0到255) ‘int1’ 每像素1字节,有符号 值范围: (-128到127) ‘

baidu_35536188的博客 1万+

springMVC框架之jsp路径映射问题

配置完SpringMVC后,启动服务器,输入网址后,发现,页面出来的是如下图的形式,很纳闷 后来网上搜索了下,发现是<servlet-mapping>里面的配置出问题了,以前是这样写的:<url-pattern>/*</url-pattern> 改成:<url-pattern>/</url-pattern>,成功了 可以参考...

小付同学的博客 1733

自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

下面是一个关于自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO)的博客,希望可以帮助您。提示:以下是本篇文章正文内容,下面案例可供参考在上面的代码中,表示粒子的数量,表示解空间的维度,表示迭代次数,表示优化的目标函数。在__init__方法中,我们初始化了粒子群的位置和速度,并将每个粒子的位置作为其最优解,将其适应度值初始化为正无穷。我们还初始化了学习因子和惯性权重的参数。在run方法中,我们迭代了次,计算每个粒子的适应度值和最优解。

weixin_52026057的博客 9917

SpringMVC中jsp页面中URL写相对路径问题

SpringMVC中jsp页面中URL写相对路径问题 当前页面的URL的最后带占位符 例如:当前页面URL为localhost:8080/Project/wecome/1,通过这个链接调转到当前页面,当你在当前页面中有个&lt;a href=”admin/edit”&gt;&lt;/a&gt;那么这个页面向后台请求的链接就为localhost:8080/Project/welcome/ad...

include_cpp的博客 2843

世界职业院校技能大赛商贸赛道项目参考逐字稿一

商贸赛道“智选优品”—基于大数据与AI驱动的跨境电商平台项目参考逐字稿您订阅本专栏后即可`永久享有所有文章的查阅权`,希望我们更新的参考资料能帮助到您。如果您需要我们团队赋能培训可联系我(企业一线工程师及国一获奖选手在线培训支持:每周直播精讲(可回放,支持弹幕答疑)、代码Review+技术售后(拉群随时问,12h内响应)、④路演PPT+答辩话术一对一点评,评委视角提前彩排、适合:中职/高职赛项选手、指导老师带队、校企工作室、整校打包另谈(可开发票))

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1594

视觉Transformer实战 | Vision Transformer(ViT)详解与实现

在计算机视觉领域,卷积神经网络 (CNN) 长期以来一直是处理图像任务的主流架构。然而,随着 Transformer 在自然语言处理领域的巨大成功,研究人员开始探索将这种基于自注意力机制的架构应用于视觉任务。Vision Transformer (ViT) 是这一探索的重要里程碑,它首次证明了纯 Transformer 架构在图像分类任务上可以超越最先进的 CNN 模型。本文将详细介绍 ViT 的技术原理,并使用 PyTorch 从零开始构建 ViT 模型用于图像分类任务。

盼小辉丶的博客 4万+

Spring(Spring MVC):Part one

I think read open source code is a good way to  learn programming skill.DI is very important in OO programming,and Spring is a very power IoC container in Java world.So I choose Spring to learn. If y...

weixin_34159110的博客 102

10.28华为OD机试真题 新系统 - AI推理任务并行额度最大值 (Java/Py/C/C++/Js/Go)

10.28华为OD机试真题 新系统 - AI推理任务并行额度最大值 (Java/Py/C/C++/Js/Go)

算法大师! 299

Spring 3 MVC - Part 1 & Part 2 (with log4j)

  Part 1: Introduction to Spring 3.0 MVC framework   Part 2: Create Hello World Application in Spring 3.0 MVC    

TJJ 120

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring MVC 的高级技术

一、处理 multipart 形式的数据 1、配置multipart解析器 Spring内置的两个解析器: CommonsMultipartResolver :使用Jakarta Commons FileUpload 解析 StandardServletMultipartResolver :依赖于Servlet 3.0 对multipart请求的支持(始于Spring 3.1) 配置 Stan...

pengxs1的博客 337

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring MVC 处理 multipart 形式的数据

multipart格式的数据会将一个表单拆分成为多个部分,每个部分对应一个输入域 1. 配置multipart解析器 Spring中通过MultipartResolver接口的实现类来解析multipart请求中的内容,从Spring3.1开始,Spring内置了两个它的实现类: CommonsMultipartResolver:使用Jakarta Comomons FileUpload 解析m...

sakuragio的博客 349

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

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

Spring in action--Part2-Spring On The Web

Chapter5.Building Spring web applicationsState management, workflow, and validation are all important features a java web developer needs to be addressed. None of these is made any easier given the HT

3241

Spring MVC 学习笔记 5《5.2 多文件上传》

Spring MVC 学习笔记 5《5.2 多文件上传》接着上一篇,添加多文件支持添加JSP 文件上传界面 接着上一篇,添加多文件支持 /ssm/src/main/java/com/jerry/ssm/controller/UpLoadController.java 和上图一样也在这个控制器里,只是这里分开列,方便查看 文件上传界面 http://localhost/goUploadFile.ht......

灵台方寸山斜月三星洞 608

Spring入门学习之Spring MVC(part 1)

Spring MVC Spring MVC是Spring框架中用于Web应用快速开发的一个模块。Spring MVC基于Spring框架、Servlet和JSP。所以接下来先分别对Servlet和JSP做简单了解。   Servlet 1.      运行servlet需要servlet容器,例如Tomcat 2.      如果想让某个资源可以被servlet访问,但是不可以被用户访问

java_hxc_sz的博客 534

SPRING IN ACTION:春天在行动-PART 2

提供有关春天新事物的指南!PART 2 INTEGRATED SPRING

Username1898625 674

SPRING IN ACTION: 春天在行动-PART 1

提供有关春天新事物的指南!PART 1 FOUNFATIONAL SPRING

Username1898625 572

Spring实战15——Spring MVC文件上传

文件上传两种方法: 1.CommonsMultipartResolver:使用Jakarta Commons FileUpload 解析 multipart 请求。Spring 3.1 前。 2.StandardServletMultipartResolver:依赖于Servlet 3.0对multipart 请求的支持。Spring 3.1后。 使用StandardServletMu...

?_#的博客 222

Spring(Spring MVC):Part two

DispatcherServlet is a core class of Spring MVC.It proccess all request for Spring MVC based application. Open DispatcherServlet.java,you can learn some core concept fo Spring MVC: HandlerMapping H...

weixin_34208283的博客 88

Spring MVC与Spring Boot文件上传配置差异对比及文件上传关键类详细说明与对比

Spring MVC与Spring Boot文件上传配置差异对比及文件上传关键类详细说明与对比

爱的叹息的专栏 1116

Spring 3 MVC and Hibernate 3 Example Part 2

This tutorial explains how to use annotations with spring 3 MVC and hibernate 3 based application to make the development easier and faster than ever before. dispatcher-servlet.xml: <context:prop...

weixin_30462049的博客 85
上一篇: MySQL 操作总结(一)
下一篇: MySQL 操作总结(二)
java_hxc_sz
博客等级 码龄10年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值