jsp---->Jsp语法
1、jsp注释
JSP注释常用的有两种:HTML注释和隐藏注释(JSP专有注释)
◆显式注释:HTML 注释:最终会发送到客户端,通过右键查看源文件可以发现这些注释
注释说明:能在客户端显示的一个注释,标记内的所有JSP脚本元素、指令和动作正常执行,也就是说编译器会扫描注释内的代码。
HTML语法:<!—注释-->
语法示例:
例1
<!—这段注释显示在客户端的浏览器页面中 -->
在客户端的HTML源代码中产生和上面一样的数据;
例2
<!—这个页面加载于 <%= (new java.util.Date()).toString()%> -->
在客户端的HTML源代码中显示为:
<!--这个页面加载于Sat May 08 19:51:56 CST 2010 -->
小结:可以在注释中使用任何有效的JSP表达式。表达式是动态的,当用户第一次调用该页面或该页面后来被重新调用时,该表达式将被重新赋值。JSP引擎对HTML注释中的表达式执行完后,其执行的结果将代替JSP语句。然后该结果和HTML注释中的其它内容一起输出到客户端。在客户端的浏览器中,浏览者可通过查看源文件的方法看到该注释。
◆隐藏注释(JSP注释):
注释说明:用隐藏注释标记的字符会在JSP编译时被忽略掉,标记内的所有JSP脚本元素、指令和动作都将不起作用。也就是说,JSP编译器不会对注释符之间的任何语句进行编译,其中的任何代码都不会显示在客户端浏览器的任何位置。
JSP语法:<%--注释 --%>
注释示例:
<%@ page language="java" %> <html> <head><title>注释测试</title></head> <body> <h2>注释测试</h2> <%--在页面源代码中,这个注释是看不见的 --%> </body> </html>
小结:JSP引擎对JSP注释不作任何处理。JSP注释既不发送到客户端,也不在客户端的JSP页面中显示。在客户端查看源文件时也看不到。因此,如果只想在JSP页面源程序中写文档说明时,JSP注释是很有用的。
2、jsp输出
<%! %>: 声明全局变量、类、方法全局变量,实例化一次,
<%=输出值%>: 表达式 类似于:out.println() ;
<% int i=0; out.print(i);%> java脚本代码中声明的为局部变量
<html> <head> <title>JSP</title> </head> <body> <table border="1"> <% // 打印9×9的表格 for(int i=0;i<9;i++) { %> <tr> <% for(int j=0;j<9;j++) { %> <td><%=i*j%></td> <% } %> </tr> <% } %> </table> </body> </html>
3、Scriptlet(脚本小程序)
< % if(xxx) { %> < % } %>
4、form 表单提交方式的讨论:
· post:提交内容不会显示,没有长度要求
· get:提交的内容会显示出来 , 地址栏中的长度只有 4k~5k,如果传递大数据,则无法使用
5、page指令
<%@ page contentType="text/html;charset=gb2312"%> < %@ page import="java.util.*"%> <%@ page import="java.io.*,java.sql.*"%> <%@ page [ language="java" ] [ extends="package.class" ] [ import="{package.class | package.*}, ..." ] [ session="true | false" ] [ buffer="none | 8kb | sizekb" ] [ autoFlush="true | false" ] [ isThreadSafe="true | false" ] [ info="text" ] [ errorPage="relativeURL" ] [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] [ isErrorPage="true | false" ] %>
属性说明
- language="java" 声明脚本语言的种类,暂时只能用"java"
- extends="package.class" 标明JSP编译时需要加入的Java Class的全名,但是得慎重的使用它,它会限制JSP的编译能力. import="{package.class | package.* }, ..." 。需要导入的Java包的列表,这些包可以多次导入,也可以以逗号隔开
- session="true | false" 设定客户是否需要HTTP Session,如果它为true,那么Session是有用的。如果它有false,那么你就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素。这样的使用会导致错误. 缺省值是true.
- buffer="none | 8kb | sizekb" ,buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8kb
- autoFlush="true | false" ,设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生.如果你把buffer设置为none,那么你就不能把autoFlush设置为false.
- isThreadSafe="true | false" 设置Jsp文件是否能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的请求,如果设置为false,一个jsp只能一次处理一个请求
- info="text" 一个文本在执行JSP将会被逐字加入JSP中,你能够使用Servlet.getServletInfo方法取回。
- errorPage="relativeURL" 设置处理异常事件的JSP文件。
- isErrorPage="true | false" 设置此页是否为出错页,如果被设置为true,你就能使用exception对象.
- contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1" 设置MIME类型 。缺省MIME 类型是: text/html, 缺省字符集为 ISO-8859-1. 解决中文乱码问题