- 博客(168)
- 收藏
- 关注
转载 杂谈 Taglib、EL、OGNL
本篇主要是自己对 JavaWeb中 EL、OGNL、Taglib 个人理解。 因为以上内容都是在 JSP 的基础下产生的概念, 首先得说说我眼中的 JSP。 她自由的、奔放的,就像辽阔的大海,跨越任何服务器屏障、运行在各种平台。 她能容纳下各种形式的代码和标签库,Java 原生代码、JSTL 表达式、Struts Taglib 、JSF Taglib 、Webwork Ta
2017-05-25 09:55:05
436
原创 小巧数据库 Apache Derby 使用攻略
1. Derby 介绍 将目光放在小 Derby 的原因是纯绿色、轻巧、内存占用小,分分钟在你机子跑起来,自己做点需要连接数据库的代码实践非常方便。 虽然 Mysql 也可以,多一种选择,不是也挺好么? Apache Derby是一个完全用 java 编写的数据库,Derby是一个Open source的产品。 Apache Derby非常小巧,核心部分derby.
2017-05-25 09:54:08
601
原创 IDEA 分享项目到 Git@OSC/GitHub
前提:新开项目,需要在 Git@OSC 建立版本库管理。 1.当然是先在Git@OSC上创建仓库,拿到Git@OSC仓库的HTTP连接 https://git.oschina.net/*****/***.git 2.如果我们的本地项目是非git项目,那我们要先把它变成git项目 在 idea 中 VCS——Import into Version Control——Creat
2017-05-25 09:53:16
432
原创 读取配置文件
1. Spring 和 Apache Commons Configuration 如果项目中没什么特殊的个性化读取配置文件需求,可以使用 Spring 管理配置文件信息,然后注入到需要的地方。 配置文件中需要添加(PS :多配置文件,添加 ignore-unresolvable 参数)。 context:property-placeholder location="c
2017-05-25 09:52:32
643
转载 Linux 中 SVN 重启关闭
a.启动SVN svnserve -d -r /A/B/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /A/B/svn/ 为svn的安装目录b.关闭SVN 这里采取linux杀死进程的方式处理的ps -ef|grep svnserve root 4967 1 0 Aug23 ? 00:00:00 svn
2017-05-25 09:51:33
1411
转载 Oracle 表和表数据恢复
1. 表恢复 对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的。 数据表和其中的数据都是可以恢复回来的,记得 flashback table 是从 Oralce 10g 提供的,一般步骤有: a.从 flashback table 里查询被删除的数据表select * from recyc
2017-05-25 09:50:38
432
原创 Spring + SpringMVC + Druid + JPA(Hibernate impl) 给你一个稳妥的后端解决方案
1. 采用到的开源项目漫谈 Spring 迷人的依赖注入特性, 使其已经稳稳的占据在 JavaEE 项目引用开源项目列表中的上层位置。 秉承低耦合高内聚的遵旨, Spring 提倡的对象工厂解耦类关系的思想已深入到每个攻城狮的心中。 SpringMVC 做为 Spring 的干儿子,最让我沉醉的是她强大的扩展能力,深邃的像大海一样。 前端无论是 freemarker
2017-05-25 09:49:35
788
原创 PowerDesigner 常用设置
1.使用 JDBC 方式连接 Oracle 逆向生成数据库 PDM 使用 ODBC 方式连接 Oracle 数据库可以借鉴这位兄弟的博客:http://www.cnblogs.com/clivehua/articles/4593211.html 个人感觉用 JDBC 的方式连接 Oracle 是比较简单。 [Database]->[ Configure Connectio
2017-05-25 09:48:35
841
转载 Hibernate 查询方式(HQL/QBC/QBE)汇总
1. HQL 方式,参数使用问号占位(4.1 版本中已被废弃)public List getUserList(UserPO userPO) { String hql = "from UserPO where name = ? and passwd= ?"; Query query = getHibernateSession().createQuery(h
2017-05-25 09:47:28
311
原创 结合实战简析Controller 配置
1. xwork.xml 主文件 xwork.xml 是 WebWork 自身的配置文件,实际开发中它是配置文件的主干骨架。 xwork 定义了一个 default 包,通过 include 包含 xwork 子文件。如下所示:DOCTYPE xworkPUBLIC "-//OpenSymphony Group//XWork 1.0//EN""http://
2017-05-25 09:45:52
425
原创 Hibernate 缓存机制浅析
1. 为什么要用 Hibernate 缓存? Hibernate是一个持久层框架,经常访问物理数据库。 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。2. 项目实战 当 Session
2017-05-25 09:45:01
264
原创 Spring + SpringMVC + Druid + MyBatis 给你一个灵活的后端解决方案
1.方案整体一览 由 Controller 层接受前端参数并响应请求,携带数据跳转页面。 Controller 层注入 ServiceInter, ServiceImpl 层组织业务数据。 ServiceImpl 层注入 Mybatis Mapper, Mapper 进行数据的访问。 和 Hibernate 类似整个 dao 层,都可以由工具生成,工程中使用的
2017-05-25 09:44:02
1100
原创 IDEA 中生成 MyBatis 逆向工程实践
1.搭建 MyBatis Generator 插件环境 a. 添加插件依赖 pom.xml mybatis 逆向生成插件--> plugin> groupId>org.mybatis.generatorgroupId> artifactId>mybatis-generat
2017-05-25 09:43:22
448
转载 自己动手实现简单权限控制
web 权限控制,很多项目会引入 shiro/spring-security。 shiro/spring-security 继承 servlet-->filter抽象接口,运用合适的设计模式, 通过拦截客户端请求,来实现各个角色对系统资源的访问权限。 一时兴起,有了自己实现权限控制的想法,遂有此文,如果你用腻了 shiro/spring-security,不妨来和我一起完善
2017-05-25 09:42:21
514
原创 JSP 页面传值方法总结
1. URL 链接后追加参数a href="next.jsp?paramA=A¶mB=B...">URL 后面追加参数a>jsp:include page="next.jsp">jsp:param name="paramA" value="A"/>jsp:include> jsp:forward page="next.jsp">jsp:param name="param
2017-05-25 09:41:41
293
原创 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )
Json 已成为当前服务器与 web 应用之间数据传输的公认标准。 微服务及分布式架构经常会使用 Json 来传输此类文件,因为这已经是 webAPI 的事实标准。 不过正如许多我们习以为常的事情一样,你会觉得这是理所当然的便不再深入比较。 我们很少会去想用到的这些 Json 库到底有什么不同,但事实上它们的确是不太一样的。 因此,我们团队来对常用的三个 Json
2017-05-25 09:40:45
386
转载 Dwr 框架简单实例
Dwr 是一个 Java 开源库,帮助你实现Ajax网站。 它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。 Dwr 主要包括两部分: 在服务器上运行的 Servlet 来处理请求并把结果返回浏览器。 运行在浏览器上的 Javascript,可以发送请求,并动态改变页面。 Dwr 会根据你的 J
2017-05-25 09:39:51
310
转载 浅析 JNDI / DataSource / ConnectionPool 三者
最近有个用户量 5W-10W 的 web 应用,频繁导致 weblogic 崩溃,让运维组很难受。 通过几天跟踪系统日志和 weblogic 运行状况,发现报错的姿势有很多,其中对定位问题比较关键的报错:ExecuteThread: '496' for queue: 'weblogic.kernel.Default (self-tuning)' has beenbusy for "71
2017-05-25 09:39:07
481
转载 Java 主流开源类库解析 XML
在大型项目编码推进中,涉及到 XML 解析问题时,大多数程序员都不太会选用底层的解析方式直接编码。 主要存在编码复杂性、难扩展、难复用....,但如果你是 super 程序员或是一个人的项目,也不妨一试。 Jdom/Dom4j/Xstream... 基于底层解析方式重新组织封装的开源类库,简洁明了的 API,稳定高效的运行表现。 Dom4j 基于 JAXP 解析方式,性能优
2017-05-25 09:38:01
820
转载 javascript——数组的那些事
Array构造器如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表。new Array(12)// (12) [undefined × 12]new Array('')// [""]new Array({})// [Object]new Array([])// [Array(0)]new Array(null)
2017-05-25 09:36:57
285
转载 Paxos算法
一、背景Paxos 协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(决议)的通信协议。但Paxos算法晦涩难懂,原版论文也是让人难以理解。故有了本文,希望给大家提供一点思路。二、Paxos算法2.1角色(核心就3个角色)Client:客户端,发起请求并等待返回。Proposer:提议发起者,处理客户端请求,将客户端的请求发送到集群中,以便决定这个值是否可以
2017-05-24 10:17:55
462
转载 netsh & winsock & 对前端的影响
netsh 与 winsock 一个是window的脚本工具,另一个则是window是网络编程中要用到的网络接口,而非要说跟我小小的前端有什么影响,那还真有...,当然这个影响是很不好的,比如nodeJS报“socket 系统调用失败”的错误,再比如sublime安装install package controll 失败,安装emmet是无法连接到PyV8,再比如一些联网的应用软件无法连接网络等等
2017-05-24 10:14:18
293
原创 gunicorn geventworker 解析
本文介绍其中一种asyncworker:GeventWorker。类图如下: 可见GeventWorker重载了init_process(这个方法是Worker唯一暴露给外界的接口),源码如下: 1 def init_process(self): 2 # monkey patch here 3 se
2017-05-24 10:12:04
611
转载 gevent拾遗
Timeout 这个类在gevent.timeout模块,其作用是超时后在当前协程抛出异常,这样执行流程也强制回到了当前协程。看一个简单的例子: 1 SLEEP = 6 2 TIMEOUT = 5 3 4 timeout = Timeout(TIMEOUT) 5 timeout.start() 6 7 def wait(): 8 gevent.s
2017-05-24 10:10:39
232
转载 Dirty Flag 模式及其应用
什么是Dirty Flag:回到顶部 简单来说,就是用一个标志位(flag)来表示一组数据的状态,这些数据要么是用来计算,或者用来需要同步。在满足条件的时候设置标志位,然后需要的时候检查(check)标志位。如果设置了标志位,那么表示这组数据处于dirty状态,这个时候需要重新计算或者同步。如果flag没有被设置,那么可以不计算(或者利用缓存的计算结果)。另外,在两次check之间,即使
2017-05-24 10:09:36
343
转载 同步与异步,回调与协程
概念上下文:回到顶部 当提到同步与异步,大家不免会想到另一组词语:阻塞与非阻塞。通常,同时提到这个这几个词语一般实在讨论network io的时候,在《unix network programming》中有详尽的解释,网络中也有许多讲解生动的文章。 本文所讨论的同步与异步,是指对于请求的发起者,是否需要等到请求的结果(同步),还是说请求完毕的时候以某种方式通知请求发起者(异
2017-05-24 10:08:45
240
原创 Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们的代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 anyany(iterable)Return True if any element of the iterable is true. If the iterable is empty, return
2017-05-24 10:06:59
147
转载 python描述符 descriptor
在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor。descriptor通常用来改变默认的属性访问(attribute lookup), 前提是descriptor的实例是类的属性(class attribute)。下面的代码展示了简单的用法 1 # -*- coding:
2017-05-24 10:06:01
160
原创 python属性查找 深入理解(attribute lookup)
首先,我们知道: python中一切都是对象,“everything is object”,包括类,类的实例,数字,模块 任何object都是类(class or type)的实例(instance) 如果一个descriptor只实现了__get__方法,我们称之为non-data descriptor, 如果同时实现了__get__
2017-05-24 10:05:04
270
原创 python yield generator 详解
generator基础回到顶部 在python的函数(function)定义中,只要出现了yield表达式(Yield expression),那么事实上定义的是一个generator function, 调用这个generator function返回值是一个generator。这根普通的函数调用有所区别,For example:def gen_generator():
2017-05-24 09:55:00
272
转载 greenlet 详解
greenlet初体验回到顶部 Greenlet是python的一个C扩展,来源于Stackless python,旨在提供可自行调度的‘微线程’, 即协程。generator实现的协程在yield value时只能将value返回给调用者(caller)。 而在greenlet中,target.switch(value)可以切换到指定的协程(target), 然后yield value
2017-05-24 09:54:18
417
原创 无限“递归”的python程序
如果一个函数直接或者间接调用了自己,那么就形成了递归(recursion),比如斐波那契数列的一个实现def fib(n): if n : return 1 else: return fib(n - 1) + fib(n - 2) 递归一定要有结束条件,否则就形成了死循环, 比如下面的例子:d
2017-05-24 09:50:34
393
原创 python性能优化
python为什么性能差:回到顶部 当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间;另一个是运行效率,这是对计算机而言,完成计算任务所需要的时间。编码效率和运行效率往往是鱼与熊掌的关系,是很难同时兼顾的。不同的语言会有不同的侧重,python语言毫无疑问更在乎编码效率,life is short,we use python。
2017-05-24 09:48:59
440
转载 python计算文件夹大小(linux du命令 简化版)
C盘又满了,怎么办?用了一些垃圾清理软件(或者bat脚本),但是还是不理想,那么具体哪些文件夹下面有巨大的文件呢?windows并不能通过详细信息看到每个文件夹的大小(PS:这里所谓的文件夹的大小是指文件夹下面所有文件的大小之和,包括子文件夹的大小,下同),道理也很简单,计算文件夹大小是比较费时的工作。当然,也可以通过属性查看文件夹大小,但是当一个文件夹下面又有及半个子文件夹的时候,怎么知道哪些比
2017-05-24 09:48:03
519
转载 由一个简单需求到Linux环境下的syslog、unix domain socket
需求:回到顶部 工作中有一个在Linux(debian8)环境下运行的服务器程序,用python语言实现,代码中有不同优先级的日志需要记录,开发的时候都是使用python的logging模块输出到文件,示例代码如下: 1 import logging, os 2 3 logger = None 4 def get_logger(): 5 global
2017-05-24 09:47:10
803
转载 CAP理论与MongoDB一致性、可用性的一些思考
大约在五六年前,第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉。但是印象深刻的是这么一张图片(后来google到图片来自这里): 这张图片是讲数据库(包括传统的关系型数据库和NOSQL)与CAP理论的关系。由于并NoSql并没有实践经验,也没有去深入了解,对于CAP理论更是一
2017-05-24 09:43:25
823
转载 强制解包看 Swift 的设计
不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包。举个例子,我在 OC 中定义这样一个变量:@property (nonatomic, copy) NSString *foo;它转成 Swift 就变成了这样:var foo: String!这样看上去合情
2017-05-24 09:41:55
288
转载 MyBatis01 MyBatis基础知识
1 MyBatis是什么 mybatis是一个持久层的框架,它对jdbc做了封装;是apache下的顶级项目 mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句 mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象
2017-05-24 09:40:44
241
转载 MyBatis02 MyBatis基础知识之Mapper映射器
1 Mapper映射器是什么 是符合映射文件要求的接口 接口要求 a. 方法名要与sql的id一致。 b. 方法的参数类型要与parameterType一致。 c. 方法的返回类型要与resultType一致。 映射文件要求 namespace必须等于接口名(包含包名) 增加笔记(2017年5月19日09:1
2017-05-24 09:39:52
696
转载 Ajax01 什么是ajax、获取ajax对象、ajax对象的属性和方法
1 什么是ajax ajax是一种用来改善用户体验的技术,其本质是利用浏览器提供的一个对象(XMLHttpRequest,也可称之为ajax对象) 向服务器发送异步请求;服务器返回部分数据(不是一个完整 的页面),浏览器利用这些数据对当前页面做部分更新; 整个过程,页面无刷新,不打断用户的操作。 注意1:异步请求,指的是,当ajax对象发请求时,浏览器不会销毁当前页面
2017-05-24 09:38:55
2143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人