- 博客(36)
- 收藏
- 关注
转载 struts2基础篇(1)
一、Struts2简介Struts2以WebWork优秀的设计思想为核心,吸收了Struts1的部分优点,建立了一个基于WebWork和Struts1的MVC框架。二、搭建Struts2开发环境2.1、通过官网下载最新版:http://struts.apache.org/download.cgi建议下载struts-xx.all.zip包,压缩包中不仅包含struts2的jar还包
2016-07-19 12:48:50
474
转载 struts2工作原理
上图来源于Struts2官方站点,是Struts 2 的整体结构。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有
2016-07-19 10:19:54
397
转载 SpringMVC访问静态资源的三种方式
如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。
2016-07-13 10:42:10
59400
2
转载 mysql 数据类型
1、整型MySQL数据类型含义(有符号)tinyint(m)1个字节 范围(-128~127)smallint(m)2个字节 范围(-32768~32767)mediumint(m)3个字节 范围(-8388608~8388607)int(m)4个字节 范围(-2147483648~2147483647)
2016-07-12 16:58:03
629
原创 mysql Access denied for user root@localhost错误解决方法总结
问题重现(以下讨论范围仅限Windows环境): C:\AppServ\MySQL> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决方法:编辑mysql配置文件my.ini(在
2016-07-06 17:00:40
395015
35
转载 spring 事务机制总结
Spring两种事务处理机制,一是声明式事务,二是编程式事务。声明式事物1)Spring的声明式事务管理在底层是建立在AOP的基础之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规
2016-07-06 13:44:14
308
转载 SpringMVC工作原理
SpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherSe
2016-06-15 14:32:47
348
转载 设计模式:抽象工厂模式
前言接着上一篇工厂方法模式说,现在披萨店生意很好,除了卖披萨,又卖汉堡,并且为了适用不同的客户群体,增加了单人套餐和家庭套餐。这种情况下多了一个产品汉堡,已经不适合用工厂方法模式了,这时候就要用到更加抽象化的抽象工厂模式来满足这个系统。正文抽象工厂模式概念抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品
2016-05-26 15:39:44
287
转载 Mybatis学习总结二
1.传递pojo对象Mybatis使用ognl表达式解析对象字段的值,如下例子: select * from user where id=#{id} and username like '%${username}%' MyBatis是通过反射来将java对象映射到查询参数中的。2.传递pojo包装对象 开发中通过pojo传递查询条件 ,查询条件是综合
2016-05-20 11:27:27
627
转载 设计模式:工厂方法模式
工厂方法模式工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。首先,在工厂方法模式中,核心的工厂类不再负责所以产品的创建,而是将具体创建的工作交给子类去做.这个核心类则摇身一变,成为了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。这种进一步抽象化的结果,使这种工厂方法模式可
2016-05-18 16:43:03
286
转载 Mybatis学习总结一
1.MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不
2016-05-18 11:02:05
866
转载 设计模式:简单工厂模式
简单工厂模式简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例。定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。在模块内部新建一个类,在这个类里面来创建接口,然后把创建好的接口返回给客户端,这样外部应用就只需要根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法
2016-05-17 15:12:01
377
转载 HashMap工作原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2. HashMap的数据结构: 在java编程语言中,最基本的结构就是
2016-05-14 17:10:17
290
转载 Java 自定义注解
自定义注解类编写的一些规则:1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.2. 参数成员只能用public或默认(default)这两个访问权修饰3. 参数成员只能用基本类型byte,short,char,int,long,float,double,bool
2016-05-02 11:50:53
633
Java 自定义注解
自定义注解类编写的一些规则:1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.2. 参数成员只能用public或默认(default)这两个访问权修饰3. 参数成员只能用基本类型byte,short,char,int,long,float,double,bool
2016-05-02 11:44:41
245
转载 设计模式:代理模式
代理模式代理模式的定义很简单:给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构有些情况下,一个客户不想或者不能够直接引用一个对象,可以通过代理对象在客户端和目标对象之间起到中介作用。代理模式中的角色有:1、抽象对象角色声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象2、目标对象角色定义了代理对象所
2015-11-30 16:09:57
330
转载 Java动态代理详解
什么是动态代理:说起动态,其实不如先说什么是静态。所谓静态代理,个人理解为自己手写的代理类,或者用工具生成的代理类,或者别人帮你写的代理类(没说一样...)。总之,就是程序运行前就已经存在的编译好的代理类。相反,如果代理类程序运行前并不存在,需要在程序运行时动态生成(无需手工编写代理类源码),那就是今天要说的动态代理了。如何生成的:根据Java的反射机制动态生成。不多说了,上程序。
2015-11-23 16:54:09
293
转载 Java 代理模式
1.代理模式简介代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可
2015-11-23 15:53:58
317
转载 spring注解总结
一、引言1. 没有注解之前public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; }
2015-09-06 16:16:03
279
转载 Mybatis 动态sql
名词解析OGNL表达式OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对Java对象图进行导航。OGNL表达式的基本单位是"导航链",一般导航链由如下几个部分组成:属性名称(property) 方法调用(method invoke) 数组元素所
2015-08-28 16:42:05
266
转载 Spring AOP的两种实现方式
AOP常用实现方式是一个采用声明的方式来实现,一个采用注解的方式来实现。方式一:采用声明的方式实现(在XML文件中配置),大致步骤为:配置文件中配置pointcut, 在java中用编写实际的aspect 类, 针对对切入点进行相关的业务处理。业务接口:package com.aop.service;public interface IBaseBusiness { publ
2015-08-27 22:26:14
496
原创 springmvc与Ajax交互
在 Spring mvc3中,响应、接受JSON都十分方便。 使用注解@ResponseBody可以将结果(一个包含字符串和JavaBean的Map或者一个List),转换成JSON。 使用@RequestBody 注解前台只需要向Controller 提交一段符合格式的JSON,Spring 会自动将其拼装成 bean。 Spring这个转换是靠org.codehaus.jackso
2015-08-14 13:42:22
490
原创 Mybatis调用存储过程
一、返回结果集以MySql分页为例1.存储过程DROP PROCEDURE IF EXISTS sp_pager;CREATE PROCEDURE sp_pager( IN currentPage int ,/*当前页*/ IN pageSize int,/*每页的记录数*/ OUT totalCount int /*总记录数*/ -- IN tableName v
2015-08-10 15:52:37
443
转载 redis学习:redis安装
1.下载redis,我这里选择的是2.6版本的。2.打开压缩包,可以看到我们下载的其实是一个完整的Redis-2.6的包,可以看到里面又有两个目录,一个是32位操作系统使用的,另一个则是64位操作系统使用的。3.我所使用的是32位操作系统,所以我将redisbin_x32.zip拷贝出来,解压后移动至我的D:\redis目录中,可以看到解压后的内容包含以下的一些可执行exe文件:下
2015-08-09 23:30:28
286
转载 java基础:jsp、Servlet相关知识
1、servlet生命周期所谓生命周期,指的是servlet容器如何创建servlet实例、分配其资源、调用其方法、并销毁其实例的整个过程。阶段一: 实例化(就是创建servlet对象,调用构造器)在如下两种情况下会进行对象实例化。第一种情况:当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例。第二种情况:容器在启动时,或者新部署了某个应用
2015-08-04 17:06:33
286
转载 java多线程(二) 多线程的同步
一、为什么使用同步 java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 二、线程同步的方法关于线程的同步,一般有以下解决方法:1.同步方法 即有synchronized关键字修饰的方
2015-08-03 16:55:04
274
转载 mongodb学习(一)——基础入门
关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载 上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意: ①:根据业界规则,偶数为“稳定版”(如:1.6.X,1.8.X
2015-08-02 23:14:14
391
转载 MySql学习:索引
一、什么是索引索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快
2015-08-02 20:30:59
356
转载 java多线程Thread和Runnable
java中实现多线程的方法有两种:继承Thread类和实现runnable接口1.继承Thread类,重写父类run()方法package com.test;public class myThread extends Thread{ private int ticket=10; private String name; public myThread(Str
2015-07-28 17:04:33
318
转载 java基础:HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap。本节实例主要介绍这4中实例的用法和区别。关键技术剖析:Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。(1)Hashmap 是一个最常用的Map,它根据键的HashCode 值存
2015-07-28 11:45:44
492
转载 springmvc请求接收参数的几种方法
注:在类上使用注解@RequestMapping(value="/User")一、通过@PathVariabl注解获取路径中传递参数/** * 通过@PathVariable注解获取路径中传递参数 * @param id * @param str */ @RequestMapping(value="/{id}/{str}") public ModelAndVie
2015-07-26 16:56:45
400
转载 struts2+jQuery+ajax调用演示
关键点:1.引入包:struts2对数据进行json序列化,必须要用到struts2的json-lib,struts2-json-plugin包;2.json数据处理:异步提交的数据采用json格式,struts2-json-plugin会对数据进行json处理,所以struts2配置文件struts.xml中的package节点的extends必须是:extends="json-defa
2015-06-07 19:11:35
379
转载 JAVA中request.getParameterMap()用法笔记
今天学习了一个获取提交表单数据的新方法request.getParameterMap。 在此之前,获取表单数据时总是用request.getParameter(“name”),根据表单中的name值获取value值,需要获取几项就得重复写几次getParameter,而request.getParameterMap方法则不同,不需要参数,返回结果为Map 。其实,request.getPar
2015-05-14 10:32:07
55163
转载 Oracle 保留两位小数解决方案
方式一:使用to_char的fm格式to_char(round(data.amount,2),'FM9999999999999999.00') as amount不足之处是,如果数值是0的话,会显示为.00而不是0.00。 另一需要注意的是,格式中小数点左边9的个数要够多,否则查询的数字会显示为n个符号“#”。 解决方式如下: select decode(salary,0,
2015-04-17 14:19:24
25089
原创 ibatis--SqlMapClientTemplate用法
用法一:先在Dao里注入template,然后再在Template 里注入sqlMapClient。Spring配置文件如下: <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> classpat
2015-04-09 21:45:04
1153
转载 ibatis总结
一、区分ParameterMap和ParameterClassparameterMap属性parameterMap的值等于一个预先定义的元素的名称。parameterMap属性很少使用,更多的是使用上面的parameterClass和inline parameter注意!动态mapped statement只支持inline parameter(内联参数),不支持parameter m
2015-04-06 17:00:13
343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人