# JSP入门知识点系列之一
2017-07-14 16:07
211 查看
JSP入门知识点之 JSP基本语法
JSP基本语法JSP的隐含对象
EL表达式 和 标签
JSP页面的基本组成
JSP页面4中元素的组成: HTML标记、JSP标记、JSP脚本代码、注释HTML标记
作为JSP页面中静态的内容,由浏览器 识别并运行,主要负责页面的布局和美观效果的设计。作为一个页面的框架。JSP标记
用于高速jSP容器如何处理JSP网页或者控制JSP引擎完成某种功能。分为动作标记、指令标记。指令标记
主要分为3中指令标记: page、include、taglib通用格式 <%@指令名称 属性1=“属性值” 属性2=“属性值”……%> JSP:XML语法: <JSP:directive.指令名称 属性1="属性名称"属性2=“属性值”……/>
page
1- 作用于整个页面—定义了页面相关的属性,这些属性将用于与JSP服务器进行通信。
由上通用格式 可以推断:
<%@page 属性1=“属性值” 属性2=“属性值”……%> JSP:XML语法: <JSP:directive.page 属性1="属性名称"属性2=“属性值”……/>
有13个属性,具体说
4000
明如下:
language=”scriptingLanguage”
———-JSP 2.0中只可以JAVA,之后可能可以其他语言。
extends=”calssName”
———-指定JSP页面转换后继承的父类,通常不需要使用,JSP会提供转换后的Servlet类的父类。
import=”importList”
———-example:<%@ page import=”java.util.*” %>
———-唯一可重复。一般JSP 会默认添加 4个包:java.lang.; javax.servlet.; javax.servlet.jsp.; javax.servlet.http.
sessin=”true|false”
———-是否可以使用session对象
buffer=”none|sizeKB”
———-指定out对象指定缓冲区的大小。KB为默认单位,默认值是8KB。如果为none,则不适用缓冲区
autoFlush=”true|false”
———-当缓冲区满,缓存输出是否自动刷新。如果设置为false,当溢出的时候,一个异常将抛出。默认值为 true。
isThreadSafe=”true|false”
———-指定是否对页面的访问是安全的线程。若true,则可以多个客户端同时访问,若false,则JSP容器将对转换后的Servlet 类实现singleThreadModel接口。默认值是 true。
info=”info_text”
———-页面相关信息,可以通过getServletInfo()方法得到。
errorPage=”error_URL”
———-JSP页面发生异常错误的时候,转向那个页面。在这里定义的了错误页面,那么 web.xml中指定的任何错误页面 都不会被使用。
isErrorPage=”true|false”
———-当前页面 是否是另一个页面的error处理页面,默认值false
contentType=”type”
———-页面的MIME类型和编码,也是中文页面必须要设置的属性。
———-<% @ page contentType=”text/html; charactersetgb2312” %>
pageEncoding=”peinfo”
———-若设置了该属性,则使用该字符集,若没有,则使用contentType中设置的字符集。若 都没有,则使用“ISO-8859-1”
isELIgnored=”true|false”
———-是否执行或者忽略EL表达式,若果设置 为true。
““
Tips: page 无论在哪里都是对全文有效。
include指令
语法:<% @include file="relativeURL" %> <jsp:directive.include file="realtiveURL" />
example01.jsp <%@ page contentType = text/html;character="gb2312"%> `<html>` `<head><tittle>welcom</tittle></head>` `<body>` 现在时间是: <% include file="date.jsp" %> `</body>` `</html>`
date.jsp <%out.println(new java.util.Date().toLocaleString()); %>
如果访问 example01.jsp,显示 是 现在时间是:xxxx-x-x xx:xx:xx
注意:**包含文件中最好不要使用HTML的标记,……等,这可能和原文件相冲突。
另外,格外避免原文件和被包含的文件中不可以定义相同的变量和方法。易导致转换出错。**
““
taglib指令
允许用户使用自定义标记。
语法如下: <%@ taglib (uri="tagLibraryURI" | tagdir="tagDir" ) prefix="tagPrefix" %> XML: `<jsp: directive.taglib (uri="tagLibraryURI" ` ` | tagdir="tagDir" ) ` `predix="tagPrefix"/>`
三个属性:
(1) uri
该属性唯一标识和前缀(prefix)相关的标签库描述符,可以绝对或者相对的URI。用于定位标记库的描述符的位置。
(2)tagdir
指示前缀(prefix)被用于标识安装在/WEB-INF/tags/目录或者其子目录下的标签文件中。一个隐含的标签库描述符被使用。
下面三种情况将发生转换错误
1、 属性的值不是以 /WEB-INF/tags/ 开始的
2、 属性值没有指向一个已经存在的目录。
3、 属性和uri一起使用。
(3)prefix
定一个 prefix:tagname 的形式的字符串前缀,用于区分多个自定义标签。以jsp:、jspx:、java:、javax:、servlet:、sun:、sunw: 开始的前缀会被保留。前缀的命名必须遵循名称空间的命名约定。。 JSP2.0中,空前缀 是非法的。
动作标记
利用XML语法格式控制JSP服务器实现某种功能,其遵循XML元素的语法格式,有起始标记、结束标记、空标记。有一些标准的动作由标记实现,由JSP服务器实现,影响JSP运行时的行为和客户端的请求的响应。页面转换成servlet时,使用对应的JAVA代码标记。
`<jsp:include>:在页面请求的时,动态引入一个文件。` `<jsp:forward>: 把请求转换到一个新的页面` `<jsp:plugin>: 用于产生与客户端浏览器相关的HTML标记``(<OBJECT>或者<EMBED>)` `<jsp:useBean>: 实例化一个JavaBean` `<jsp:setPro[erty>: 设置一个JavaBean` `<jsp:get Pro[erty>: 获得一个JavaBean`
(1).
<jsp:param>
被用来以“名–值对”的形式为其他标记提供标记信息:如传递参数。
<jsp:include>、<jsp:forward>、<jsp:plugin>
语法格式:
<jsp:param name="name" value="value" />
``` name: 给出名字的参数 value: 给出参数的值,也可以是一个表达式 (2).`
可以包含动态文件、静态文件。静态= ==直接输出到客户端由浏览器显示==;如果动态===由jsp服务器负责执行,将结果返回给客户端==。
语法如下:
<jsp:include page="url"flush="true|false"/> or 带传递参数: <jsp:include page="url"flush="true|false"/> {<jsp: param... />}* </jsp:include>
<jsp:include>动作由两个属性:
(1) page
指定被包含文件的相对路径,该路径是相对于当前JSP页面的URL
(2) flush
可选true:在包含工作之前,要先刷新缓冲区。
false:不会刷新
<jsp: include> 和 include指令的区别
include 指令:将jsp面作为静态对象,在页面转换阶段,将页面的内容(文本或者代码)在include指令位置包含进来。----每次修改需要重新编译。 <jsp:include>动作将JSP页面作为动态对象,在请求处理阶段,将请求发送给该对象。在当前页面请求相应中,包含该对象对请求处理的结果。-----一个文件的修改不影响另一个文件。
(3)
<jsp:forward>
==允许在运行的时候,将当前的请求转发给另一个JSP页面或者SERVLET,请求被转向到的页面必须位于同JSP发送请求相同的上下文环境中==。
这个动作会终止当前页面的执行,==如果使用了缓冲,在转发请求之前,缓冲区将会被清除。如果在转发请求之前,缓冲区已经刷新,将抛出IllegalStateException异常==。
如果页面输出没有使用缓冲,而某些输出已经发送,那么试图调用
<jsp:forword>动作,将导致抛出IllegaStateException。
这个动作的作用和RequestDispatcher接口的forward()方法作用一样。
语法如下:
`<jsp: forward page="url"/>` 带参数 <jsp: forward page="url"> {<jsp : param…… />} </jsp:forward>
动作只有一个page属性。page属性指定请求被转向的页面相对路径,该路径是相对于当前JSP页面的URL,也可以是经过表达式计算得到的相对的URL
使用<jsp:forword>的动作的一段代码段:
<%String command = request.getParameter("command"); if(command.equals("reg")){%> <jsp:forword page="logout.jsp"/> <%} else if(command.equals("logout")){%> <jsp:forword page="logout.jsp"/> <%} else {%> <jsp:forwrod page="login.jsp"/> <%} %>
(4)
`<jsp:plugin>,<jsp:params> ,<jsp:fallback> <jsp:plugin> 主要负责载入插件 <jsp:params> 是<jsp:plugin> 动作的一部分,只能在<jsp:plugin> 动作中使用。<jsp:params>包含一个或以上的<jsp:param>动作,用于向 Applet、JavaBean提供参数. <jsp:fallback> 是<jsp:plugin> 的一部分只能在<jsp:plugin>动作中使用 ,主要用户 指定插件不能启动的时候,给用户显示一段文件。 如果插件能够启动,但是Applet、JavaBean没有发现或者不能启动,那么浏览器就会提示一段错误信息提示。
`<jsp:plugin>动作语法如下 {align="alignment"} {archive="archiveList"} {height="height"} {hspace="hspace"} {jreversion="jreversion"} {name="compomentName"} {vspace="vspace"} {width="width"} {nspluginurl="url"} {iepluginurl="url"}> {<jsp:params> <jsp:param name="paramName" value="paramValue" />}+ </jsp:params>} {<jsp:fallback>arbitrary_text </jsp:fallback>} </jsp:plugin>
属性名 | 属性值 | 说明 |
type | bean|applet | 声明组件的类型,是JavaBean还是Applet |
code | 组件类名 | 要执行组件的完整类名,以.class 结尾 |
codebase | 类路径 | 指定要执行的java类所在的目录 |
align | left| right| bottom| top| texttop| middle| absmiddle| baseline| absbottom | 指定组件的对齐方式 |
archive | 文件列表 | 声明待归档的JAVA文件列表 |
height | 高度值 | 声明组件的高度(像素) |
width | 宽度 | 声明组件的宽度(像素) |
hspace | 左右空间空白值 | 左右空间空白值(像素) |
vspace | 上下空间空白值 | 上下空间空白值(像素) |
jreversion | 版本号 | 组件运行时需要的jre版本 |
name | 组件名称 | 声明组件的名字 |
nspluginurl | URL地址 | 声明对于网景,可以下载JRE插件的URL |
iepluginurl | URL地址 | 声明对于IE浏览器,可以下载JRE插件的URL |
<jsp:plugin>动作的应用示例
JSP脚本代码
嵌入到JSP页面中的JAVA代码。浏览器中不可见,用于服务器执行,然后由服务器将执行结果与HTML标记一起发送给客户端显示。通过执行脚本,在页面生成动态的内容。声明格式:
<! 变量声明|方法声明|类声明 %>
JSP表达式:
<%=表达式%>
XML 格式: <jsp: expression> 表达式 </expression>
<% Java 代码 %>
JSP注释
解释源代码。1、HTML注释
<!--注释内容-->
2、隐藏注释
<%--注释内容--%>
3、脚本注释
单行注释: //
多行注释:/**/
相关文章推荐
- JavaScript入门系列之知识点总结
- (20)WEB的相关知识以及JSP入门基础知识点总结
- VC简单入门系列实验及知识点总结
- jsp入门知识点总结
- javaweb学习第十一天:jsp入门+cookie+session知识点总结
- JSP Web开发入门系列(二)---JDBC事务管理
- JSP入门知识点解析之九大内置对象
- JavaScript入门系列之知识点总结
- Jsp入门知识点总结
- JSP Web开发入门系列(一)---JDBC基础
- JavaScript系列一:入门知识点整理
- Spring Boot 系列入门(二) web工程(识别JSP)
- HTML5 移动开发入门知识点
- 【Lucene3.6.2入门系列】第10节_Tika
- 新手入门经典:Jsp环境配置
- jsp系列学习:jsp与javaBean的使用,用javaBean来封装
- C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。 ——兔子党逍遥原创,转来分享学习
- 云星数据---Scala实战系列(精品版)】:Scala入门教程013-Scala实战源码-Scala表达式与for循环
- WPF学习记录-布局[摘抄自博客园(xiepeixing<WPF布局该如何选用panel>与(DotNet菜园<WPF入门教程系列七——布局之WrapPanel与StackPanel(二)>))]
- 云星数据---Scala实战系列(精品版)】:Scala入门教程020-Scala实战源码-Scala 继承关系