JSP基本语法:
Declaretion 声明
<%! %> 成员变量声明,只在servlet生成时声明一次,存在于整个servlet生命周期。(可声明方法)
<% %> 局部变量声明,每访问页面一次重新声明一次。(不可在其中声明方法)
Scriptlet 程序段
<%程序代码区%> 可放入任何的Java程序代码
Expression 表达式
<%= %>
=后必须是字符串变量或者可以被转换成字符串的表达式,不需要以;结束
Comment 注释
|
Directives 指令(编译期间执行的指令)
|
常见Directive:
page:
指明和JSP Container的沟通方式。
eg:
include:
将指定的JSP程序或者HTML文件包含进来(会在JSP转换时期先将file设定的文件包含进来,然后开始转换及编译)
用法:
<%"fileURL%">file=特点:
- 一般用于非动态的代码,不能在fileURL后面传参数
- 执行效率比较高
taglib
JSP API允许您自定义JSP标签,这些看起来像HTML或XML标签的玩意就是用户自定义标签集了。
Taglib指令引入自定义标签集,识别库路径,并且鉴别自定义标签。
Taglib指令的语法格式如下:<%@ taglib uri="uri" prefix="prefixOfTag" >uri属性告诉容器位置,prefix属性告诉容器多少位是自定义标签的标记。等价的XML语法如下:<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />
当使用一个自定义标签的时候,典型的格式为
Action动作指令(运行期间执行的指令)
jsp:useBean
基本要素:
- 必须要有一个无参数的构造器。在JSP元素创建Bean时会调用空构造器。
- Bean类应没有任何公共实例变量,不许直接访问实例变量。
- 通过getter/setter方法读/写变量的值。
用法
<jsp:useBean id="beanName" scope="page|request|session|application" class="package BeanClass" type="typeName" />//id:对象实例名称//scope:Bean的有效范围,默认page.//class:Bean类的名称//type:Bean实例类型,可以是本类,或者其父类,或者实现的接口,默认本类。<jsp:useBean...><jsp:setProperty...><jsp:getProperty...></jsp:useBean>/* jsp:setProperty格式:<jsp:setProperty name="beanName"property="propertyName"|property="*"value="property value"|param="paramName"/>*若为上一个页面form提交过来的数据,可以用property="*"。//注:若request传输后输出乱码,可以使用request命令在获取前转码。request.setCharacterEncoding("GBK");*相当于beanName.setPropertyName(value)方法调用(setXxx()方法)。eg: <jsp:setPropertyname="entry"property="itmeID"value="<%=request.getParameter("itmeID")%>" //等于param="itmeID"/>作用:从request中读取itmeID,调用setItemID方法传入property的itemIDjsp:getProperty格式:<jsp:getProperty name="beanName"/>*相当于beanName.getPropertyName()方法调用(getXxx()方法)。*调用原理:反射机制。*/注:
javaBean尽量放在包中使用,不要使用裸体类。eg:
- javaBean中定义包:package bean;
- 编译后的bean文件放置目录WEB-INF\classes\bean
- jsp中导入<%@ page import=”bean.*” %>
jsp:include
该指令在转换期间不会被编译,只有当客户端请求时期被执行到才会被动态的编译载入
- 用法:
|
|
jsp:forward
用于将一个jsp的内容传递到page所指定的JSP程序或者Servlet中处理(URL)
- 用法:
<jsp:forward page="urlSpec" flush="true"/>
<jsp:forward page="urlSpec"><jsp:param name="paramName" value="paramValue"/><jsp:forward>
- 特点:
- 执行Forward的页面和forward跳转到的页面用的是同一个request,服务器端直接将请求传递给目标页面。
- 与之相对应的是response.sendRedirect,该方法向客户端返回待跳转页面的地址,客户端重新向待跳转页面发起请求。
- Forward可以直接在本URL后添加参数并传递给待跳转页面,response.sendRedirect不能在本URL后添加参数。
jsp:plugin
执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它。
内置对象
out
|
request
调用JSP页面的请求。通常request对象是javax.servlet.http.HttpServletRequest接口的一个实例。
response
返回给客户端的响应,是javax.servlet.http.HttpServletRequest接口的一个实例。
常用于设置HTTP标题、添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL。
pageContext
session
application
config
|