前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出异常, 返回的内容是400+的错误页面, 而不是json内容, 这让移动端的调用方很难处理. 本文主要讲述对于rest api, springmvc对异常的解决处理方案. 系列整理: springmvc学习笔记系列的文章目录: • idea创建springmvc项目 • 面向移动端的REST API…
前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下springmvc对rest api的支持程度, 以及需要做的工作评估. 样例设计和准备: springmvc学习笔记系列的文章目录: • idea创建springmvc项目 REST API的设计原则遵循之前的博文来实现 • 移动互联网实战--Web Restful API设计和基础架构  初步设计一个查询系…
SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> <servlet-name>springmvc</servlet…
SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. 客户端编程 1.为了上传文件,必须将HTML表格的enctype属性值设为multipart/form-data,像下面这样: <form action="action" enctype="multipart/form-data" method="po…
springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. 本文如若有误, 也敬请大家不吝赐教. 1 mvc框架通常要做哪些事情 将URL映射到Java类或Java方法 封装用户提交的数据 处理请求, 调用相关的业务处理, 并封装响应的数据 将要相应的数据进行渲染 2 springmvc优点和特点 与spring无缝集成(IoC, AOP) 约定优于配置…
springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如下特点: 不需要继承任何类, 也不需要实现任何接口 可以处理多个请求 可以使用Servlet的相关特性 spring自动扫描所有基于注解的类, 并将其注册为spring的bean, DispatcherServlet自动扫描注解为@Controller的类, 查找其中使用了@RequestMappi…
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息.我们演示可以获取id的数组即可. [Jsp修改] 修改itemList.jsp页面,增加多选框,提交url是queryItem.action <form action="${pageContext.request.contextPath }/queryI…
springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控制器配置 对静态资源的解析 本文介绍RESTful的概念,并通过一个小样例展示怎样编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析 概念 首先附上两篇博客链接 理解RESTful架构 - 阮一峰的网络日志 RESTful API 设计指南- 阮一峰的网络日志 RE…
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需求 表现层实现 list绑定 需求 表现层实现 map绑定 本文主要介绍注解开发的集合类型參数绑定,包含数组绑定,list绑定以及map绑定 数组绑定 需求 商品批量删除,用户在页面选择多个商品.批量删除. 表现层实现 关键:将页面选择(多选)的商品id,传到controller方法的形參,方法形參…
springMVC 学习笔记(一):spring 入门 什么是 springMVC springMVC 是 spring 框架的一个模块,springMVC 和 spring 无需通过中间整合层进行整合.springMVC 是一个基于 mvc 的 web 框架. 在 spring 中如下图所示: springMVC 组件及工作流程 组件 springMVC 的主要组件大致有以下这些: 前端控制器 DispatcherServlet: 接收请求,响应结果,相当于转发器.该组件能减少其他组件之间的耦…
SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可以只剩下en.js,zh.js,zh-cn.js 图片上传时图像信息中的预览会显示一堆英文信息,会干扰预览.找到ckeditor/plugins/image/dialogs/image.js,搜索“d.config.image_previewText”就能找到这段鸟语了,(d.config.imag…
SpringMVC——数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数的话,我们需要这样写: public String saveProduct(String name,String description,Integer price) {....} 但是我们发现这些参数都是描述一类事物的属性信息的,并且如果参数过多的话,将会加大我们修改和编写的负担.数据绑定是将用户…
SpringMVC:学习笔记(3)——REST 了解REST风格 按照传统的开发方式,我们在实现CURD操作时,会写多个映射路径,比如对一本书的操作,我们会写多个URL,可能如下 web/deleteBookById web/updateBookById web/addBook web/getBookById .... 但是由于很难形成统一的URL命名规范,导致了URL命名的混乱.REST是面向资源的,URL的设计只需要将资源通过合理方式暴露出来即可.比如: web/book web/dog .…
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方法 页面參数和controller方法形參定义 本文主要介绍注解开发的介绍包装类型的參数绑定 需求 商品查询controller方法中实现商品查询条件传入. 实现方法 第一种方法:在形參中加入HttpServletRequest request參数,通过request接收查询条件參数. 另外一种方法…
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 配置json转换器 json交互測试 输入json串输出是json串 输入keyvalue输出是json串 本文主要介绍怎样在springmvc中进行json数据的交互.先是环境准备和配置,然后分别展示了"输入json串,输出是json串"和"输入key/value,输出是js…
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmvc学习笔记10-springmvc注解开发之商品改动功能 需求 开发mapper 开发service 开发controller RequestMapping controller方法的返回值 本文以商品改动为例,记录springmvc的注解开发.包含mapper,service,controller,@RequestMapping,controller方法的返回值等 需求 操…
Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法 常用方法 1.equals(Object obj) 指示其他某个对象是否与此对象“相等”. 2.hashCode() 返回该对象的哈希码值 3.toString() 返回该对象的字符串表示 4.getClass() 返回此 Object 的运行时类 实例 public class bbb…
SpringMVC:学习笔记(12)——ThreadLocal实现会话共享 ThreadLocal ThreadLocal,被称为线程局部变量.在并发编程的情况下,使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改.每个Thread对象内部都维护了一个ThreadLocalMap它可以存放若干个ThreadLocal.如下为Thread源码部分: /* ThreadLocal values pertaining to this thread. This map is…
SpringMVC:学习笔记(11)——依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许Spring解析并将相关bean注入到bean中. 使用@Autowired在属性上 这个注解可以直接使用在属性上,不再需要为属性设置getter/setter访问器. @Component("fooFormatter") public class FooFormatter { publi…
前言: Web开发中图片上传的功能很常见, 本篇博客来讲述下springmvc如何实现图片上传的功能. 主要讲述依赖包引入, 配置项, 本地存储和云存储方案(阿里云的OSS服务). 铺垫: 文件上传是很基础的东西, 没有高深的理论背景. 因此这边不再具体阐述和"科普", ^_^. 对于javaer而言, 实现文件上传功能需要用到commons-fileupload和commons-io组件. Ok, Let's Go! 页面编写: 文件上传的form表单非常的简单: <form…
前言: Spring的AOP理念, 以及j2ee中责任链(过滤器链)的设计模式, 确实深入人心, 处处可以看到它的身影. 这次借项目空闲, 来总结一下SpringMVC的Interceptor机制, 并以用户登陆和日志记录作为案例, 以做实践. 原理及类图: 拦截器的使用, 其实非常的广泛, 尤其对通用普适的功能调用, 提取到拦截器层中实现. 常见的拦截器有如下几种: 用户登陆/日志记录/性能评估/权限控制等等. 拦截器Interceptor链, 横亘在控制器Controller(Action)…
前言: 真的是很久没搞java的web服务开发了, 最近一次搞还是读研的时候, 想来感慨万千. 英雄没落, Eclipse的盟主地位隐隐然有被IntelliJ IDEA超越的趋势. Spring从2.x到现在4.x, 一眨眼已是二代的积淀. 本文想借助Idea, 来简单搭建一个基于springmvc的web程序, 一为体验, 二为技术积累. 环境配置: idea版本为14.0.2, tomcat版本为8.0.23, idea创建的springmvc为4.1.1.RELEASE. 网上有很多图文并…
Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包含 Handler 映射.数据绑定以及目标方法运行时发生的异常. SpringMVC 提供的 HandlerExceptionResolver 的实现类 DispatcherServlet 默认装配的 HandlerExceptionResolver : watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTY3NDc0NTA2/font/5a6L5L2T/fo…
SpringMVC内部有类型转换器,当从Request中获取参数后,放入Controller中时,会根据Controller中指定的类型进行自动转换,当指的类型SpringMVC不能自动转换时,就需要自定义类转换器 项目目录树: 请求页面index.jsp <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@…
SpringMVC的异常处理,SimpleMappingExceptionResolver只能简单的处理异常 当发生异常的时候,根据发生的异常类型跳转到指定的页面来显示异常信息 ExceptionController.java 处理器 package com.orange.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Requ…
发现有位前辈写得比我从书上看到的还详细,我就不写了,前辈的博文地址如下:  http://blog.csdn.net/eson_15/article/details/51731567…
继承HandlerExceptionResolver自定义异常处理器 控制器ExceptionController.java package com.orange.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.Mode…
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- 配置渲染器 --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property…
转载于:SpringMVC笔记 SpringMVC 1.SpringMVC概述 MVC: Model(模型): 数据模型,提供要展示的数据,:Value Object(数据Dao) 和 服务层(行为Service),提供数据和业务. View(视图): 负责进行模型的展示,即用户界面 Controller(控制器): 调度员,接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示. SpringMVC的特点: Spring为展现层提供的基于MVC设计理…
1. 配置过程: ① 配置servlet(org.springframework.web.servlet.DiapatcherServlet)拦截请求 ② SpringMVC的默认配置文件:servletName-servlet.xml ③ 可以通过配置servlet的 <init-param>标签的contextConfigLocation参数来指定配置文件 ④ 配置文件配置扫描包 ⑤ 配置文件配置视图解析器(org.springframework.web.servlet.view.Inte…