- 博客(49)
- 收藏
- 关注
原创 springmvc数据回显以及 rusetful风格接收参数
1 数据回显:在方法中传递一个参数 model参数,使用这个对象的add。。。方法添加数据到域中,相当于在request中添加数据。然后前台去便利数据。@RequestMapping("tolist") public String tolist(Model model){ List<User> userList = new ArrayList<User>()...
2017-07-27 11:39:41
528
1
原创 springmvv 获取前台传递的参数
第一种方式,例如我的form表单,有一个input标签,例如 input name = password那么在我的controller中,定义的方法传递一个string类型的参数,例如public String login (String password){} 这样,我们后台就可以接受到前台的参数 第二种方式:使用pojo的方式进行接收参数,例如我的user对象中定义了 na...
2017-07-26 21:27:53
185
原创 springmvc执行流程分析
1 首先用户发起请求,被我们的拦截器拦截,拦截之后,返回的是一个Chain拦截器连,对我们的模型类进行封装 2 前端控制器再起请求,请求处理器适配器,处理器适配器调用controller里面的方法,调用方法之后返回 modelAndView,返回给前端控制器。 3前端控制器把modelAndView传递给试图解析器,试图解析器传递给view页面 4view试图再次传递前端控制器...
2017-07-25 00:03:16
237
原创 开发技巧使用BaseDao进行复用编程
在我们以前的开发中,我们在写Dao层的时候,我们都是先声明一个接口,然后写一个具体的实现类,在声明的这个接口中,通常就是我们定义的一些CRUD的一些操作,在写业务逻辑的时候,我们发现最后CRUD的操作基本会有冗余,于是,我们开发BaseDao接口和它的实现类BaseDaoImpl。 下面看我的BaseDao的接口代码 public interface BaseDao<T...
2017-06-12 09:19:30
200
原创 spring aop 再次学习(jdk+cglib+AspectJ)
学习aop,我们需要先学习一些专业术语1.target:目标类,需要被代理的类。例如:UserService2.Joinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。例如:所有的方法3.PointCut 切入点:已经被增强的连接点。例如:addUser()4.advice 通知/增强,增强代码。例如:after、before5. Weaving(织入):是指把增强advice...
2017-06-06 10:13:10
309
原创 使用spring进行注解开发
使用spring进行注解开发,我们首先需要在spring的配置文件中,添加扫描。也就是扫描包中,那个类有注解。<context:component-scan base-package=" "> 包就是你想要扫描的那个包。 1. @Component取代<bean class=""> @Component("id") 取代 <bean id=""
2017-06-05 16:26:24
97
原创 Hibernate的三种状态
Transient瞬时态:特点:持久化对象没有唯一标识OID.没有纳入Session的管理.Persistent持久态:特点:持久化对象有唯一标识OID.已经纳入到Session的管理.***** 结论:持久化持久态对象有自动更新数据库的能力.Detached脱管态:特点:持久化对象有唯一标识OID,没有纳入到Session管理.瞬时态:获得:Book book = new Book();瞬时--...
2017-05-19 12:53:04
92
原创 Hibernate的主键生成策略
尽量要Hibernate自己去维护主键:* 主键的生成策略:* increment :自动增长.适合 short int long...不是使用数据库的自动增长机制.使用Hibernate框架提供的自动增长方式.* select max(id) from 表; 在最大值的基础上+1.(多线程的问题.)在集群下不要使用* identity :自动增长.适合 short int l...
2017-05-19 11:27:58
94
原创 Hibernate(load方法和get方法区别)
get 和load的区别:* 1.发送SQL的时机:* load这个方法采用了一个技术.lazy延迟加载(懒加载).真正使用这个对象的数据的时候.(对象的数据不包括主键).* get这个方法是立即检索.当执行session.get()方法的时候,马上发送SQL语句查询.* 2.返回的对象:* load方法返回的是代理对象.* get方法返回的是真实的对象.(如果之前对象使用load方法查询过,那...
2017-05-19 09:43:26
104
原创 struts2 valueStack 解析(源码解读)
1 什么是valueStack 我们首先看一下struts2核心过滤器的源码。 我们查看deFilter方法,我们跟进execute.executeAction(request, response, mapping); 再次跟进直到Dispatcher类中 讲解一下上面的源码,我们重点查看蓝色选中的代码,我们就是首先在request里面取出值栈对象,我们可以查看一下上面...
2017-05-18 15:52:27
190
原创 struts2 文件的上传和下载
1 使用struts2进行文件的上传和下载十分的简单,不是再像jsp和servlet中那么麻烦。 现在说一下,如果以后我们在工作中,遇到一些组件我们不会开发,我们可以通过这种方式进行开发。 我们打开这个拦截器 fileUpload,然后我们查看这个拦截器的源码,然后我们打开javaDoc这个view, 收先我们需要在浏览器端进行一些设置,也就是在jsp页面进行一些设置。 ...
2017-05-16 09:57:07
123
原创 struts2 拦截器的实现机制
1 我们都知道strus2中的拦截器是struts2 的一个核心。 想看struts2的拦截机制,我们首先要看strus2的入口,也就是在web.xml中配置的过滤器。 首先说一下这个ActionMapping这个类,这个类的作用就是存储了action的信息,和执行流程的ActionFoward信息。所以在配置了action中信息之后,mapping的信息肯定不能为空,然后我们查看...
2017-05-15 16:57:50
161
原创 struts2 封装请求参数(四种)
1 直接在Action中,注入javaBean的属性,然后在action中给属性添加相应的set方法,当然,要求jsp表单input的name属性的名称和action中属性的名称相同,个人感觉这样接收参数十分乱,这样接收参数没有使用面向对象的思维去进行开发,而且action越来越像javaBean。2 为了解决我上面十分混乱的模式,struts2 还给我们提供了另一种解决方案,就是这次我...
2017-05-13 12:02:32
195
原创 文件的上传和下载(jsp+servlet)
1 导入jar包 2 文件上传 <form action="uploadServlet" method="post" encType="multipart/form-data"> <input type="file" name="f"><br> <inpu
2017-05-09 20:40:34
113
原创 使用过滤器实现编码全局处理(fillter)
public class EncodingFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, Serv...
2017-05-08 17:42:56
224
原创 使用request.getparamater
http://localhost:8080/webDemo1/TestServlet?aaa=2&bbb=1,通过请求,我们可以获得相应的请求参数。注意,这个set集合的key是sting类型的,但是value是String类型的数组。public void doGet(HttpServletRequest request, HttpServletResponse respons...
2017-05-08 17:14:31
726
原创 丢失更新的解决方案(乐观锁+悲观锁)
丢失更新: 当两个事物或多个事务都更新了同一条数据,但是这些事务彼此之间都不知道其他事务进行的修改,因此第二个更改覆盖了第一次的更改,说白了,就是事务A还没有提交之后,但是这个时候事务B更新了数据,那么事务A就丢失更新了。 解决方案: 乐观锁+悲观锁 悲观锁: 数据库的一种锁机制,悲观锁分成两种,分别是共享锁和排它锁 添加共享锁方式:select * from ...
2017-05-07 19:10:50
1189
原创 mysql的事务
1 事务的4个特性 (必回,面试必考) ① 原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 ② 一致性: 事务前后数据的完整性必须保持一致 ③ 隔离性: 事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。 ④ 持久性:持久性是指一个事...
2017-05-06 22:04:53
80
原创 mysql 数据库基础知识整理
首先将一下,如果你的mysql密码忘记了,那么通过下面的方式进行重置密码 1.停止mysql服务: services.msc 进入到服务界面 2.在cmd>输入一个命令: mysqld --skip-grant-tables (开启一个mysql服务,不需要进行认证.) 3.新打开一个cmd窗口 mysql ...
2017-05-03 17:25:11
186
原创 自定义标签
1 创建没有标签体的标签 1 首先创建一个jva类,去继承SimpleTagSupport,下面我们说一下SimpleTagSupport 中的方法的作用 * void setJspContext(JspContext pc) 这个方法中的参数就是pageContext的父类,这个方法是由服务器最先被调用的,然后我们得到我们的PageContext对象,也就...
2017-05-02 17:32:56
85
原创 jsp+servlet day2 (三大指令)
1 jsp页面的三大指令 ① pege指令 (重点) 常用的 pageEncoding和contentType,其中 pageEncoding 是设置jsp页面的编码,给服务器看,然后服务器编译成正确的编码,contentType 和 response.setContentType的方法相同, 它的作用 1 就是完成相应字符流的编码,2 设置响应头,(其实设置了这...
2017-04-30 17:13:27
98
原创 jsp+servlet day1 (文件编码+文件下载)
1 通过servlet保证不乱码 ① 首先设置response 字符缓冲区的编码 response.setCharacterEncoding("UTF-8"); ② 然后设置浏览器打开文件的编码,也就是设置响应头 response.setHeader("Content-Type", "text/html;charset=UTF-8") 要求两个编码...
2017-04-27 15:27:16
110
原创 冒泡排序+选择排序
public class Demo1 { public static void main(String[] args) { int[] array = {23,5,2,53,44}; selectSort(array); } //这个方法是冒泡排序 public static void sort(int []a){ int temp = 0; ...
2017-04-26 15:39:53
98
原创 快速排序
非原创博客,原创地址:http://www.iteye.com/topic/1116214 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接...
2017-04-26 15:27:45
80
原创 插入排序
public class Demo3 { private int[]array; public void sort(){ int length = array.length; if(length>0){ for(int i=1;i<length;i++){ int temp = array[i]; int j = ...
2017-04-26 15:09:35
104
原创 TCP 和 UDP
udp: 面向无连接。 不可靠。 速度快。 将数据封包传输,数据包最大64k。 举例: 聊天留言,在线视频,视频会议,发短信,邮局包裹。 tcp: 面向连接。 安全可靠 效率稍低。 通过三次握手确保连接的建立。 举例: 下载,打电话,QQ聊天(你在线吗,在线,就回应下,就开始聊天了)...
2017-04-20 18:15:55
166
原创 TCP 发送与接收
/* * TCP协议发送数据: * A:创建发送端的Socket对象 * 这一步如果成功,就说明连接已经建立成功了。 * B:获取输出流,写数据 * C:释放资源 * * 连接被拒绝。TCP协议一定要先看服务器。 * java.net.ConnectException: Connection refused: connect */public cla...
2017-04-20 18:08:12
257
原创 使用udp进行数据的发送和接收
public class SendDemo { public static void main(String[] args) throws IOException { // 创建发送端Socket对象 DatagramSocket datagramSocket = new DatagramSocket(); // 创建数据,并把数据打包 byte[] ...
2017-04-20 16:31:55
917
原创 多线程常见面试题
1:多线程有几种实现方案,分别是哪几种? 两种。 继承Thread类 实现Runnable接口 扩展一种:实现Callable接口。这个得和线程池结合。2:同步有几种方式,分别是什么? 两种。 同步代码块 同步方法(根据方法不同,锁也不同,静态用本类的.class充当锁,非静态用this)3:启动一个线程是run()还是start(...
2017-04-19 12:04:58
100
原创 多线程3
1 多线程的三种加锁方式 /* * A:同步代码块的锁对象是谁呢? * 任意对象。 * * B:同步方法的格式及锁对象问题? private synchronized void sellTicket() { if (tickets > 0) { try { Thread.sleep(100); } catch (Int...
2017-04-19 10:08:37
85
原创 多线程2
1 多线程的两种方式 ① 创建一个类,继承Thread,重写run方法, public class MyThread extends Thread { @Override public void run() { for(int i=0;i <=200;i++){ System.out.println(i+getName()); }...
2017-04-17 21:27:13
79
原创 多线程1
1 Java程序运行原理java 命令会启动 java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法。所以 main方法运行在主线程中。在此之前的所有程序都是单线程的。 2 jvm 是多线程的 JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。 3 线程中断 首先我...
2017-04-17 14:22:58
82
原创 面试总结3
面试题1 : final,finally,finalize的区别?final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。 面试题2 : :如果在cat...
2017-04-14 17:43:18
93
原创 map集合的遍历方式
Map<String,String> hm = new HashMap<String,String>(); hm.put("it002","hello"); hm.put("it003","world"); hm.put("it001","java&quo
2017-04-14 15:32:06
100
TreeSet 和 HashSet如何实现添加无重复对象(源码分析)
首先,我们来对比的说一下set集合和list集合,list集合就好比女生的衣柜,女生的衣柜都非常的整齐,因为女生大多爱好购物,一般衣柜里面有几件相同的衣服,所以list集合的特点就是有序,可以包含重复的元素,有序就是按顺序输出,下面我们来说一下set集合,set集合就好比是一篮鸡蛋,你想呀,一篮子鸡蛋,肯定没有两个相同的鸡蛋,而且,由于鸡蛋的形态,所以,这些鸡蛋都不是很整齐的排放,所以,s...
2017-04-13 21:20:35
143
原创 泛型限定
public class Demo7 { public static void main(String[] args) { Demo6<String> dd = new Demo6<String>(); dd.Show("aaa"); List<? extends person> list = new ArrayList<bo...
2017-04-12 20:05:36
102
原创 面试总结2
面试题· 4 object 中的一些方法 具体方法讲解讲解每个方法的时候,查看源码。public int hashCode() A:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。 B:不同对象的,hashCode()一般来说不会相同。 但是,同一个对象的hashCode()值肯定相同。 C:不是对象的实际地址值,可以理解为逻辑地址值。 ...
2017-04-12 16:55:46
118
原创 面试总结1
面试题1: ==和equals()的区别? A:== 基本类型:比较的是值是否相同 引用类型:比较的是地址值是否相同 B:equals() 只能比较引用类型。默认情况下,比较的是地址值是否相同。 但是,我们可以...
2017-04-12 16:11:26
80
原创 mybaits 一对多,一对一查询
原地址:http://blog.youkuaiyun.com/evankaka一、创建表、分析下面是两表,一个是顾客表,一个是车票表。一个顾客可以对应多张车票,但是一张车票只能对应一个顾客 t_customer:顾客表,一个顾客可以对应多张车票t_ticket:车票表,一张车票只能对应一个顾客1、创建数据表及插入初始数据创建数据表[sql] view plain c...
2017-04-11 10:32:11
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人