分类目录归档:Java Web

Lucene查询

构造field–》被add到document–》被add到IndexWriter 指定查找路径(即从哪得到数据源) 把数据源的数据读出来构造field对象 指定索引存放路径 构建IndexWriter对象需要索引存放路径 查询 从索引存放路径查找 个人理解过程:就是把数据源做成索引文件,然后在索引文件里找关键词 参考一位网友的百度空间,代码如下: package com.cstp.lucene; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Date; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.IndexSearcher; import … 继续阅读

发表在 Java Web | 标签为 | 留下评论

使用commons组件上传文件

需要commons-upload 和commons-io 这2个jar包。 提交页面 test.jsp <%@ page language="java" contentType="text/html; charset=utf-8"     pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form action="FileUpload" enctype="multipart/form-data" method="post">      <input type="text" name="username" /><br … 继续阅读

发表在 Java Web | 标签为 , , | 4 条评论

使用监听器

监听器概述 参考地址:http://www.jspcn.net/htmlnews/1150100454437189.html    1.Listener是Servlet的监听器    2.可以监听客户端的请求、服务端的操作等。    3.通过监听器,可以自动激发一些操作,如监听在线用户数量,当增加一个HttpSession时,给在线人数加1。    4.编写监听器需要实现相应的接口    5.编写完成后在web.xml文件中配置一下,就可以起作用了    6.可以在不修改现有系统基础上,增加web应用程序生命周期事件的跟踪 常用的监听接口    1.ServletContextAttributeListener    监听对ServletContext属性的操作,比如增加/删除/修改    2.ServletContextListener    监听ServletContext,当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。    3.HttpSessionListener    监听HttpSession的操作。当创建一个Session时,激发session Created(SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。    4.HttpSessionAttributeListener    监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent … 继续阅读

发表在 Java Web | 标签为 | 留下评论

使用DOM4j读取xml文件

写的不好,本来想写完整点的,做一下判断如果是节点,判断是否有子节点,有就输出。其实这个是知道xml文件的内容写的。应该写一个不知道具体内容的。要做判断。。。 package com.cstp.xml; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ReadXml { /** * @param args */ public static void main(String[] args) { … 继续阅读

发表在 Java Web | 标签为 | 留下评论

使用DOM4j创建xml文件

package com.cstp.xml; import java.io.File; import java.io.FileWriter; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class CreatXml { /** * @param args */ public static void main(String[] args) {    create(); } public static void create(){ … 继续阅读

发表在 Java Web | 标签为 , | 留下评论

DOM应用编程接口,操作HTML文档

A、遍历文档的节点   DOM把一个HTML文档视为树,因此,遍历整个树是应该是家常便饭。跟之前说过的一样,这里我们提供两个遍历树的例子。通过它,我们能够学会如何使用childNodes[]和firstChile、lastChild、nextSibling、previousSibling遍历整棵树。   例子1– sample3_1.htm:   这个例子使用了childNodes[]和递归方式来遍历整个文档,统计文档中出现的Element元素总数,并把Element标记名全部打印出来。需要特别注意的是,在使用DOM时,必须等文档被装载完毕再执行遍历等行为操作文档。sample3_1.htm具体代码如下: <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title><script language="javascript">var elementName = ""; //全局变量,保存Element标记名,使用完毕要清空function countTotalElement(node) { //参数node是一个Node对象 var total = 0; if(node.nodeType == 1) { //检查node是否为Element对象 total++; //如果是,计数器加1 elementName = elementName + node.tagName + "rn"; //保存标记名 } var childrens = … 继续阅读

发表在 Java Web | 标签为 , , | 留下评论

使用DOM操作HTML文档

使用DOM操作HTML文档   Node对象定义了一系列属性和方法,来方便遍历整个文档。用parentNode属性和childNodes[]数组可以在文档树中上下移动;通过遍历childNodes[]数组或者使用firstChild和nextSibling属性进行循环操作,也可以使用lastChild和previousSibling进行逆向循环操作,也可以枚举指定节点的子节点。而调用appendChild()、insertBefore()、removeChild()、replaceChild()方法可以改变一个节点的子节点从而改变文档树。   需要指出的是,childNodes[]的值实际上是一个NodeList对象。因此,可以通过遍历childNodes[]数组的每个元素,来枚举一个给定节点的所有子节点;通过递归,可以枚举树中的所有节点。下表列出了Node对象的一些常用属性和方法: Node对象常用属性: 属性 描述 attributes 如果该节点是一个Element,则以NamedNodeMap形式返回该元素的属性。 childNodes 以Node[]的形式存放当前节点的子节点。如果没有子节点,则返回空数组。 firstChild 以Node的形式返回当前节点的第一个子节点。如果没有子节点,则为null。 lastChild 以Node的形式返回当前节点的最后一个子节点。如果没有子节点,则为null。 nextSibling 以Node的形式返回当前节点的兄弟下一个节点。如果没有这样的节点,则返回null。 nodeName 节点的名字,Element节点则代表Element的标记名称。 nodeType 代表节点的类型。 parentNode 以Node的形式返回当前节点的父节点。如果没有父节点,则为null。 previousSibling 以Node的形式返回紧挨当前节点、位于它之前的兄弟节点。如果没有这样的节点,则返回null。   Node对象常用方法: 方法 描述 appendChild() 通过把一个节点增加到当前节点的childNodes[]组,给文档树增加节点。 cloneNode() 复制当前节点,或者复制当前节点以及它的所有子孙节点。 hasChildNodes() 如果当前节点拥有子节点,则将返回true。 insertBefore() 给文档树插入一个节点,位置在当前节点的指定子节点之前。如果该节点已经存在,则删除之再插入到它的位置。 removeChild() 从文档树中删除并返回指定的子节点。 replaceChild() 从文档树中删除并返回指定的子节点,用另一个节点替换它。

发表在 Java Web | 标签为 | 留下评论

HTML文档的节点

HTML文档的节点   DOM下,HTML文档各个节点被视为各种类型的Node对象。每个Node对象都有自己的属性和方法,利用这些属性和方法可以遍历整个文档树。由于HTML文档的复杂性,DOM定义了nodeType来表示节点的类型。这里列出Node常用的几种节点类型: 接口 nodeType常量 nodeType值 备注 Element Node.ELEMENT_NODE 1 元素节点 Text Node.TEXT_NODE 3 文本节点 Document Node.DOCUMENT_NODE 9 document Comment Node.COMMENT_NODE 8 注释的文本 DocumentFragment Node.DOCUMENT_FRAGMENT_NODE 11 document片断 Attr Node.ATTRIBUTE_NODE 2 节点属性   DOM树的根节点是个Document对象,该对象的documentElement属性引用表示文档根元素的Element对象(对于HTML文档,这个就是<html>标记)。Javascript操作HTML文档的时候,document即指向整个文档,<body>、<table>等节点类型即为Element。Comment类型的节点则是指文档的注释。具体节点类型的含义,请参考《Javascript权威指南》,在此不赘述。   Document定义的方法大多数是生产型方法,主要用于创建可以插入文档中的各种类型的节点。常用的Document方法有: 方法 描述 createAttribute() 用指定的名字创建新的Attr节点。 createComment() 用指定的字符串创建新的Comment节点。 createElement() 用指定的标记名创建新的Element节点。 … 继续阅读

发表在 Java Web | 标签为 | 留下评论

JSP 有四种范围

2009年07月06日 星期一 下午 02:37 JSP 有四种范围,分别为Page、Request、Session、Application。所谓的Page,指的是单单一 页JSP Page 的范围。若要将数据存入Page 范围时,可以用pageContext 对象的setAttribute( ) 方法;若要取得Page范围的数据时,可以使用pageContext对象的getAttribute( )方法。 一:Page 这个范例主要用来说明一个概念:若数据设为Page范围时,数据只能在同一个JSP网页上取得,其他JSP网页却无法取得该数据。 二:Request Request 的范围是指在一JSP 网页发出请求到另一个JSP 网页之间,随后这个属性就失效。 现在将Name和Password的属性范围设为Request,当RequestScope1.jsp转向到RequestScope2.jsp时,RequestScope2.jsp也能取得RequestScope1.jsp设定的Name和Password值。不过其他的JSP网页无法得到Name和Password值,除非它们也和RequestScope1.jsp有请求的关系。 除了利用转向(forward)的方法可以存取request 对象的数据之外,还能使用包含(include)的方法。 假若我将RequestScope1.jsp 的<jsp:forward page="RequestScope2.jsp"/> 改为 <jsp:include page="RequestScope2.jsp" flush="true"/> 执行RequestScope1.jsp 时,结果还是和图5-4 一样。表示使用<jsp:include>标签所包含进来的网页,同样也可以取得Request 范围的数据。 三:Session、Application 当 我们使用getAttribute(String name)取得name 属性的值时,它会回传一个java.lang.Object,因此,我们还必须根据name … 继续阅读

发表在 Java Web | 标签为 | 一条评论