您的位置:首页 > Web前端 > JavaScript

# 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>


属性名 属性值说明
typebean|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 组件名称 声明组件的名字
nspluginurlURL地址声明对于网景,可以下载JRE插件的URL
iepluginurlURL地址声明对于IE浏览器,可以下载JRE插件的URL
<jsp:plugin>动作的应用示例


JSP脚本代码

嵌入到JSP页面中的JAVA代码。浏览器中不可见,用于服务器执行,然后由服务器将执行结果与HTML标记一起发送给客户端显示。通过执行脚本,在页面生成动态的内容。

声明格式:

<! 变量声明|方法声明|类声明 %>


JSP表达式:

<%=表达式%>


XML 格式: <jsp: expression> 表达式 </expression>


<% Java 代码 %>


JSP注释

解释源代码。

1、HTML注释

<!--注释内容-->


2、隐藏注释

<%--注释内容--%>


3、脚本注释

单行注释: //


多行注释:/**/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: