- 浏览: 28100 次
- 性别:
- 来自: 北京
最新评论
文章列表
以下代码中使用outputStream 对生成的报表进行接收,通过下载方式进行响应
OutputStream os = response.getOutputStream();
WritableWorkbook workbook = Workbook.createWorkbook(os);
将生成的excel文件在workbook关闭后直接写入到输出流中。
以下代码包含了jxl技术中的以下几个技术点
合并单元格,设置单元格格式,设置列宽,设置单元格背景色,设置边框,设置对齐方式。
//设置响应头信息,为下载文件方式
response.setContentType("APPLICATIO ...
要想让一个自定义标签具有属性,通常需要完成两个任务:
在标签处理器中编写每个属性对应的setter方法
在TLD文件中描术标签的属性
为自定义标签定义属性时,每个属性都必须按照JavaBean的属性命名方式,在标签处理器中定义属性名对应的setter方法,用来接收JSP页面调用自定义标签时传递进来的属性值。 例如属性url,在标签处理器类中就要定义相应的setUrl(String url)方法。
在标签处理器中定义相应的set方法后,JSP引擎在解析执行开始标签前,也就是调用doStartTag方法前,会调用set属性方法,为标签设置属性。
public class SimpleTagDe ...
1.由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推
广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和
调用的SimpleTag接口来实现标签的功能。实现SimpleTag接口的标签通常称为简单标签。
2.简单标签共定义了5个方法:
setJspContext方法
用于把JSP页面的pageContext对象传递给标签处理器对象
setParent方法
用于把父标签处理器对象传递给当前标签处理器对象
getParent方法
用于获得当前标签的父标签处理器对象
setJspBody方法
用于把代表标签体的JspF ...
在web-inf目录中新建一个tld文件,在tld文件中对标签进行描述(为标签处理器类配一个标签名
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/n ...
1.用自定义标签如何控制jsp页面某一部分内容是否执行:
编写一个java类,实现tag接口,通常是继承tag的实现类,TagSupport,控制doStartTag
方法的返回值,如果返回EVLAL_BODY_INCLUDE,则标签体会执行,如果返回SKIP_BODY,则
标签体不会执行
public class TagDemo1 extends TagSupport {
@Override
public int doStartTag() throws JspException {
return Tag.EVAL_BODY_INCLUDE;
}
}
说明:该标签套在什么内容上,什 ...
http请求头:
Accept: text/html,image/* 浏览器通过这个头,告诉服务器它所支持的数据类型
Accept-Charset: 浏览器通过这个头,告诉服务器它采用的字符集
Accept-Encoding:浏览器通过这个头,告诉服务器,它所支持的压缩格式
Accept-Language:浏览器通过这个头,告诉服务器,它所采用的语言
Host:浏览器通过这个头,告诉服务器,我想访问服务器哪台主机
If-Modified-Since:浏览器通过这个头,告诉服务器,它缓存数据时间是多少。
Referer:浏览器通过这个头,告诉服务器,我是从哪个网页点过来的(防盗链)
User ...
1.文档中全为英文,不设置编码,直接写入的形式.
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
writer.close();
2.文档中含有中文,设置编码格式写入的形式.
OutputFormat format = OutputFormat.createPrettyPrint();
// 指定XML编码
format.setEncoding("GBK");
XMLWriter writer = new XMLW ...
Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来而后独立开发的。
与JDOM不同的是,dom4j使用接口和抽象基类,虽然D
om4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
Dom4j是一个非常优秀的Java XML
API,具有性能优异、功能强大和极易使用的特点。
现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
使用Do
m4j开发,需下载dom4j相应的jar文件。
DOM4j中,获得Document对象的方式有三种:
1.读取XML文件,获得document对象
SA ...
JAXP 开发包是J2SE的一部分,
它由javax.xml、org.w3c.dom 、org.xml.sax 包及其子包组成
在 javax.xml.parsers 包中,定义了几个工厂类,程序员调用这些工厂类,可以得到对xml文档进行解析的 DOM 或 SAX 的解析器对象。
javax.xml.parsers 包中的DocumentBuilderFactory用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,它不能直接实例化,但该类提供了一个newInstance方法 ,这个方法会根据本地平台默认安装的解析器,自动创建一个工厂的对象并返回 ...
1.DOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点)。
2.在dom中,节点之间关系如下:
位于一个节点之上的节点是该节点的父节点(parent)
一个节点之下的节点是该节点的子节点(children)
同一层次,具有相同父节点的节点是兄弟节点(sibling)
一个节点的下一个层次的节点集合是节点后代(descendant)
父、祖父节点及所有位于节点上面的,都是节点的祖先(ancestor)
3.Node对象提供了一系列常量来代表结点的类型,当开发人员获得某个Node类型后,就可以把Node节点转换成相应的节点对象(Nod ...
1. SAX采用事件处理的方式解析XML文件,利用 SAX 解析 XML 文档,
涉及两个部分:解析器和事件处理器:
解析器可以使用JAXP的API创建,创建出SAX解析器后,
就可以指定解析器去解析某个XML文档。
解析器采用SAX方式在解析某个XML文档时,它只要解析到XML文档的一个组成部分,
都会去调用事件处理器的一个方法,解析器在调用事件处理器的方法时,
会把当前解析到的xml文件内容作为方法的参数传递给事件处理器。
事件处理器由程序员编写,程序员通过事件处理器中方法的参数,
就可以很轻松地得到sax解析器解析到的数据,从而可以决定如何对数据进行处理。
2.解析步骤:
使用SAXP ...
流程:
第一,得到所有属性描述器
得到bean--》
得到bean的所有属性信息info(Introspector.getBeanInfo(bean.class))
--》
得到所有属性的描述器()info.getPropertyDescriptiors pds[]
-->遍历pds,得到每个属性的描述器
--》pd.getName,可以得到所有的属性名
--》通过属性名,获得想要的属性,
--》得到属性的get,set方法(pd.getReadMethod,pd.getWriteMethod)
--》使用,method.invoke(bean,"属性值");可以调用 ...
list:
List<String> list = new ArrayList<String>();
遍历list:
用Iterator接口:
Iterator<String> it = list.iterator();
while(it.hasNext()){
String value = it.next();
System.out.println(value);
}
用增强的for循环更加简单:
for(String value : list){
System.out.println(value);
}
map: ...
自定义泛型:
1.Java程序中的普通方法、构造方法和静态方法中都可以使用泛型。
方法使用泛形前,必须对泛形进行声明,
语法:<T> ,T可以是任意字母,但通常必须要大写。
<T>通常需放在方法的返回值声明之前。
例如:
public static <T> void doxx(T t);
2.注意:
只有对象类型才能作为泛型方法的实际参数。
在泛型中可以同时有多个类型,例如:
public static <K,V> V getValue(K key) {
return map.get(key);
}
3.如果一个类多处都要用到同一个泛型 ...
泛型(Generic)
1.作用:
JDK5中的泛形允许程序员在编写集合代码时,就限制集合的处理类型,从而把原来程序运行时可能发生问题,转变为编译时的问题,以此提高程序的可读性和稳定性(尤其在大型程序中更为突出)。
防止强转时出现是安全性问题,将类型的转换错误在编译时即报错
2.注意:
泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除”。
3.泛形的基本术语:
以ArrayList<E&g ...