`
为了明天
  • 浏览: 114588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

JAVA 中的IO流

    博客分类:
  • JAVA
JAVA 中的IO流 一、流的概念        流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。        一个流,必有源端和目的端,它 ...
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。 用途 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无 ...
用来配置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

需要引入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 ...
Global site tag (gtag.js) - Google Analytics