对JavaWeb_adv前六章的一个补充

 
补充的知识点,也是前面总结中所遗漏的知识点!
第一章: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也没有翻资料~全靠记忆和理解!
			 有错的地方~呵呵~包涵包涵!
-->

你可能感兴趣的:(MyEclipse,servlet,application,url,Random,sqlserver)