# JSP入门知识点系列之一
来源:互联网 发布:it之家官网 编辑:程序博客网 时间:2024/05/24 06:49
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个属性,具体说明如下:
- 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、脚本注释 单行注释: //
多行注释:/**/
- # JSP入门知识点系列之一
- JSP知识点汇总之一
- Jsp知识点之一
- jsp基础知识点系列
- jsp入门知识点总结
- Jsp入门知识点总结
- C++知识点系列之一(转+整理)
- PHP知识点系列之一:面向对象基础
- USB入门系列之一----基本知识
- USB入门系列之一----基本知识
- USB入门系列之一----基础知识
- USB入门系列之一----基础知识
- Docker系列之一:入门介绍
- USB入门系列之一----基本知识
- SpringBoot系列之一_入门
- JAVA/JSP学习系列之一(JDK安装)
- JAVA/JSP学习系列之一(JDK安装)
- JAVA/JSP学习系列之一(JDK安装)-
- maven项目pom.xml文件报错failOnMissingWebXml
- Command Network
- Android 组件化
- Angular中ng-controller父子级嵌套的相关属性
- UML用例图、类图、时序图
- # JSP入门知识点系列之一
- 分库分表带来的完整性和一致性问题
- 诉说站点优化之前一定要先分析用户的心里这样排名才能上来
- Linux中查看各文件夹大小命令du -h --max-depth=1
- 简单获取最近6个月的方法
- win10服务主机占用cpu使用率该怎么办?win10服务主机cpu高的处理方法
- 剑指offer 46---实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字
- 谷歌官方MVP Demo解读
- POJ 1849 Two【树的直径+树的遍历】