- 浏览: 114588 次
- 性别:
- 来自: 北京
最新评论
-
天助者自助:
我想问一下 我获取的时候 我获取的时候 这样 requ ...
struts2的@Result annotation 如何添加params -
aslijiasheng:
不错,学习了
java中queue的使用 -
JavaFinger:
这篇文章写的非常好,博主厉害,但是例子不太好,博主能不能把例子 ...
java中queue的使用
文章列表
JAVA 中的IO流
一、流的概念
流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。
一个流,必有源端和目的端,它 ...
- 2012-08-23 21:40
- 浏览 1241
- 评论(0)
Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:
◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法;
◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。
为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢?
在Java中,类仅支持单继承,也就是说,当定义一个新的类的时候,它只能扩展一个外部类.这样,如果创建自定义线程类的时候是 ...
HttpSessionBindingListener虽然叫做监听器,但使用方法与HttpSessionListener完全不同。HttpSessionBindingListener接口中共定义了两个方法:
valueBound()和valueUnbound(),分别对应数据绑定,和取消绑定两个事件。
所谓对session进行数据绑定,就是调用session.setAttribute()把HttpSessionBindingListener保存进session中。我们在LoginServlet.java中进行这一步。
// 把用户名放入在线列表session.setAttribute(& ...
很简单……
多写一个Servlet,在init函数中启动对应的线程。
把这个Servlet加到web.xml中,例如
<servlet>
<servlet-name>EchoServiceStartUpServlet</servlet-name>
<servlet-class>EchoService.EchoServiceStartUpServlet</servlet-class>
<load-on-startup>3</load-on-startup ...
在原来的webwork式的xml配置文件里可以给<action>下的<result>节点添加一些额外的参数。
<result ..> <param name="">...</param></result>那换成@Result annotation之后要怎么做呢。
看@Result的源代码发现有个params的String数组
@Retention(RetentionPolicy.RUNTIME)public @interface Result { String name() defau ...
package Test;
import java.io.File;
import java.io.IOException;
public class CreateFileTest {
/**
* 创建单个文件
* @param destFileName 文件名
* @return 创建成功返回true,否则返回false
*/
public static boolean CreateFile(String destFileName) {
File file = new File(destFil ...
HTTP Cookie
- 博客分类:
- Cookie学习
分类
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。
用途
因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无 ...
- 2012-07-11 11:30
- 浏览 668
- 评论(0)
用来配置action出现异常时的跳转路径。该注解同样可以使用params属性配置要传入的参数。该注解可以配置在Action级别和Method级别,配置在Action级别对所有的Method都适用;配置在Method级别只对当前的Method使用。示例代码如下:
在Action上配置ExceptionMapping Annotation:
@ExceptionMappings({
@ExceptionMapping(exception = "java.lang.NullPointerException", result = "success&quo ...
需要引入org.apache.struts2.convention.annotation.InterceptorRefs,配合@InterceptorRef使用,通过它定义一些拦截器。参考样例如下:
UserAction.java [color=red]方式一,定义在方法上面[/color]
public class UserAction extends BaseAction <User> {
......
@Action(value = "testInter",
results = @Result(name =INTERCEPTOR_ERROR, ...
@Results
- 博客分类:
- Struts Annotation
需要引入org.apache.struts2.convention.annotation.Results,结合@Result使用,定义一些映射路径。定义某方法的局部映射路径,参考样例如下:
@Namespace("/security")
public class UserAction extends BaseAction {
@Action(value="change",results = {@Result(name="change" ,location = "change.jsp")})
pub ...
为方法起一个别名,参考样例如下:
@Namespace("/security")
public class UserAction extends BaseAction {
@Action("otherName")
public String input() throws Exception {
......
}
原来的调用方式为:http://....../security/user!input.action
采用别名后的调用方式:http://....../security/otherName.action
需要引入org.apache.struts2.convention.annotation.Namespace,定义该action的命名空间,也就是访问路径。
JPA定义实体之间的关系有如下几种:
@OneToOne
@ManyToOne
@OneToMany
@ManyToMany
在定义它们的时候可以通过fetch属性指定加载方式,有两个值:
FetchType.LAZY:延迟加载
FetchType.EAGER:急加载
急加载就好理解了,在加载一个实体的时候,其中定义是急加载的的属性(property)和字段(field)会立即从数据库中加载
开发过程中遇到问题最多的就是延迟加载,并且问题都是一个:
“为什么我定义为延迟加载了,但没起作用,相关的属性或者字段还是会立即加载出来?”
对于这个问题,我的理解是这样的,我们首先假设 ...
Spring事务的传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked
如果遇到 ...
以Person, Address 为例, 其关系为一对多,数据库中有3条person, 每个分别对应2条address。查询语句如下:
Java代码
1.Criteria c = session.createCriteria(Person.class);
2.c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
3.List<Person> list = (List<Person>)c.list();
4.for (Person p : list) {
5. Sys ...
- 2012-07-05 16:28
- 浏览 1207
- 评论(0)