JSP基本语法包括:2种注释类型、3个脚本元素、3个指令元素、8个动作指令。
(一)2种注释类型
(1)HTML注释(显示注释):包含在<!--和--!>之间。在客户端源代码中显示注释内容,但不被浏览器直接显示。其内容可以包含JSP表达式,并被JSP容器解释。
例如:<!--This file displays<%=user%>login screen-->
如果用户名是xiaozhang,则返回的注释是:
<!--This file displays xiaozhang login screen-->
(2)JSP注释(隐藏注释):在编译时被忽略,它不会显示在客户端浏览器中,也不会出现在客户端源代码中。格式如下:<%--注释内容--%>
(二)三个脚本元素(JSP脚本元素)
(1)声明:指在JSP程序中定义变量或方法,并在“<%!”和“%>”之间进行声明。
例如:<%! int i=0;%>
<%! int a,b,c;%>
<%! Date date;>
注意:声明必须以;结尾。一个声明仅在一个页面中有效,如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include %>或<jsp:include >元素包含进来。
(2)表达式:用来定义一个符合JSP语法的表达式,在运行后被自动转化为字符串,然后插入到这个表达式在JSP文件的位置显示。指利用变量或方法的值在页面上输出信息。格式如下: <%=表达式%>
例如:<%! int a,b,c%>
<% a=12;b=a;c=a+b%>
<b>a=<%=a%></b><br>
<b>b=<%=b%></b><br>
<b>c=<%=c%></b><br>
注意:不能用“;”作为表达式结束符,但是同样的表达是用在scriptlet中就需要以“;”来结尾。
(3)脚本段(Scriptlet):又称Java小程序段或Java代码片段。在JSP文件中,在“<%”和“%>”之间直接嵌入任何有效的Java语言代码都称为JSP脚本小程序。
(三)3个指令元素
JSP通过指令来执行一些预定义的功能,是JSP引擎为了方便JSP开发而预定义的指令。主要包括如下三种:
⑴page指令:即页面指令,用来定义整个JSP页面的一些属性和这些属性的值。一个JSP页面可以包含多个页面指令。除了import外,其他的页面指令定义的属性/值只能出现一次。格式如下:
<%@ page 属性1=“属性1的值” 属性2=“属性2的值”…%>
其中属性=language|import|contentType|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|extends|isElignored|pageEncoding
Buffer属性:指定到客户输出流的缓冲模式。内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不适用缓冲区。Buffer属性默认是8kB,与antoFlush一起使用。
autoFlush属性:指定out的缓冲区被填满时,缓冲区是否自动给刷新。当Buffer的值是none时,autoFlush的值就不能设置称false.
isThreadSafe属性:用来设置JSP页面是否支持多线程访问。
Info属性:该属性为JSP页面准备一个字符串,info属性的值是某个字符串,字符串在执行JSP代码时将会被逐字加入到JSP中。可以使用servlet.getServletInfo方法获取info属性的值。
㈣动作元素:JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。包括如下几项:
<jsp:param>:为JSP页面传递参数
<jsp:include>:在页面被请求时引入一个文件。
<jsp:forward>:把请求转到一个新的页面。
<jsp:plugin>:根据浏览器类型为Java插件生成OBJECT或EMBED标记
<jsp:useBean>:寻找或者实例化一个JavaBean
<jsp:setProperty>:设置JavaBeans的属性。
<jsp:getProperty>:获取某个JavaBeans的属性
㈤获取Form表单的信息:
客户通常使用HTML表单向服务器的某个JSP页面提交信息,表单一般格式是:
<FORM method=get|post action=”提交信息的目的地页面完整URL”>
<FORM>:是表单标签
Method取值get或post,用get和post方法可以发送数据到服务器,也可以发送到Bean、Servlet或其它组件服务器。
get和post区别:get是从服务器上请求数据,而post是发送数据到服务器。get方法把数据参数队列加到一个URL上,值和表单一一对应;而post方法可以没有时间限制地传递数据到服务器,用户在客户端看不到这一过程,其保密性极强,所以常被用来发送密码、账号等相当重要的数据到服务器。
JSP九大内置对象:
(1)request:客户端请求,此请求包含来自GET/POST请求的参数。
(2)response:网页传回用户端的回应。
(3)pageContext:网页的属性在这里管理。
(4)session:与请求有关的会话期。
(5)application:servlet正在执行的内容。
(6)out:用来传送回应的输出。
(7)config:Servlet的构架部件。
(8)page:JSP网页本身。
(9)exception:针对错误网页未捕捉的例外。
9个内置对象分类如下:
(1)输入输出对象:request、response、out
(2)作用域通信对象:session、application、pageContext
(3)Servlet对象:page和config
(4)错误对象:exception
JSP和Servlet区别:
相同点:
(1)JSP是Servlet技术的扩展,本质上是Servlet的简易方式,编译后是“类servlet“。
(2)Servlet中能操作的request、response、session、application的对象在JSP中能作为内置对象直接使用。
区别:
(1)Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.JSP的文件。
(2)JSP侧重于视图,Servlet主要用于控制逻辑。