Java Web应用启动间隔执行的程序
摘要:Reference:《Java定时器timer.schedule在Web中间隔执行任务和定时》《【Java】Timer和TimerTask详解》 做了一个Demo,完成如下的功能: 让Tomcat在WEB程序启动的时候启动一个线程池和一个Timer线程,Timer线程每隔一段时间跑一次(比如检查到期的用户,类似轮询查看),然后触发另一个后台线程(甩给线程池去处理,比如处理到期的用户,发送等)。 ...
阅读全文
Java 线程池学习
摘要:Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6] [1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk1.5版本以上提供了现成的线程池。 [2]中介绍了java.util.concurrent.Executors类的API。 [3]中介绍了Java中线程池的类体系结构。 [4]中有ThreadPoolExecu
阅读全文
Java 守护线程
摘要:Refererence: 《守护线程总结》[1], 《Web应用程序中调度器的启动和关闭问题》[2] 在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)。 守护线程和用户线程唯一的区别就是守护线程会随着用户线程的(被守护的)结束而结束。 使用方法: thread.setDaemon(true); 这里有几点需要注意: (1) thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。 (2) 在D
阅读全文
Tomcat 启动后台程序
摘要:References:《Tomcat 启动时加载WEB应用中的后台程序》[1],《配置Tomcat Listener》[2] 要做的事情很简单,就是在Tomcat启动WEB服务器的时候同时启动一个后台程序,做一些事情。 [1]里面介绍的方法是通过不响应Request的Servlet来实现,通过设置<load-on-startup>标签和Servlet里面的static代码段来实现。 [2]介绍了...
阅读全文
Struts2学习-- 配置常量
摘要:Reference:《struts.xml 详解(一)》 一、配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.propreties文件配置,是因为为了保持与WebWork的向后兼容 2.在实际开发中,在web.xml中配置常量相比其他两种,需要更多的代码量,...
阅读全文
关键是web.xml
摘要:Reference:《[Java] Web.xml配置详解》《主题:java web开发 web.xml配置文件说明》《Struts2的配置文件——web.xml(原创)》《Struts2 配置相关问题》---这个讲了很多Strust2的小问题,很详细。 位于每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符。这个 web.xml文件对于Java Web应用十分重要,每个J...
阅读全文
Struts2学习--带校验的注册程序
摘要:Reference :《Struts2 输入校验 实例讲解》《ST2.NO.0006 struts2.0 官网文档学习笔记之六 - Form Validation》 Struts的信息校验方式有两种 1.硬编码的方式:重写ActionSupport类的validate()方法。 2.采用Struts2的输入校验框架,即采用XML配置的方式进行校验。 硬编码方式 Register.jsp <s:f...
阅读全文
使用PreparedStatement
摘要:Technorati 标签: MySQL,JDBC “整理自网络” 用PreparedStatement替换Statement的作用主要是为了防止数据库注入式攻击(直接使用String作为sql的参数导致的潜在危险)。原理是用占位符作为实参定义sql语句,如: String sql="select * from tuser where usernmae=? and password=?";PreparedStatement pstm=conn.preparedStatement(sql);pstm.setString(1,name);pstm.setString(2,pwd
阅读全文
Struts 官方文档学习—Struts Tags
摘要:busblog 标签: Struts2 Reference: 《ST2.NO.0003 struts2.0 官网文档学习笔记之三 - Struts tags》作者:lvpin Struts2官方文档的第二课是个MVC雏形的Hello World: 首先. 用户的请求会由体系中的控制器来控制,分为前端Filter控制器和后端 Action 控制器. 前端的Filter控制器将拦截所有的用户请求,并通...
阅读全文
Struts2 官方文档学习—Processing Forms
摘要:Reference:《ST2.NO.0005 struts2.0 官网文档学习笔记之五 - Processing Forms》《Struts 2 的拦截器(一)》 直接贴代码:一个注册的过程 PersonBean.java 1: package test; 2: 3: public class PersonBean implements java.io.Serializable { 4: private static final long serialVersionUID = -5007279129818462704L; 5: private String firstName; 6: priv
阅读全文
MySQL零散笔记--外键
摘要:References: 《浅谈MySQL外键》《mysql创建外键关联》MySQL中“键”和“索引”的定义相同, 所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。//查看Mysql手册发现从MySQL 4.1.2开始会自动建立这个INDEX创建外键的实例代码:员工和工资表:/*建立员工表*/create table employees ( id int(5) not null auto_increment , name varchar(8) not null, primary key (id)) type=innodb;/
阅读全文
MySQL 零散笔记--主键
摘要:Reference: 《浅谈MySQL主键》 作者:simaopig 主键没有着明确的概念定义,其是索引的一种,并且是唯一性索引的一种,且必须定义为“PRIMARY KEY”。声明方法: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name));或者 CREATE TABLE tbl_name( id INT(10) PRIMARY KEY |…);或者更新表结构: ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,…);主键被认为是NOT NULL和UNIQUE约束
阅读全文
MySQL零散笔记-- 数据类型
摘要:今天准备进行毕设的数据库设计,所以google了一下MySQL的数据库设计原则,主要是数据类型和表设计,为了怕自己忘记整理出来。Reference 文章:MySQL 字段类型 作者:simaopig类型描述INT一种数值类型,值的范围如下 带符号的-2147483648~2147483647 不带符号的0~4294967295 最多十位,所以存手机号是不行的DECIMAL一种数值类型,支持浮点数或者小数DOUBLE一种数值类型,支持双精度浮点数DATEYYYYMMDD格式的日期字段TIMEHH:MM:SS格式的时间字段DATETIMEYYMMDD HH:MM:SS格式的日期/时间类型.注意“年
阅读全文