`
文章列表
我们通过一个简单的实例来讲解一下velocity的使用过程 import java.io.StringWriter; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.apache.velocity.app.VelocityEngine; public class Simple1 { /** * 入门,标准velocity的使用 */ pub ...
对于CPU速度高于网络的情况,传统的Java解决方案是缓冲和多线程。多个线程可以同时为几个不同的连接生成数据,并将数据存储在缓冲其中,知道网络准备好发送。 一些基础概念 缓冲区Buffer 位置 position 缓冲区将被读取或写入 ...
在WEB上传文件时,要用到上传框<input type="file"/> 这东东在IE(其他偶没经过测试)中是一个非常特殊的对象。如果是您手动写入的或其他对象经过某些事件触发填入的值由于安全问题,在进行提交表单时,往往会被清空,所以上传失败。简单点说,除非你的鼠标亲自点到了上传框f上,IE才会给你上传文件! 哪怕你将 f 的onclick句柄赋给某个对象,如: <input type="file" id="f" name="f"> <input onclick="f.cl ...
DbUtils是一个小型的类库,它设计用于使JDBC编程更加方便、简单。JDBC编程中,资源的关闭是显式的,极易导致编程错误,DbUtils把这些清理工作抽象出来,使得程序员编程时仅需要关心真正需要关心的,即:query和update数据。 DbUtils的一些优点: 1.杜绝资源泄漏。修正JDBC代码并不困难,但是这是耗时而乏味的,这通常导致连接泄露并且难以跟踪到; 2.清洁干净的持久化代码。大段的持久化数据到数据库代码彻底精简,剩下的代码清晰地表达了编码的意图。 3.从ResultSet里自动组装JavaBean。你不再需要手工set每一行每一列的值到bean中,每一行数据都将会以一个Be ...
Jetty 是 Java 领域另--个出色的 Web 服务器,这个服务器同样是开源项目。相对于Tomcat, Jetty 有更大的优点----可作为--个嵌入式服务器,即如果在应用中加入 Jetty的 Jar文件,则应用可在代码中对外提供 Web 服务。 Jetty路径结构 etc:该 ...
HTTP服务器核心就是Socket短连接 先简单说概念: 1、socket就是TCP/IP实现的套接字,就是应用层调用下层服务的接口。 2、短连接指的是连接建立后,双方进行数据交互(通常是一个数据包,也可以是多个),交互完毕后立即关闭连接的TCP/IP实现方式就是常说的短连接,最常见的短连接例子就是HTTP协议。 3、长连接则指的是双方交互完毕后,不关闭连接,而让连接一直空闲着等待下一次交互,这样在一次交互前就免去了再重新建立连接的消耗,本机测试一次 socket连接需要耗时23毫秒。 优点就是性能好。缺点有二,一是实现方式比较复杂,需要单独用线程收,发倒是无所谓;二是需要增加链路检测的 ...
Java新IO所使用的结构 更接近于操作系统执行I/O的方式:通道和缓冲器。通过是包含煤层的矿藏,缓冲器则是派送到矿藏的卡车。唯一与通道交互的缓冲器是ByteBuffer。 旧I/O库中有三个类被修改了,用以产生FileChannel public class GetChannel { public static void main(String[] args) throws IOException { FileChannel fc = new FileOutputStream("data").getChannel(); fc.write(ByteB ...
项目中,我们一般都是写上隐藏的form标签,用<a href="#" onclick="..."/>来调用js函数,给form中表单要提交的内容赋值,然后submit提交。如果页面没有隐藏的form,我们可以用JavaScript动态生成Form提交,或者只有一个隐藏form,动态生成要传递的参数。 function post(url, params) { var tempForm = document.createElement("form"); tempForm.acti ...
编程语言的I/O类库,常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象,或者有能力接收数据的接收端对象。 InputStream的作用是用来表示那些从不同数据源产生输入的类,这些数据源包括 1 字节数组  ByteArrayInputStream 将内存的缓冲去当作InputStream使用 2 String对象 StringBufferInputStream (已弃用) 3 文件 FileInputStream 4 管道 PipedInputStream 5 一个有其他种类的流组成的序列,以便我们可以将它们收集合并到一个流内 SequenceInputStream 6 其他数据源, ...
两个核心类DatagramPacket 数据包、DatagramSocket 数据包Socket 接收数据包的构造函数 public DatagramPacket(byte buf[], int length) 发送数据包的构造函数,比接收的多了发送目标地址 public DatagramPacket(byte buf[], int length, InetAddress address, int port) 两个核心方法 DatagramSocket类 public void send(DatagramPacket p) throws IOException public synchroni ...
从线程中取得信息 轮询 主程序无限循环,从子线程取得返回值,直到子线程执行完毕(返回值不为0) public class ReturnThread extends Thread { private int time; private int result; public ReturnThread(int time) { this.time = time; } public void run() { try { TimeUnit.SECONDS.sleep(time); } catch (InterruptedEx ...
1.执行光标所在行SQL语句 一个sql窗口中如果有多条sql语句,点击执行或者按F8,会全部执行,其实我们需要的只是实行其中的某一条。下面介绍一种方法可以执行光标所在行SQL语句,不用选中也不用Shift+Home Tools-->Preferences-->Window Types-->SQL Window-->选中AutoSelect statement复选框,然后Apply,就OK了。 2.使用自定义快捷键 PL/SQL Developer也可以像其他IDE那样使用自定义快捷键提高编写代码效率,为开发者提供方便。 如我们平时在sql窗口中使用最频繁的 selec ...
项目中需要从FTP上下载数据,采用了开源的commons-net包。在实际应用中发现了一个问题,有些服务器上调用ftpClient.listFiles()方法可以返回包含文件名的数组,有些服务器上此方法返回NULL。但是ftpClient.listNames()方法能返回路径中的文件名,ftpClient.delete()方法也能删除文件。 命令行连接FTP,执行ls -l 发现返回数据日期的地方比较奇怪。 引用-rw-rw-rw-  1 username nobody      145  6月22 16时56 xxxxx.csv drw-rw-rw-  1 username nobody    ...
极限编程,通常成为XP,是一种针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。XP团队以可持续的步调生产优质软件。任何情况下,变化是绝对的,不变是相对的,我们不要抱怨变化的 ...
idcodevalue1a12a33a34b35b46b5 取code相同的,value最大的记录,value相同时,取id值大的 select * from test t1 where not exists (select * from test t2 where t1.code = t2.code and t1.value < t2.value) and not exists (select * from test t3 where t1.code = t3.code and t1.value = t3.value and t1.id < t3.id)
Global site tag (gtag.js) - Google Analytics