JEE_知识点小结1

//<form action="####" method="post" onsubmit="validateForm();"> 试图在validateForm()中return false来验证阻止表单的提交。实际上的效果是即使return false 表单还是会提交。 后来发现<form>中换用onsubmit="return validateForm()"就没有问题了。 原来onsubmit属性就像是<form>这个html对象的一个方法名,其值(一字符串)就是其方法体,如果自己不加return则默认返回true;

//在HTML中,<input>要放在<form>和</form>之间: 如果不用AJAX提交表格,那么需要用<form action="" method="">, 如果用AJAX,不需要<form>,并且<input type="submit" name="" />可以用<button id=""></button>代替 =====在<form>和</form>之间,可以使用<input>、<select>等建立输入或者选择项。

 

//HTML小补充: <input>标签属性: <input type="标记的类型"  name="标记名称"  value="默认值"  size="宽度" maxlength="最多字符数" > <input type="radio" name="按钮名称" value="按钮的值" checked> <textarea name="名称" cols="列数" rows="行数" wrap="方式">

字段: <h1>,  <br>,  <p>,  <hr>,  <font>.

列表: 有序<ol>和<li>,无序<ul>和<li>.

<table>: <table>表格,<captain>标题,<tr>行,<td>属性列 border表格边框宽度,algin表格相对网页的位置, cellspacing单元格之间的距离,cellpadding表格内部与文本的距离。 合并单元格:rowspan/colspan单元格所占行数/单元格所占列数

超链接: <a href=”***.htm”>超链接到另一个htm文件</a> <img src=”图片文件路径”>,属性alt为当图片未载入时的文字说明 ---->  http://www.cnblogs.com/wzmmao/archive/2012/07/12/2588309.html

----> http://www.cnblogs.com/wzmmao/archive/2012/06/14/2550021.html

 

//JSP 指令:<%@ code %> 声明:<%! code %> 表达式:<%= code %> 脚本段/代码段:<% code %> 注释:<%-- code --%> //JSP动作 jsp:include. jsp:useBean. jsp:setProperty. jsp:getProperty. jsp:forward. jsp:plugin. jsp:param.

 

//PrintWriter out = response.getWriter(); getWriter()返回一个PrintWriter object字符流,再对流进行操作. 为什么用response.getWriter()获得,而不直接new一个PrintWriter呢: 操作结果是为了反映到response对应的位置,于是要拿到属于response的流,而不是new一个出来.response是有基于流的概念,你从response拿到一个流,然后输出信息。 (这些是内置对象,不是用new出来的,可直接获取) 用response内置对象获得一个输出流,用来响应客户端发出的请求; 获取到输出流后可以将结果以HTML的形式返回给JSP页面输出信息到客户端:   out.println("<HTML>");  out.flush();  out.close();

1.如果你打算返回一个文本型的(text/*)页面,不论是HTML还是纯文本,通常都需要调用response.getWriter()方法。 PrintWriter out = response.getWriter(); 然而该方法必须在charset被设置之后调用,为什么呢? 因为Writer必须知道如何将Java内部的Unicode字符转换成字节流。假如你选择了GBK,一个汉字将被输出成两个字节的编码;假如你选择了UTF-8,一个汉字将被输出成三个字节的编码。 2.如果你打算返回一个二进制型的内容,例如:图片,那么你必须调用response.getOutputStream()方法。 OutputStream out = response.getOutputStream(); 需要注意的是,你只能在getWriter()和getOutputStream()中选择一个。一旦其中一个方法被调用了,再调用其它一个方法时,系统会抛出异常。

写过servlet的人都知道,可以通过HttpServletResponse中的getWriter方法获取对客户端的PrintWriter输出流, 但是如果在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码), HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。 这样就会造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。

jsp里的out是pageContext.getOut(); response.getWriter()是SERVLET的一个方法调用,即是用来输出输出流的。 而out是JSP的一个隐含对象,它自动初始化,用out.println()来输出数据流。servlet和JSP中的隐含对象是一致的。

PrintWriter out = response.getWriter() 必须关闭吗?  从J2SE的角度看应该是需要调用close()方法进行资源回收,实际上这里不需要调用close()方法, 如果这个在servlet中的话,是不必关闭的,因为response会帮你关闭,容器会在request处理结束后帮你回收相关资源。 如果手动close()释放资源之后将无法再通过获取它来向client返回信息。(如不能把response里面的内容拿出来,进行过滤)

 

//中文显示乱码
request.setCharacterEncoding("GB18030");
//或者:
String user = new String(request.getParameter("user").getBytes("iso-8859-1"),"GB18030");

//获取当前时间
Date date = new Date(); //获取日期对象
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置日期时间格式
String today = df.format(date); //获取当前系统日期
//request.getParameter是用来接受来自get方法或post方法的参数。只能接受java.lang.String字符串类型,也就是说
String strName=request.getParameter("username");  

//request.getAttribute是用来接受来自servlet的变量或Action,只能接受java.lang.Object对象类型:
//如果你只用JSP,根本用不到request.getAttribute()。在Action中:
request.setAttribute( "ret ",ret); 
List ret = (List)request.getAttribute( "ret "); 

//2
request.setAttribute(String name, Object object);

request.getAttribute(String name);

//3
session.setAttribute("username","无语") //设置指定名字的属性值并将其存储在session中。

session.getAttribute("username").toString() //获取与指定名字相联系的属性,返回的是Object类型,要转换成String类型.

 

posted @ 2012-08-14 18:43  汤姆是一只猫  阅读(349)  评论(0编辑  收藏  举报