转发地址:https://www.iteye.com/blog/wiselyman-2214965 7.1 ContentNegotiatingViewResolver ContentNegotiatingViewResolver支持在Spring MVC下输出不同的格式; ContentNegotiatingViewResolver是ViewResolver的一个实现; ContentNegotiatingViewResolver使用request的媒体类型,根据扩展名选择不同的view输出不…
8.1 配置 Spring MVC的配置是通过继承WebMvcConfigurerAdapter类并重载其方法实现的; 前几个教程已做了得配置包括 01点睛Spring MVC 4.1-搭建环境 配置viewResolver 03点睛Spring MVC 4.1-REST 静态资源映射 04点睛Spring MVC 4.1-拦截器 配置拦截器 06点睛Spring MVC 4.1-文件上传 配置multipartResolver 07点睛Spring MVC4.1-ContentNegotiat…
转发地址:https://www.iteye.com/blog/wiselyman-2215852 9.1 异步请求处理 Servlet 3开始支持异步请求处理 Spring MVC 3.2开始支持Servlet3的这项特性 controller可以从另外一个线程返回一个java.util.concurrent.Callable,而不是一个简单的值 此时Servlet容器线程已经释放,可以处理其他的请求 Spring MVC通过借助TaskExecutor调起另外一个线程(例子中的mvcTask…
10.1 全局异常处理 使用@ControllerAdvice注解来实现全局异常处理; 使用@ControllerAdvice的属性缩小处理范围 10.2 演示 演示控制器 package com.wisely.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class A…
本文算是struts2 异常处理3板斧.spring mvc4:异常处理 后续篇章,普通页面出错后可以跳到统一的错误处理页面,但是ajax就不行了,ajax的本意就是不让当前页面发生跳转,仅局部刷新,从而改善用户体验,基本思路是:把异常转换成json数据返回,这样ajax的回调函数,就能解析出错误原因. 一.如何区分ajax请求与普通请求 打开firefox的调试工具观察一下: 普通的页面请求 jquery发起的ajax请求 对比一下,可以发现jquery发生的ajax请求,Request He…
前面学习过struts2的异常处理,今天来看下spring mvc4的异常处理: 一.Servlet配置文件修改 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView" value="erro…
前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学时分不清Spring Web/Spring MVC有什么区别 spring-web模块提供基本的面向Web的集成功能,例如多文件上传功能和使用Servlet监听器和面向Web的应用程序上下文来初始化IoC容器. 它还包含一个HTTP客户端和Web的相关部分的Spring的远程支持. spring-w…
转发地址:https://www.iteye.com/blog/wiselyman-2213907 2.1 @RequestMapping @RequestMapping是SpringMVC的核心注解,负责访问的url与调用方法之间的映射; @RequestMapping可以放在类和方法上; @RequestMapping的属性produces属性控制response返回的形式; @RequestMapping的属性method属性控制接受访问的类型,不写不做限制,本例为演示方便全部都是get请…
MyBatis 在Spring Boot应用非常广,非常强大的一个半自动的ORM框架. 代码下载:https://github.com/Jackson0714/study-spring-boot.git 05. 深入浅出 Spring Boot - 数据访问之JDBC(源码分析+代码下载) 06. 深入浅出 Spring Boot - 数据访问之Druid(附代码下载) 07. 深入浅出 Spring Boot - 数据访问之Mybatis(附代码下载) 一.什么是MyBatis 1.支持定制化…
我们已经知道 对于 RequestMappingInfoHandlerMapping, 它在对带有后缀的http 请求进行匹配的时候,如果找不到精确的pattern, 那么就会 pattern+.* 后再匹配 url.  它会处理多个不同形式是 url, 但是返回的只是一个view. ContentNegotiatingViewResolver 貌似也有这样的功能,但实际上是大不一样的.ContentNegotiatingViewResolver 有些难懂, 开始的时候, 我也是一直没有搞懂,反…
阅读本文需要又一定的sping基础,最起码要成功的运行过一个SpringMvc项目. 在传统的Spring项目中,我们要写一堆的XML文件.而这些XML文件格式要求又很严格,很不便于开发.而网上所谓的0配置,并不是纯粹的0配置,还是要写一些xml配置,只是用了几个@Service,@Controller注解而已. 在这里,我讲介绍一种新的配置方式,一行XML代码都不需要,什么web.xml,Application-context.xml,Beans.xml,统统去死吧! 首先建立一个Maven项…
日期.数字格式化显示,是web开发中的常见需求,spring mvc采用XXXFormatter来处理,先看一个最基本的单元测试: package com.cnblogs.yjmyzz.test; import java.math.BigDecimal; import java.util.Date; import java.util.Locale; import org.junit.Test; import org.springframework.context.i18n.LocaleConte…
一.配置部分 二.代码部分 三.页面部分 四.Controller控制器 五.效果展示 六.加入监听器 七.最最重要的,别忘了打赏 一.配置部分 ActiveMQ的安装这就不说了,很简单, 这个例子采用maven构建,首先看一下pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s…
一.准备工作 开始之前,先参考上一篇: struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 思路都是一样的,只不过把strut…
spring mvc使用注解方式配制,以及对rest风格的支持,真是完美致极.下面将这两天研究到的问题做个总结,供参考.1.request对象的获取方式1:在controller方法上加入request参数,spring会自动注入,如:public String list(HttpServletRequest request,HttpServletResponse response)方式2:在controller类中加入@Resource private HttpServletRequest r…
http://www.yiibai.com/spring-security/spring-mvc-4-and-spring-security-4-integration-example.html 在这篇教程文章中,我们将使用Spring Security,Hibernate+MySQL数据库来集成构建一个成熟的Spring MVC应用程序.处理多对多映射关系,同时利用BCrypt格式加密密码存储,和使用自定义PersistentTokenRepository实现Hibernate Hiberna…
Spring MVC 的高级技术 1. Spring MVC配置的替代方案 1.1 自定义DispatcherServlet配置 AbstractAnnotationConfigDispatcherServletInitializer实际上还有更多的方法可以进行重载,从而实现额外的配置.此类的方法之一就是customizeRegistration().在AbstractAnnotationConfigDispatcherServletInitializer将DispatcherServlet注册…
在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spring提供了内置的multipart支持来处理Web应用程序文件上传. 简短的概述 在这篇文章中,我们将使用Servlet3.0以及javax.servlet.MultipartConfigElement,为了激活 Servlet3.0环境和Spring 的Multipart支持,你需要做以下: 1…
1 导包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <model…
1.Spring AOP的通知advice 01.接口代码: package cn.pb.dao; public interface UserDao { //主业务 String add(); //主业务 void del(); } 02.实现类代码: package cn.pb.dao; public class UserDaoImpl implements UserDao{ //主业务 public String add() { //模拟异常 //int a=8/0; System.out.…
一.配置部分 二.代码部分 三.页面部分 四.Controller控制器 五.效果展示 六.加入监听器 七.最最重要的,别忘了打赏 一.配置部分 ActiveMQ的安装这就不说了,很简单, 这个例子采用maven构建,首先看一下pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s…
转发:https://www.iteye.com/blog/wiselyman-2214290 3.1 REST REST:Representational State Transfer; REST是一种数据导向web service,相对于SOAP是一种操作操作和处理导向的web service; Spring为对REST的支持提供了@RestController; 在没有@RestController可以通过@Controller,@ResponseBody组合实现REST控制器; 但是我们…
转发:https://www.iteye.com/blog/wiselyman-2213906 1.1 简单示例 通篇使用java config @Controller声明bean是一个控制器 @RequestMapping访问路径和方法之间的映射 1.2 演示 1.2.1 新建maven web项目 新建项目  1.2.2 添加spring mvc依赖到maven 将pom.xml修改如下 <project xmlns="http://maven.apache.org/POM/4.0.0…
7.1 BeanPostProcessor spring通过BeanPostProcessor接口可以对所有bean或者指定的某些bean的初始化前后对bean的检查或者修改提供支持; 使用postProcessBeforeInitialization和postProcessAfterInitialization对bean进行操作; postProcessBeforeInitialization和postProcessAfterInitialization返回值是bean; 7.2 示例 7.2…
首先,先说一下需求,项目需要打印一些报表,也没多想,直接就在jsp页面设置了样式,前台直接调用window.print()写了打印功能,但是例会的时候,领导提出需要一些比较麻烦的打印,自己写肯定费时间,就想着去找找web打印控件,一搜都是一些收费的,免费版基本都有水印,客户肯定接受不了水印的.买的话,项目本身就没多少钱,不划算.就找到了jasperreports+Ireport好像还可以.就找了找资料,准备着手集成到框架里面了. 下面是参考案例: https://blog.csdn.net/xh…
说明: http://localhost:8080 指向的目录是WEB-INF所在的目录,也就是说请求静态资源时都是从该根目录开始查找.建议将所有静态文件放到和WEB-INF同级的目录下. 以 http://localhost:8080/script/vue.js  为例,将vue.js放到 web/script/vue.js 解决方法一: 页面引用到/script/**的资源都从/script/里面进行查找,重点该配置需要重启tomcat生效. 在需要引入的位置按图放置. 备注:mvc:def…
6.1 文件上传 在控制器参数使用@RequestParam("file") MultipartFile file接受单个文件上传; 在控制器参数使用@RequestParam("file") MultipartFile[] files接受多个文件上传; 通过配置MultipartResolver来配置文件上传的一些属性; 6.2 示例 增加和上传和文件操作的依赖到maven <dependency> <groupId>commons-io&…
转发:https://www.iteye.com/blog/wiselyman-2214626 5.1 服务器端推送 SSE(server send event)是一种服务器端向浏览器推送消息的技术,而不是我们常规的浏览器像server请求然后响应; 当我们需要使用server向浏览器主动推送数据的时候,请考虑使用该项技术,而不是考虑具有双向通讯功能的websocket; 以前我们用ajax轮询server也能实现,服务器负担大; sse原理是向server请求一次后,server会挂住请求不放…
转发地址:https://www.iteye.com/blog/wiselyman-2214292 4.1 拦截器 拦截器实现了对每一个请求处理之前和之后进行相关的处理,类似于Servlet的filter; 可以实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类; 继承HandlerInterceptorAdapter类,因为使用接口要实现接口的所有方法; 4.2 示例 新建拦截器 package com.wisely.interceptor…
<?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/sch…