学习笔记(五):JSP的基础语法
2014-04-10 17:05
441 查看
(最近在看马士兵老师的java web视频,遂记录以铭之)
一、简介
JSP - Java Server Page
特点:
拥有Servlet的特性和优点(本身就是一个Servlet)
直接在HTML中内嵌JSP代码
JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行
只有当客户端第一次请求JSP时,才需要将其转换、编译
二、JSP语法类型
种类: JSP传统语法、JSTL、JSF、其他taglib(如structs).
JSP传统语法所包含的内容:
Declaration // 对象、函数定义等
Scriplet // 执行的代码段
Expression //表达式
Comment //注释
Directives //编译指令
Action //动作指令
内置对象
三、语法详解
1. Declaration
基本语法 : <%! %>
说明:在此声明的变量、方法都被报流成唯一的一份,直到JSP程序停止运行。
例:<%!
int i;
public void setName(){}
%>
2. Scriplet
基本语法:<% %>
说明: 可以放入任何的java代码
例:<%
for(int i = 0; i < 10;i++)
%>
3. Expression 表达式
基本语法:<%= %> 里面必须是字符串常量或者可以转换成字符串的表达式,不需要 ; 结尾,只有一行
4. Directive
Directive(编译指令)相当于编译期间的命令
格式:
<%@ Directive 属性='属性值'%>
常见的Directive: page、include、taglib。
Directive - page
指明与JSP Container 的 沟通方式
基本格式:
<%@ page language = "script language"
extend = "clasName" |
import="importList" | --导入的类库等
buffer="none | kb size" | --none不缓冲,默认8K
session="true|false" | --是否可以用session,默认为true
autoFlash="true|false"| -- 缓冲器是否自动清除, 默认为true
isThreadSafe="true|false"
info="infoText" | --任何字符
errorPage="errorPageUrl" | --出现错误将跳转的页面
isErrorPage="true|false" | -- 代表目前是错误页面吗?
contentType="contentTypeInfo"--设置内容信息,一般为"text/html, charset-gb2312">
Directive - include
将指定的JSP程序或者HTML文件包含进来
格式:<%@include file="fileURL"%>
JSP Engine会在JSP程序的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作。
限制:不能向fileURl中传递参数,例如不能"abc.jsp?=aaa"
5. comment 注释
<%-- --%>
<%// %>
<%/* */%>
6. Action
Action(动作指令)在运行期间执行的命令.
常见的:
jsp : useBean
jsp: setProperty
jsp: getProperty
jsp: include
jsp: foward
jsp:param
jsp:plugin
jsp:include / jsp: param
用于动态包含JSP程序或HTML文件等
除非这个指令被执行到,否则它是不会被Tomcat等JSP Engine编译
格式:
<jsp:include page="URLSpec" flush="true"/>
<jsp:include page="URLSpec" flush="true">
<jsp:param name="paramName" Value="paramValue"/>
jsp:forward / jsp:param
用于将一个JSP的内容传送page所指定的Jsp程序或者Servlet中处理(URL)
格式:
<jsp:forward page="URLSpec" flush="true"/>
<jsp:forward page="URLSpec">
<jsp: paramname="paramname" value="paramValue">
</jsp:forward>
<jsp:param> 用于指定参数何其对应的值
Forward的页面和forward到的页面用的是同一个request
与此对应的是:
response.sendRedirect
<jsp:forward>与response.sendRedirect的区别:
1. <jsp:forward>使用同一个request
2. response.sendRedirect是不同的request
7. JSP : useBean
通过jsp:usebean,可以在JSP中使用定义好的Bean
基本用法:<jsp:useBean id="beanName" scope="page | request | session | application"
class="package BeanClass" type="typeName"/>
<jsp:useBean...>
<jsp:setProperty..>
<jsp:getProperty..>
</jsp:useBean...>
这里的Bean类需要打包,不要使用裸体类。
JSP:useBean各项参数意义:
id: 对象实例名称
scope:Bean作用的范围,默认为scope,对整个JSP页面有效
class:Bean类的名称
type:Bean实例类型,可以是本类,或者父类,或实现的接口,默认为本类
Scope各项参数的意义:
page:仅覆盖使用javaBean的页面
request:有效范围仅限于使用JavaBean的请求
session:有效范围在用户整个连接过程中(整个会话阶段有效)
application:有效范围涵盖整个应用程序,也就是对整个网站均有效
JSP:SetProperty的格式:
<jsp: setproperty name=“beanName”
property="propertyNmae" | property="*"
value="propertyValue" | param="paramName"/ >
相当于对beanName调用(setXXX())方法
JSP:getProperty的格式:
<jsp:getProperty name="beanName" property="propertyName"/>
相当于对beanName调用(getXXX())方法
建立表单参数与bean属性之间的关系:
通过param指定表单元素的名称,通过property指定对应的Bean属性名称,由此建立这两个变量的联系。
通过*来设置所有属性和输入参数之间的联系。
在建立Bean属性和表单参数之间的对应联系时,服务器会将对应的参数自动转换成和属性匹配的数据。
8 . Servlet和JSP的通信
(1) JSP调用Servlet可用<jsp:forword>
请求信息自动传递到Servlet或者通过SendRedirect
(2) 从Servlet调用JSP
使用RequestDispatcher接口的forward(req,res) 方法
例:getServletConfig().getServletContext.getRequestDispatcher("ServletUseJSP.jsp").forward(req,resp);
请求信息需要显式传递(在req、resp中),或者通过resp的sendRedirect
9. 内置对象
out
request
response
pageContext
session
application
config
exception
page
一、简介
JSP - Java Server Page
特点:
拥有Servlet的特性和优点(本身就是一个Servlet)
直接在HTML中内嵌JSP代码
JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行
只有当客户端第一次请求JSP时,才需要将其转换、编译
二、JSP语法类型
种类: JSP传统语法、JSTL、JSF、其他taglib(如structs).
JSP传统语法所包含的内容:
Declaration // 对象、函数定义等
Scriplet // 执行的代码段
Expression //表达式
Comment //注释
Directives //编译指令
Action //动作指令
内置对象
三、语法详解
1. Declaration
基本语法 : <%! %>
说明:在此声明的变量、方法都被报流成唯一的一份,直到JSP程序停止运行。
例:<%!
int i;
public void setName(){}
%>
2. Scriplet
基本语法:<% %>
说明: 可以放入任何的java代码
例:<%
for(int i = 0; i < 10;i++)
%>
3. Expression 表达式
基本语法:<%= %> 里面必须是字符串常量或者可以转换成字符串的表达式,不需要 ; 结尾,只有一行
4. Directive
Directive(编译指令)相当于编译期间的命令
格式:
<%@ Directive 属性='属性值'%>
常见的Directive: page、include、taglib。
Directive - page
指明与JSP Container 的 沟通方式
基本格式:
<%@ page language = "script language"
extend = "clasName" |
import="importList" | --导入的类库等
buffer="none | kb size" | --none不缓冲,默认8K
session="true|false" | --是否可以用session,默认为true
autoFlash="true|false"| -- 缓冲器是否自动清除, 默认为true
isThreadSafe="true|false"
info="infoText" | --任何字符
errorPage="errorPageUrl" | --出现错误将跳转的页面
isErrorPage="true|false" | -- 代表目前是错误页面吗?
contentType="contentTypeInfo"--设置内容信息,一般为"text/html, charset-gb2312">
Directive - include
将指定的JSP程序或者HTML文件包含进来
格式:<%@include file="fileURL"%>
JSP Engine会在JSP程序的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作。
限制:不能向fileURl中传递参数,例如不能"abc.jsp?=aaa"
5. comment 注释
<%-- --%>
<%// %>
<%/* */%>
6. Action
Action(动作指令)在运行期间执行的命令.
常见的:
jsp : useBean
jsp: setProperty
jsp: getProperty
jsp: include
jsp: foward
jsp:param
jsp:plugin
jsp:include / jsp: param
用于动态包含JSP程序或HTML文件等
除非这个指令被执行到,否则它是不会被Tomcat等JSP Engine编译
格式:
<jsp:include page="URLSpec" flush="true"/>
<jsp:include page="URLSpec" flush="true">
<jsp:param name="paramName" Value="paramValue"/>
jsp:forward / jsp:param
用于将一个JSP的内容传送page所指定的Jsp程序或者Servlet中处理(URL)
格式:
<jsp:forward page="URLSpec" flush="true"/>
<jsp:forward page="URLSpec">
<jsp: paramname="paramname" value="paramValue">
</jsp:forward>
<jsp:param> 用于指定参数何其对应的值
Forward的页面和forward到的页面用的是同一个request
与此对应的是:
response.sendRedirect
<jsp:forward>与response.sendRedirect的区别:
1. <jsp:forward>使用同一个request
2. response.sendRedirect是不同的request
7. JSP : useBean
通过jsp:usebean,可以在JSP中使用定义好的Bean
基本用法:<jsp:useBean id="beanName" scope="page | request | session | application"
class="package BeanClass" type="typeName"/>
<jsp:useBean...>
<jsp:setProperty..>
<jsp:getProperty..>
</jsp:useBean...>
这里的Bean类需要打包,不要使用裸体类。
JSP:useBean各项参数意义:
id: 对象实例名称
scope:Bean作用的范围,默认为scope,对整个JSP页面有效
class:Bean类的名称
type:Bean实例类型,可以是本类,或者父类,或实现的接口,默认为本类
Scope各项参数的意义:
page:仅覆盖使用javaBean的页面
request:有效范围仅限于使用JavaBean的请求
session:有效范围在用户整个连接过程中(整个会话阶段有效)
application:有效范围涵盖整个应用程序,也就是对整个网站均有效
JSP:SetProperty的格式:
<jsp: setproperty name=“beanName”
property="propertyNmae" | property="*"
value="propertyValue" | param="paramName"/ >
相当于对beanName调用(setXXX())方法
JSP:getProperty的格式:
<jsp:getProperty name="beanName" property="propertyName"/>
相当于对beanName调用(getXXX())方法
建立表单参数与bean属性之间的关系:
通过param指定表单元素的名称,通过property指定对应的Bean属性名称,由此建立这两个变量的联系。
通过*来设置所有属性和输入参数之间的联系。
在建立Bean属性和表单参数之间的对应联系时,服务器会将对应的参数自动转换成和属性匹配的数据。
8 . Servlet和JSP的通信
(1) JSP调用Servlet可用<jsp:forword>
请求信息自动传递到Servlet或者通过SendRedirect
(2) 从Servlet调用JSP
使用RequestDispatcher接口的forward(req,res) 方法
例:getServletConfig().getServletContext.getRequestDispatcher("ServletUseJSP.jsp").forward(req,resp);
请求信息需要显式传递(在req、resp中),或者通过resp的sendRedirect
9. 内置对象
out
request
response
pageContext
session
application
config
exception
page
相关文章推荐
- javascript禁止输入数字
- log4javascript 页内显示日志信息
- Extjs之遍历Store内的数据
- fushioncharts简单实例
- JavaScript逻辑运算符及优先级
- Extjs之rowEditing编辑状态时列不对齐
- Javascript:this用法整理
- javascript (function(){})()匿名函数
- jsp前台使用后台数据
- JS获得所有选中的复选框的值
- js工作中用过的函数
- js中arr的赋值不影响原数组,赋值和引用的区别
- 20个优秀的 JavaScript 键盘事件处理库
- js 二级联动菜单
- javascript正则匹配汉字、数字、字母、下划线
- js实现隔行换色及其鼠标滑过变色
- javascript学习-安全初探之沙箱
- javascript插入样式
- JavaScript中双叹号(!!)作用示例介绍
- javascript:void(0)的问题使用探讨