05 2014 档案
摘要:到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助。一、首先看一下项目结构:InfrastructureProjects:是抽取出的基础项目,主要封装了一些通用的操作。SpringMVC3Demo:就是管理系统所在的...
阅读全文
摘要:本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松。一.首先我们先做一个简单了例子来对Spring MVC表单表单标签的使用有一个大致的印象,然后再结合例子对各个标签介绍一下如何使用。1.首先,在com.d...
阅读全文
摘要:在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的。那么如何保证我们处理异常的代码精简且便于维护呢?这就是本篇要讲的内容—>异常处理。在Spring MVC中我们可以通过以下2中途径来对异常进行集中处理:一.继承HandlerExc...
阅读全文
摘要:对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现。但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证。一.首先介绍一下action拦截器:Handl...
阅读全文
摘要:在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单、标题等)做国际化处理呢?这就是本篇要将的内容—>国际化。一.基于浏览器请求的国际化实现:首先配置我们项目的springservlet-config.xml文件添加的内容如...
阅读全文
摘要:在系列(6)中我们介绍了如何验证提交的数据的正确性,当数据验证通过后就会被我们保存起来。保存的数据会用于以后的展示,这才是保存的价值。那么在展示的时候如何按照要求显示?(比如:小数保留一定的位数,日期按指定的格式等)。这就是本篇要说的内容—>格式化显示。从Spring3.X开始,Spring提供了C...
阅读全文
摘要:在系列(4)、(5)中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容 —> 数据验证。这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证。首先我们要到htt...
阅读全文
摘要:在系列(4)中我们介绍了如何用@RequestParam来绑定数据,下面我们来看一下其它几个数据绑定注解的使用方法。1.@PathVariable 用来绑定URL模板变量值,这个我们已经在系列(3)中介绍了使用方法,这里不在赘述。2.@CookieValue 用来绑定Cookie中的数据。下面我们用...
阅读全文
摘要:在系列(3)中我们介绍了请求是如何映射到一个action上的,下一步当然是如何获取到请求中的数据,这就引出了本篇所要讲的内容—数据绑定。首先看一下都有哪些绑定数据的注解:1.@RequestParam,绑定单个请求数据,可以是URL中的数据,表单提交的数据或上传的文件; 2.@PathVariabl...
阅读全文
摘要:在系列(2)中我们展示了一个简单的get请求,并返回了一个简单的helloworld页面。本篇我们来学习如何来配置一个action的url映射规则。在系列(2)中我们在HelloWorldController上配置了一个@RequestMapping(value = "/helloworld")这表...
阅读全文
摘要:前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去。首先还是从一个简单的Hello World项目说起:我机器的开发环境为:Ubuntu12.04(不同操作系统对本系列项目没有影响);开发工具:Eclipse For JavaEE;数据库:...
阅读全文
摘要:1.前言:与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题。由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论坛。找不到windows虚拟主机,且肯定不能换朋友主机的系统。刚开始时打算用mono把之前做的.Net...
阅读全文
摘要:前面我们写了常见的几种排序算法,并分析了各种算法的实现思想,及时间复杂度等情况,但由于只是分析,木有实际的数据做对比测试,所以对各个算法的效率也没有一个明确的概念,下面我们就通过具体的测试来看看同算法之间的效率差距。声明11个长度为100的元素取值范围为0到1000的序列int length = 1...
阅读全文
摘要:桶排序是一种效率很高的排序算法,它的时间复杂度为O(n),但桶排序有一定的限制,只有当待排序序列的元素为0到某一确定取值范围的整数时才适用,典型的例子比如成绩的排序等。算法思想:设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列,把待排序序列中...
阅读全文
摘要:希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后减...
阅读全文
摘要:归并排序也是基于分治思想的一种排序算法,是通过对两个或两个以上的有序序列合并来实现的,对两个序列合并的叫两路归并,对两个以上序列合并的叫多路归并。归并排序的时间复杂度也为O(N*logN)。下面来看一下两路归并的实现:基本思想:归并排序时先找出序列的中间元素把序列分解为两个子序列,对子序列重复这个过...
阅读全文
摘要:快速排序是基于分治思想的一种排序算法,就像该方法的名字一样,速度比较快,所以叫做快速排序;它的平均时间复杂度为O(N*logN),最坏时间复杂度为O(n²)。快速排序也有很多优化的版本,比如在排序时基数的选择等等…下面就说一下一般的快速排序的实现。基本思想:快速排序的基本思想就是,先从待排序的序列中...
阅读全文
摘要:递推法就是根据已知条件,分析推导出问题中的联系,然后一步一步进行推倒直至得到结果。根据具体问题我们需要选择是正推还是逆推来解决问题。下面先举一个递推中的经典例子,就是求兔子数量的问题:现有一只一个月大的兔子,已知当兔子在第三个月大时每月就可以生下一只小兔子(好吧,就按兔子是无性繁殖的),求一年后兔子...
阅读全文
摘要:最近把之前的WebAPI项目发布到服务器上,数据库由SQL Server2008 EXPRESS改为SQL Server2000,但在分页查询时服务器抛出了“500错误”,但却看不到错误的详细信息,按照之前的经验把配置文件的customErrors打开依然看不到详细信息,由于项目是发布在服务器上,没...
阅读全文
摘要:本次介绍排序算法中的插入排序。1.直接插入排序:基本思想:直接插入排序也需要对待排序的序列在外层进行n-1次遍历,每次遍历时只把本次遍历次数处的元素和该元素之前的元素进行比较,来决定插入位置,并把从插入位置开始到该元素之前的所有元素后移,使从序列开始到该元素为止序列中的元素有序,直至遍历完成序列整体...
阅读全文
摘要:上一篇我们记录了冒泡排序算法的实现,这次我们来看直接选择排序是如何实现的。1.直接选择排序:基本思想:直接选择排序也是对被排序的序列进行n-1次遍历,与冒泡排序不同的是,它并不对本次遍历序列内的元素两两进行比较并根据比较的结果来决定是否交换,而是找出本次遍历的序列内元素的最小值,并插入本次遍历的开始...
阅读全文
摘要:之前看到一个题目,大概是:有一个长度为n的数组,数组内的元素取值范围为0到m,且不相等,要求元素经过n次移动后使数组有序(即算法的复杂度为O(n))。看到题目后想了快速排序和归并排序发现并不能满足题目要求,直到有次看书又看到了桶排序然后豁然开朗,所以决定把这些排序算法再写一遍,加深记忆。约定:之后的...
阅读全文
摘要:e是一个重要的常数,但是它的直观含义却不像π那么明了。我们都知道,圆的周长与直径之比是一个常数,这个常数被称为圆周率,记作π=3.14159…,可是如果我问你,e代表了什么,你能回答吗?不妨先来看看维基百科是怎么说的:“e是自然对数的底数。”但是,你去看“自然对数”这个条目,得到的解释却是:“自然对...
阅读全文
浙公网安备 33010602011771号