JSP的4种基本语法
JSP注释:
<%--注释部分--%>
因为JSP页面编译生成的Servlet类输出流不包含此类注释,所以,JSP注释不会被发送到客户端,“查看网页源代码”,此类注释不可见。(HTML注释恰恰相反)
JSP声明:
<%!
public int count;
public int info(){
return "Hello";
}
%>
JSP声明的变量&方法,对应Servlet类的成员变量和成员方法
禁止用abstract修饰方法,抽象方法导致servlet成为抽象类,不可实例化
JSP输出表达式:
<%=count++%>
JSP输出表达式对应编译生成的Servlet类的输出语句;
JSP脚本:
<% for(int i = 0; i < 10; i++) { %>
<p>hello</p>
<% } %>
JSP脚本将转化成Servlet里_jspService方法里的可执行代码,所以JSP脚本中不能定义方法(Java语法不允许在方法中定义方法),声明的变量是局部变量,所以不能用访问控制符,static等修饰。
JSP的3个编译指令:
page
<%@page %>:针对当前页面;11个属性;
include
<%@ include file=” * ” %>:静态包含;注意指令冲突;页面融合,包含页面在编译时将完全包含被包含页面的代码;区别于动态包含
taglib
JSP的7个动作指令
动作指令 | 作用 |
---|---|
jsp:forward | 执行页面转向,将请求的处理转发到下一个页面 |
jsp:param | 用于传递参数,必须与其他支持参数的标签一起使用 |
jsp:include | 动态引入一个JSP页面 |
jsp:plugin | 下载JavaBean或者Applet到客户端执行 |
jsp:useBean | :————-: |
jsp:setProperty | right-aligned |
jsp:getProperty | centered |
语法细节
1. jsp:forward
“将请求转发到新页面”,实际上这是有误导性的说法。它并没有向新页面发送请求,而是完全采用新页面来对请求生成响应,所以请求依然是一次请求,请求参数,请求属性也不会丢失。
而网址依然是旧页面的网址。新页面使用request.getParameter(“paramName”)来获取请求参数的值。
- jsp:param
<jsp:param name="propertyName" value="propertyValue"/>
- jsp:include——动态导入
动态导入。在编译生成的servelt类中使用了include方法引入被导入页面。仅仅将被导入页面的body内容插入页面(编译指令不导入)。优点:可以增加额外的参数
静态导入。在编译生成的servelt类中代码完全融入。被导入页面的编译指令会起作用。
- jsp:plugin 不常用
- jsp:useBean
- jsp:setProperty
- jsp:getProperty