jsp导出word 及mht 转码问题
最近做了一个资费查询模块,里面涉及将资费信息导出Word文档和Excel文档,
先说说导出Word文档:
其实就是把响应的类型设为application/msword,然后把内容输出到这个文件就行了
第一步:
先在桌面上新建一个word文档,双击打开,然后另存为.htm文件,会产生一个以.htm结尾的文件
第二步:
把.htm文件扩展名改为.jsp文件,此时它就是一个有word排版格式的jsp文件了,
然后在这个文件前加上:<%@ page contentType="application/msword;charset=gbk"%>
再引入其他相关的类
第三步:把jsp文件中,需要动态显示的东西改成为java代码就行了,通常就会对一个集合或直接就是结果集进行遍历
如:访问
http://localhost:8080/jxtelecom/exportWord.jsp
出现:
不支持,导出只读文件,如果谁解决了,请给我留言,谢谢。
补充:解决乱码问题。
在mht文件中,可以看到汉字的编码变了,如“中国”变为“中国”这种其实 是unicode码的10进制表示,我们在java中一般看到的unicode码都是16进制的。主要写个10进制unicode和16进制unicode转换程序,以后可以参考一下,这个对于这次项目中查询数据并根据模板导出到word中,解决了几周来的乱码问题。 public class TestUnicode {
/**
* 二期导出word文档专用转码方法
* 方法说明:把中文 转为 mht专用的 uncode 10进制编码
* @author peijianwen
* @since 2009-12-01
* @return String
*/
public static String convertUncode10(String s) {
String conStr = "";
// 转码uncode 10进制
for(int i = 0;i<s.length();i++){
char a = s.charAt(i);
conStr += "&#"+ (int)a+";"; //将中文转成10进制的表示
}
return conStr;
}
public static void main(String[] args) {
//将中文转成16进制的表示
System.out.println("\u" + Integer.toHexString('中')); //“\u4e2d”
System.out.println("\u" + Integer.toHexString('中' & 0xffff)); &nb
相关文档:
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
......
document.getElementById("flag")在ie中,jsp中的元素没有id值,有name值时,也能查出来,按照name值查。
但是在firefox中,如果没有id值,则查不出来。所以ie中,name和id有时通用;但是firefox中,是有这严格区别的。 ......
來源:http://www.diybl.com/course/4_webprogram/jsp/jsp_js/2008229/102031.html
一、JSP EL语言定义
E L(Expression Language) 目的:为了使JSP写起来更加简单。
表达式语言的灵感来自于 ECMAScript 和 XPath ......
在Java web开发中常会使用到功能强大的过滤器,他毕竟能给我们带来很大的方便,但是针对过滤的资源我们需要详细的了解他们在web.xml中的配置信息。这个根据几种常用的不同情况进行了总结:
1.如果要映射过滤应用程序中所有资源:
<filter>
<filter-name>loggerfilter</filter-name> ......