JSP是“java server pages”的缩写,java是一种编程语言,jsp只是相当于java里面的servlet部分,所以JSP技术是以Java语言作为脚本语言的。
JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据 ,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。语法:
<% 多行java代码 %>
注意:JSP脚本片断中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet的_jspService方法中。
JSP脚本片断中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。
在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。
举例:
<% int x = 10; out.println(x); %> <p>这是JSP页面文本</p> <% int y = 20; out.println(y); %> 多个脚本片断中的代码可以相互访问,犹如将所有的代码放在一对<% %>之中的情况。如:out.println(x);
JSP指令的基本语法格式:
<%@ 指令 属性名="值" %> 举例:<%@ page contentType="text/html;charset=gb2312"%> 如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。 例如: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.Date"%> 也可以写作: <%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%>
获取数据:
pageEccoding为JSP页面编码格式,也就是指定文件编码,pageEncoding="ISO-8859-1"(英文)可以改为pageEncoding="UTF-8"(中英文兼容)。
session指定JSP页面是否使用HTTP的session回话对象,其属性为boolean类型,可选true或者false,true表示可以用session会话对象,false表示不可用session会话对象。
buffer属性是设置JSP的out输出对象使用的缓冲大小,默认设置值为8KB,且单位只能用KB,一般设置为8的倍数。
autoFlush用于设置JSP页面自动刷新缓存,默认值为true,若设置为false则缓存填满时会被抛出异常。
isErrorPage为异常处理
<% 表达式%>的内容是JAVA代码不会被显示。
JSP注释的格式:
<%-- 注释信息 --%>
JSP引擎在将JSP页面翻译成Servlet程序时,忽略JSP页面中被注释的内容。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="java.util.Date"%> <%@ page import="java.text.SimpleDateFormat"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP Time page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% Date date=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today=df.format(date); %> 当前时间为:<%=today%> </body> </html>