`
文章列表
首先说说三个名词,面向对象、面向接口编程、面向切面编程(Aspect Oriented Programming 即AOP)。 针对java来说 面向对象:是对现实世界的描述,是后两者的基础,大前提。 面向接口编程:接口就是一组规则的集合,这组规则可以有不同的实现方式。如JDBC,它本身仅仅是接口规范,不同的数据库有不同的实现,我们通过JDBC这样的接口编程,就无需关心我们使用的是哪种数据库,可以方便的实现数据库的切换而不必改动代码。 面向切面编程:是对面向对象的补充,主要应用的场景为:               (1):权限拦截               (2):方法监控           ...
equals和hashCode网上也有很多的资料。这里只是记录下我目前的理解与认识。 大家会经常听到这样的话,当你重写equals方法时,尽量要重写hashCode方法,有些人却并不知道为什么要这样,待会就会给出源码说明这个原因。 首先来介绍下Object的equals和hashCode方法。如下: public native int hashCode(); public boolean equals(Object obj) { return (this == obj); } 这里挺简单的,equals(obj)默认比较的是内存地址,hashCode()方 ...
首先我们先看看ModelAndView中重要的View接口。 View接口: String getContentType(); /** * Render the view given the specified model. * <p>The first step will be preparing the request: In the JSP case, * this would mean setting model objects as request attributes. * The second step will be the act ...
提到设计模式,我们会经常这样听说:"我也看过很多的设计模式,但在实际的项目中从来没有用过"。这的确是我以及很多人遇到的情况,那些设计模式都能看懂,但就是在项目用不到,总感觉纸上谈兵,落实不到我们具 ...
本文章针对mvc:interceptors标签进行介绍,它的注册过程以及在访问时的拦截过程。 首先说下接口HandlerInterceptor,它有如下三个方法: boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception; void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, Mo ...
上一篇文章介绍了HandlerMethodArgumentResolver的来龙去脉,这篇就要说说自定义HandlerMethodArgumentResolver来解决我们的需求,本文提供了四种解决方案。 需求,有一个Teacher类和Student类,他们都有属性name和age: 前端form表单为: <form action="/test/two" method="post" > <input type="text" name="teacher.name" value=" ...
本文章主要介绍HandlerMethodArgumentResolver在SpringMVC中的使用,介绍几个HandlerMethodArgumentResolver具体的使用情况,然后说明HandlerMethodArgumentResolver的注册来源以及如何自定义注册。 首先具体看下请求映射到的handler的对应的映射函数的参数形式有哪些: HandlerMethodArgumentResolver接口只有两个方法: //判断是否支持要转换的参数类型 boolean supportsParameter(MethodParameter parameter); //当支持后进 ...
PropertyEditor是Spring最初采用的转换策略。将会转移到Converter上。本文章主要对@InitBinder注解背后代码层面的运行过程做介绍。所以最好先熟悉它的用法然后来看通代码流程。 先看实例,controller代码如下: @Controller public class For ...
这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。 HttpMessageConverter接口介绍: public interface HttpMessageConverter<T> { /** * Indicates whether the given class can be read by this converter. * @param clazz the class to test for readabili ...
经过了两篇的乱码说明,要重新回到mvc:annotation-driven标签中,继续说说HandlerMethodReturnValueHandler的使用,下一篇文章主要说说HttpMessageConverter。 HandlerMethodReturnValueHandler是RequestMappingHandlerAdapter用来处理当含有@RequestMapping的方法调度完成后,后面要进行的事情。 首先是HandlerMethodReturnValueHandler的自定义注册: mvc:annotation-driven配置如下: <mvc:annotatio ...
在做文件下载时,当文件名为中文时,经常会出现乱码现象。 参考文章: http://blog.robotshell.org/2012/deal-with-http-header-encoding-for-file-download/ 本文就详细给出案例来解决这一乱码问题,以及还一直未解决的一个疑问,欢迎大家一起来探讨。 大体的原因就是header中只支持ASCII,所以我们传输的文件名必须是ASCII,当文件名为中文时,必须要将该中文转换成ASCII。 转换方式有很多: 方式一:将中文文件名用ISO-8859-1进行重新编码,如headers.add("Content-disposit ...
继续上一章节的乱码问题。上一篇文章仅仅说了设置Tomcat的URIEncoding可以解决乱码问题,这篇文章便会讲述这一背后的内容。首先说明下,光看是没用的,要多实验实验。 目前我的tomcat版本为:7.0.55,spring所有文章的版本始终为4.0.5 本文章会从tomcat的源码角度来解析Tomcat的两个参数设置URIEncoding和useBodyEncodingForURI。 对于一个请求,常用的有两种编码方式,如下: <!DOCTYPE html> <html> <head> <meta charset=" ...
继续上一篇文章遗留的乱码问题,引出从客户端数据到服务器端的乱码和服务器端数据到客户端的乱码。 先说明下配置: 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 Applic ...
上一篇文章讲述了最简单的mvc:annotation-driven,这次就要说说@ResponseBody注解,很明显这个注解就是将方法的返回值作为reponse的body部分。我们进一步分析下这个过程涉及到的内容,首先就是方法返回的类型,可以是字节数组、字符串、对象引用等,将这些返回类型以什么样的内容格式(即response的content-type类型,同时还要考虑到客户端是否接受这个类型)存进response的body中返回给客户端是一个问题,对于这个过程的处理都是靠许许多多的HttpMessageConverter转换器来完成的,这便是本章要讲的内容。 常用的content-type类 ...
上一篇文章让我们了解HandlerMapping和HandlerAdapter以及默认采取的策略,这篇文章就要讲述mvc:annotation-driven对默认策略的改变。它背后到底注册了哪些HandlerMapping和HandlerAdapter。 首先可以在DispatcherServlet的initStrategies方法中的initHandlerMappings和initHandlerAdapters中打上断点,来查看注册了哪些HandlerMapping和HandlerAdapter protected void initStrategies(ApplicationConte ...
Global site tag (gtag.js) - Google Analytics