补充的知识点,也是前面总结中所遗漏的知识点! 第一章:XML文档的解析和写出! 读取的步骤: 解析: 1.创建解析器(记得导入DOM4J这个包并且数据来源也是来源于DOM4J) SASReader reader=new SAXReader(); 2.得到文档对象 Document doc=reader.read(); 3.得到根节点(Element对象来自DOM4J) Element root=doc.getRootElement(); 4.得到所有节点的集合 List<Element> list_e=root.elements(); 5循环获取值 for(Element e : list_e){ //这是这个e就已经是二级节点了,也就是没有必要在"Element student=e.getElement()"了!!切记!! 6.获取属性的值和获取子节点的值 a)获取属性 String attrOne=e.attributeValue("[属性名称]"); b)获取子节点的值 String childNode=e.ElementText("[子节点名称]"); .... } 写入: 1.得到文档对象 Document doc=DocumentHelper.createDocument(); 2.创建子节点 Element root=doc.addElement("StuInfo"); 3.循环添加值 for(int i=0;i<100;i++){ 4.在根节点的基础上创建子节点并添加属性 Element student=root.addElement("student").addAttribute("stuNo",stuNo); student.addElement("stuName").setText(stuName); student.addElement("stuAge").setText(stuAge); student.addElement("Grade").addAttribute("java",java).addAttribute("oracle",oracle); ... } 5.创建格式化器 OutputFormat format=OutputFormat.getCompactFormat();//好像是这样写的哦~记不大清楚了~反正getCom.... format.setIndentSize(4); format.setNewLines(true); 6创建写入器开始写入 XMLWriter writer=new XMLWriter(new FileOutputStream(new File("[文件需要输出的路径]")),format); writer.write(); writer.close(); 第二章:EL(Expression Language)表达式! 这个就没有什么说的了,反正在JSP页面中用 ${表达式} 就可以输出了! 注意:如果变量中包含"."或"_",用EL取值时要使用"[]"来取值 如:${sessionScope.student[stu_name]}; 还有就是JSTL中的Functions标签库要配合EL使用! 我目前就记得取长度的那个! ${fn:length("集合/数组/字符串")}用来取得长度! 还需要注意的:EL表达式对书写规格要求有点严格,在进行三元运算时记得空格隔开 如:${pageNo = currentPage+1 >= pageCount ? pageCount : currentPage+1} 第三章:自定义标签! 不变的工作:在WebRoot/WEB-INF目录下建立tags文件件,将自己写的标签放入其中! 然后在JSP页面中使用:<%@ taglib tagdir="WebRoot/WEB-INF/tags" prefix="shu"%>进行引用设置! 这里以分页标签为例(page.tag): <!--page.tag <%@ tag pageEncoding="utf-8"%> <%@ attribute name="pageCount" required="true" type="java.lang.Integer"%> <%@ attribute name="allCount" required="true" type="java.lang.Integer"%> <%@ attribute name="currentPage" required="true" type="java.lang.Integer"%> <%@ attribute name="url" required="true" type="java.lang.String"%> <div style="text-align:center;font-size:12px;height:30px;"> <a href="${url}?pageNo=1">首页</a> <a href="${url}?pageNo={currentPage-1 <= 1 ? 1 : currentPage-1}">上一页</a> <a href="${url}?pageNo={currentPage+1 >= pageCount ? pageCount : currentPage+1}">下一页</a> <a href="${url}?pageNo=${pageCount}">尾页</a> </div> --> 写好后在页面中进行引用就行了: <%@ taglib tagdir="WebRoot/WEB-INF/tags" prefix="shu"%> 第四章:标准标签库: 这里面的东西我前面都讲过了!这里补充一下 关于导入标准标签库报错的原因:(http://java.sun.com/jsp/jstl/core tags can not be XXX web.xml not with application)这个错 原因是web.xml和JSTL.JAR没有随着项目发布过去,解决方案:采用TOMCAT6.0及以上的版本或者是在web.xml和JSTL.JAR拷过去 第五章: 过滤器和事件监听 这个没什么好补充的~... 只是在session中获取上下文(pageContext或application)的方法 request.getSession().getServletContext().getPageContext();//在servlet中 这里有个方法可很好的获取整个项目的路径! this.getServletContext.getRealPath("/"),这个方法可以获取到WebRoot的根目录路径! 第六章:连接词和数据源: 注意:Context.xml文件的写法和方的位置!以及sqljdbc.jar包放置的位置 a)context.xml文件的写法(这里以连接master数据库为例): <Resource name="jdbc/master" username="sa" password="123456" url="jdbc:sqlserver://localhost:1433;databaseName=master" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" type="javax.sql.DataSource" maxIdle="[最大空闲数]" maxActive="[最大连接数]" maxWaite="[最大等待时间(毫秒)]" initialSize="[初始化连接数]" /> b)context.xml文件的放置:可以放在METE-INF(是不是这样写的哦?反正是WEB-INF上面个文件夹)里! c)添加sqljdbc.jar包的路径或者是放到tomcat的lib目录里! 第七章:文件上传和下载以及图片的水印 文件上传和下载也就是我前面说的那样,但是这里要注意,我前面说漏了一点! a)文件上传 当form表的提交时,如果设置了form表单的encType="multiPart/form-data"属性,那么在servlet中, 在servlet中就无发用request来获取值! 如在form中: <input type="text" name="txtName"> 改了那个属性后在servlet中: request.getParameter("txtName")这种方式取值是错误的! 正确的方式: new SmartUpload().getRequest().getParameter("txtName"); 这点是我们老师反复强调的!~也是容易忘的~所以写下来了! b)文件下载:也是我前面所说的那样!但是也要注意一点! 注意要重写out对象(如果使用了out对象的话)! out.clear(); out=pageContext.pushBody(); c)图片的水印(通常用来做验证码): 需要补充的地方! 1)如果Image_servlet中直接对图片处理后然后用ImageIO输出的话(是输出不是保存),嘿嘿~有个好东西哦! <img src="Image_servlet"/>这样写可以直接把那张图片显示出来!呵呵~学到起哦! 还有就是不要忘记设置页面的编码:response.setContentType("image/png(jpg...)") 2)产生随机的颜色: Random ran=new Random(); new Color(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256)); 3)如果图片不需要输出而是需要保存时: ImageIO.write(img,"jpg",new File("[保存的路径]")); 其他: a)JavaScript 1)获取某个特定的容器中的标签 对应的代码: <table> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr id="trd"> <td><img src=""/></td> <td><img src=""/></td> <td><img src=""/></td> <td><img src=""/></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </table> 获取方法: var ties=document.getElementById("trd").document.getElementsByTagName("img"); 2)添加事件(就以上面那个为例) for(var i=0;i<ties.length;i++){ ties[i].onclick=function(){ //注意这里是this而不是ties[i] alert(this.src); } } b)JSP中的内容显示方式(就是将页面显示为excel或word等等格式,昨天在图书馆看到的~今天忘记了~哎~谢特) <!-- Author:Lovingshu's Forever Date:2011.09.20(每个月拿生活费的日子!~O(∩_∩)O哈哈~) Remark:这个总结全是我凭着记忆写下来的~没有用MyEclipse也没有翻资料~全靠记忆和理解! 有错的地方~呵呵~包涵包涵! -->