全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA处理的HTML的工具类,可以生成静态HTML页面,将HTML的内容转成纯文本。可以用于一些爬虫功能或者一些特殊处理的地方,代码有比较清晰的注释,所以也可以用于I/O流和HTML标签相关正则表达式的学习。package example.utils.html;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.util.regex.Pattern;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.WriteListener;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;import org.apache.log4j.Logger;/* * HTML页面工具类 * * author Javier.Yao * */public class HtmlUtils private static Logger logger = Logger.getLogger(HtmlUtils.class);/* * 生成静态HTML页面的方法 * * param request * 请求对象 * param response * 响应对象 * param servletContext * Servlet上下文 * param fileName * 文件名称 * param fileFullPath * 文件完整路径 * param jspPath * 需要生成静态文件的JSP路径(相对即可) * throws IOException * throws ServletException */public void createStaticHTMLPage(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext, String fileName, String fileFullPath, String jspPath)throws ServletException, IOException response.setContentType(text/html;charset=UTF-8);/ 设置HTML结果流编码(即HTML文件编码)RequestDispatcher rd = servletContext.getRequestDispatcher(jspPath);/ 得到JSP资源final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();/ 用于从ServletOutputStream中接收资源final ServletOutputStream servletOuputStream = new ServletOutputStream() / 用于从HttpServletResponse中接收资源Overridepublic void write(int b) throws IOException byteArrayOutputStream.write(b);public void write(byte b, int off, int len) byteArrayOutputStream.write(b, off, len);Overridepublic void setWriteListener(WriteListener listener) Overridepublic boolean isReady() return false; final PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(byteArrayOutputStream);/ 把转换字节流转换成字符流HttpServletResponse httpServletResponse = new HttpServletResponseWrapper(response) / 用于从response获取结果流资源(重写了两个方法)public ServletOutputStream getOutputStream() return servletOuputStream;public PrintWriter getWriter() return printWriter;rd.include(request, httpServletResponse);/ 发送结果流printWriter.flush();/ 刷新缓冲区,把缓冲区的数据输出FileOutputStream fileOutputStream = new FileOutputStream(fileFullPath);byteArrayOutputStream.writeTo(fileOutputStream);/ 把byteArrayOuputStream中的资源全部写入到fileOuputStream中fileOutputStream.close();/ 关闭输出流,并释放相关资源response.sendRedirect(fileName);/ 发送指定文件流到客户端/* * 将HTML的内容转成纯文本 * * param inputString 带html标签的文本内容 * return 返回纯文本 */public static String Html2Text(String inputString) String htmlStr = inputString;String textStr = ;java.util.regex.Pattern p_script;java.util.regex.Matcher m_script;java.util.regex.Pattern p_style;java.util.regex.Matcher m_style;java.util.regex.Pattern p_html;java.util.regex.Matcher m_html;java.util.regex.Pattern p_html1;java.util.regex.Matcher m_html1;try / 定义script的正则表达式或*?sS*?String regEx_script = *?sS*?;/ 定义style的正则表达式或*?sS*?String regEx_style = *?sS*?;String regEx_html = +; / 定义HTML标签的正则表达式String regEx_html1 = +;p_script = Ppile(regEx_script, Pattern.CASE_INSENSITIVE);m_script = p_script.matcher(htmlStr);htmlStr = m_script.replaceAll(); / 过滤script标签p_style = Ppile(regEx_style, Pattern.CASE_INSENSITIVE);m_style = p_style.matcher(htmlStr);htmlStr = m_style.replaceAll(); / 过滤style标签p_html = Ppile(regEx_html, Pattern.CASE_INSENSITIVE);m_html = p_html.matcher(htmlStr);htmlStr = m_html.replaceAll(); / 过滤html标签p_html1 = Ppile(regEx_html1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冬青插花活动方案策划(3篇)
- 测量市政施工方案(3篇)
- 暑假纳凉活动方案策划(3篇)
- 连锁火锅活动方案策划(3篇)
- 河道养护施工方案(3篇)
- 2025年互联网数据中心建设与运维手册
- 入职培训高级版
- 2025年高职(地质工程技术)岩土工程勘察综合测试卷及解析
- 2025年大学(经济学)微观经济学期末综合测试题及答案
- 2025年高职计算机应用技术(数据库应用)试题及答案
- 2026年生物医药创新金融项目商业计划书
- 湖南名校联考联合体2026届高三年级1月联考化学试卷+答案
- 井下爆破安全培训课件
- 2026年安全员证考试试题及答案
- 空气源热泵供热工程施工方案
- 合伙车辆分车协议书
- 中国马克思主义与当代2024版教材课后思考题答案
- 2026年日历表(每月一页、可编辑、可备注)
- GB 46520-2025建筑用绝热材料及制品燃烧性能安全技术规范
- 医院车队冬季安全培训课件
- 传染病法知识培训总结课件
评论
0/150
提交评论