欢迎来到天天文库
浏览记录
ID:37711257
大小:44.00 KB
页数:7页
时间:2019-05-29
《java web应用中自动生成文章html页面的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、javaweb应用中自动生成文章html页面的实现2009-11-0900:24:15 标签:web开发,页面转换 [推送到技术圈]版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://hnsyj.blog.51cto.com/695412/224058 我们可能都已经注意到了,访问诸如新浪这样的大型站点的新闻时,我们会发现每一篇文章都会对应一个静态的页面,以此方式在大量并发访问时减小数据库服务器的负担。刚开始做web应用程序时,对于这类需求感
2、觉非常之难,且不知从何处着手。偶然的机会看到一个论坛上实现介绍这类应用实现原理的讨论,突然大悟,就试着实现了该应用,现在正是我工作还没着落的最不如意的时期,正好边学习,边整理曾经的学习笔记,避免以后用得着的时候笔记又丢失的无影无踪。 原理倒也简单:在页面中以编程的方式访问一篇文章,通过拦截响应内容并写入html文件。使用方法:只需要在添加完文章代码之后:设置相关属性(加背景色的代码需要的属性),并且使用元素或具有相同功能的代码访问servlet即可 注意:使用了文字背景的部分,使用时注意查看
3、访问该servlet时是否设置了相关属性,否则servlet可能不能正常执行。servlet代码如下: importjava.io.*;importjava.net.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclasstoHtmlextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; protectedvoiddoGet(HttpServletRequestrequest,H
4、ttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("GBK"); //测试表明:通过REFERER可以在服务器段获得发送请求的页面完整的路径信息 Stringsend_req_url=request.getHeader("REFERER"); //获取应用程序在服务器端文件系统的绝对路径 ServletContextcontext=getServletContext
5、(); StringrootRealPath=context.getRealPath("/"); StringfoldPath="/m/fy/fmd";//模板文件的目录结构 StringmodelName="/m_article.jsp";//模板文件的名字 //构造rootPath,形如:"http://localhost:8080/AjaxTrip" StringcontextStr=request.getContextPath(); StringurlStr=request.get
6、RequestURL().toString(); StringrootPath=urlStr.substring(0,urlStr.indexOf(contextStr))+contextStr;//"http://localhost:8080/AjaxTrip" StringhtmlId=(String)request.getAttribute("htmlId"); Stringaction=(String)request.getAttribute("action"); StringqueryStr
7、=null; //构造访问模板文件的url StringsourceUrl=rootPath+foldPath+modelName; if("addArticle".equals(action)){ queryStr=(String)request.getAttribute("queryStr"); } if(queryStr!=null){ sourceUrl=sourceUrl+"?"+queryStr; } /*JspToHtml:自定义类,实现依据当期日期生成响应的目录结构和文件
8、:如:n/2009/1108/htmlId.html *并且提供了将响应内容写入文件的方法: **/ JspToHtmljth=newJspToHtml(); jth.setUrl(rootRealPath);//设置io操作的绝对路径 //使用URL对象通过编程的方式访问指定的文章,读取响应内容保存到sTotalStri
此文档下载收益归作者所有