`
精神分裂
  • 浏览: 28423 次
  • 性别: Icon_minigender_1
  • 来自: 二次元世界
社区版块
存档分类
最新评论
文章列表
注:文中使用部分方法请参考《对Java IO的一些总结 (1) 》及《对Java IO的一些总结 (2) 》 读文件的关键技术点如下: 1. 用FileInputStream打开文件输入流,通过read方法以字节为单位读取文件,是最通用的读文件的方法,能读取任何文件,特别适合读二进制文件,如图片、声音、视频文件。 2. 用InputStreamReader打开文件输入流,通过read方法以字符为单位读取文件,常用于读取文本文件 3. 用BufferedReader打开文件输入流,通过readLine方法以行为单位读取文件,重用于读格式化的文本。 4. 用RandomAccessFile打开文件 ...
注:文中使用部分方法请参考《对Java IO的一些总结 (1) 》 移动文件和目录的关键技术如下: 1. File的renameTo方法能移动文件。 2. 当目标文件存在,或者目标的父目录不存在时,renameTo方法返回false。 /** * 移动单个文件 * @param srcFileName 待移动的源文件名 * @param targetFileName 目标文件名 * @param overlay 如果目标文件存在,是否覆盖 * @return 文件移动成功返回true,否则返回false */ public static bo ...
多数程序在不获取外部数据的情况下不能顺利完成目标。数据从一个输入源获得,程序的结果被送到输出目的地。 Java程序通过流来完成输入/输出,它是生产和消费信息的抽象。流通过Java的输入/输出系统与物理设备连接,尽管 ...
Struts 2更是提供了对Velocity和FreeMarker模板引擎的支持。通过以下几个步骤,实现在Struts 2中使用velocity模板。 创建一个Web Project,除了Struts2所必备的包外,还需要引入如下包:velocity-1.4.jar、velocity-dep-1.4.jar、velocity-tools-1.1.jar 在web.xml中不需要配置关于Velocity的Servlet,只配置Struts 2的filter即可。 <web-app version="2.5" xmlns="http://java.sun. ...
Struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。 虽然可以用redirect方式解决,但redirect方式并非必要。 解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径),或者使用myeclipse经常用的,指定basePath。如下: <struts> <constant name="struts.devMode" value="true" /> <package name=&qu ...
最近在看JeeCMS的源码,大量使用通配符,稍微有点不习惯。呵呵! 总结整理一下。 使用通配符,将配置量降到最低,不过,一定要遵守“约定优于配置”的原则。 如:访问/namespace/Studentadd,使用如下的配置: <action name="Student*" class="com.struts2.action.StudentAction" method="{1}"> <result>/Student{1}_success.jsp</result> </action> ...
在Struts中有两种使用Velocity的方法,一种是利用Velocity的vm模板进行页面展示,一种则是利用Velocity来生成静态页面。以下介绍在Struts 1.*版本中使用Velocity模板生成静态页面的过程。     思路是访问一个Action,在Action中进行静态页面的生成,最终该Action跳转到生成好的静态页面中。 步骤为: 1. 获取VelocityContext,该对象中包含了需要展示的数据 2. 获取指定路径下的vm模板内容 3. 根据Velocity模板,生成字符串 4. 根据指定路径及文件名创建文件 5. 将转换好的模板文件写入指定文件中 源码如下: V ...
在Struts中有两种使用Velocity的方法,一种是利用Velocity的vm模板进行页面展示,一种则是利用Velocity来生成静态页面。以下介绍在Struts 1.*版本中使用Velocity的vm模板显示。 在Struts 1.*版本中,并未支持对vm模板的显示,所以当ActionForward指向一个vm模板时,只会将模板中的Velocit语句当做普通字符内容显示出来,而不对其中的Velocity语句进行任何解析及赋值。所以在Struts 1.*版本中使用Velocity,需要在web.xml中配置VelocityViewServlet,以处理后缀为.vm的模板文件。 在web. ...
在基于WEB的应用中,通常大多数情况下是在servlet里使用Velocity。在servlet里的Velocity基本应用是非常简单的,只需通过两个必要步骤就可以实现: 1. 继承org.apache.velocity.servlet.VelocityServlet抽象类: public class SampleServlet extends VelocityServlet 2. 仅需实现VelocityServlet类的一个方法handleRequest(): public Template handleRequest(HttpServletRequest req, HttpServlet ...
会话bean(session bean):负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过jdbc直接操作数据库,但大多数情况下都是通过实体bean来完成对数据库的操作。 会话bean分为两种: 无状态会话bean (Stateful Session Bean):平常我 ...
设置JNDI访问环境信息 在进行JNDI查找前,我们必须设置应用服务器的上下文信息,主要是设置: 1. JNDI驱动的类名(java.naming.factory.initial) java.naming.factory.initial或Context.INITIAL_CONTEXT_FACTORY:环境属性名,用于指定InitialContext工厂(作者称它为JNDI驱动更容易理解),它类似于JDBC指定数据库驱动类。因为本例子连接的是JbossNS(命名服务的实现者),所以使用Jboss提供的驱动类:org.jnp.interfaces.NamingContextFactory 2. 命 ...
表达式是FreeMarker模板的核心功能,表达式放置在插值语法(${……})之中时,表明需要输出表达式的值;表达式语法也可与FreeMarker标签结合,用于控制输出。 直接指定值 使用直接指定值的语法让FreeMarker直接输出插值中的值,而不是输出变量值。直接指定值可以是字符串、数值、布尔值、集合和MAP对象。 如果字符串中包含特殊字符,需要转义。 ${"文件保存在c:\\盘"} --输出为-- 文件保存在c:\盘 ${'名字是\"Hoffman\"'} --输出为-- 名字是"Hoffman 注意:Map对象的key和value都是 ...
FreeMarker模板文件主要由如下4个部分构成: 1. 文本:直接输出的部分 2. 注释:即<#-- …… -->格式部分,不会输出 3. 插值:即${……}或者#{……}格式的部分,将使用数据模型中的部分替代输出 4. FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出 <html> <body> <#-- 注释部分 --> <#-- 下面引用插值 --> <h1>Welcome! ${user}!</h1> <#-- 使用FTL指令 --> ...
对于上传文件的大小,FCKeditor并没有提供限制,可以通过修改源码来达到控制上传文件大小。 在Dispatcher类中,FCKeditor对文件的扩展名进行了一定的验证,通过验证的文件,可被上传。所以这里需要修改3个类的源代码。 1. Dispatcher:增加对文件大小的验证 2. UploadResponse:定义新的错误类型常量,及处理错误的方法 3. ConnectorServlet:引用包的修改 Dispatcher源码如下: //检查文件扩展名 if (type.isDeniedExtension(FilenameUtils.getExtension(fileName))) { ...
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。 根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下: 第一种方式:每个Bean都有一个代理 ...
Global site tag (gtag.js) - Google Analytics