分享
 
 
 

JSP自学笔记

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

JSP注释

<%-- comments --%>

注意<%-- --%>之间的 --%>应写为 --%\>

JSP声明

<%! 声明语句序列 %>

类和变量的说明可以在<%! %>中间声明,也可以直接声明一个方法

<%!

public void foo(){

out.println("the foo function");

}

%>

JSP表达式

<%=Java表达式%>

用来直接在页面中显示该表达式的值,效果与

<%

一致

JSP程序段

<% Java代码%>

在JSP声明中被声明的变量在所有运行这个JSP程序代码的线程中有效

而在JSP程序段中被声明的变量在每次新的请求线程产生的时候都会重新创建和

重新初始化

JSP编译指令

基本格式<%@directive {attr="value"}%>

现在为止只有三种JSP编译指令include,page,taglib

include 编译指令

可以将一个外部文件嵌入到当前JSP程序中,同时解析这个文件中的JSP语句

(如果有的话)

格式:<%@include file="relativeURLSpec"%>

例:<%@include file="copyright.html"%>

如果被嵌入的文件经常改变的话,建议使用<jsp:include>操作指令

page编译指令

<%@page

[language="Java"]

[extends="package.class"]

[import="package.class│package.*},…"]

[session="true│false"]

[buffer="none│8kb│size kb"]

[autoFlush="true│false"]

[isThreadSafe="true│false"]

[info="text"]

[errorPage="relativeURL"]

[contentType="mimeType[;charset=characterSet]"│"text/html;charset=ISO8859.1"]

[isErrorPage="true│false"]

%>

说明:

language:声明当前JSP程序所使用的教本语言的种类

extends:标明该JSP程序编译时所产生的Java类需要继承的class或者需要实现的

interface的全名

import:用来导入包,下面几个包时默认自动导入的,不需要显式表示

java.lang.*;javax.servlet.*;javax.servlet.jsp*;javax.servlet.http.*

例:<%@page import="java.util.Vector"%>

session: 设定这个JSP程序是否需要HTTP session

buffer: 指定输出缓冲区的大小。输出缓冲区被JSP内部对象-Out对象(out)用于缓存

执行的JSP程序对客户浏览器的输出,缺省值式8kb,可以设置为none,也可以

设置为其他的值,单位为kb

autoFlush:指定如果输出缓冲区溢出时是否需要强制输出缓冲区的内容。设置为true时

为正常。设置为false时,会在buffer溢出时产生一个Exception。

例:<%@page buffer="5kb" autoFlush="false"%>

info:设置该JSP程序的信息,也可以看作时其说明,可以通过

servletContext.getServletInfo()方法取回

errorPage:指定错误处理程序。如果本程序产生了异常或者错误,而该JSP程序又没有相

应的处理代码。则会自动调用该指令所指定的外部处理程序

例:<%@page errorPage="../error/errorPage.jsp"%>

isErroePage:设置本JSP程序是否为错误处理程序

contentType:用于设定传回网页的文件格式和编码样式,即MIME类型和页面字符集类型

缺省的MIME类型是text/html;缺省的字符集为ISO-8859.1

例:<%@page contentType="text/html;charset=gb2312"%>

taglib编译指令

格式:<%@taglib uri="taglibraryURI" perfix="tagPrefix"%>

这个和xml有关,先略过

JSP操作指令

不同于JSP编译指令,JSP操作指令是在客户端请求时期动态被执行的

有以下几个:

<jsp:forward>,<jsp:param>,<jsp:include>,<jsp:plugin>,<jsp:useBean>

<jsp:setProperty>,<jsp:getProperty>

1,<jsp:forward>

作用:使得当前程序重定向别的HTML文件,或者是别的动态程序

语法形式:

<jsp:forward page="{relativeURL│<%=expression%>}"/> (jsp1.0)

或者

<jsp:forward page="{relativeURL│<%=expression%>}"/> (jsp1.1/1.2)

{<jsp:param.../>}

</jsp:forward>

page="{relativeURL│<%=expression%>}"指定目标文件的URL

<jsp:param name="parameterName" value="{parameterValue│<%=expression%>}"/>

设置参数

例子:<jsp:forward page="/servlet/sendmail?email=grin@grin.com"/>

例子:

<jsp:forward page="/servlet/sendmail>

<jsp:param name="email" value="grin@grin.com"/>

</jsp:forward>

2,<jsp:param>

作用:指定某个参数的值,必须和<jsp:forward>,<jsp:include>,<jsp:plugin>

等一起协同使用

3,<jsp:include>指令

作用:在JSP程序中宝含一个静态或动态文件

语法形式:

<jsp:include page="{relativeURL│<%=expression%>}" flush="true"/>

或者

<jsp:include page="{relativeURL│<%=expression%>}" flush="true">

<jsp:param name="parameterName" value="patameterValue"/>

</jsp:include>

flush="true":指定是否将被宝含的文件的执行结果输出到客户端,在JSP1.1规范中

flush="false"是不允许的

<jsp:include page="scripts/login.jsp"/>

例子:

<jsp:include page="copyright.html"/>

例子:

<jsp:include page="/index.html"/>

例子:

<jsp:include page="scripts/login.jsp">

<jsp:param name="username" value="grin"/>

</jsp:include>

4,<jsp:plugin>

作用:动态的下载服务器端的JavaBean或者Java Applet程序到客户端的浏览器上执行

如果需要的话,还要下载一个Java插件

语法形式:

<jsp:plugin

type="bean│applet"

code="classFileName"

codebase="classFileDiretoryName"

[name="instanceName"]

[archive="URLtoArchive"]

` [align="bottom│top│middle│left│right"]

[heigh="displayPixels"]

[width="displayPixels"]

[hspace="leftRightPixels"]

[vspace="topBottomPiexels"]

[jreversion="JREVersionNumber│1.2"]

[nspluginurl="URLToPlugin"]

[iepluginurl="URLToPlugin"]>

[<jsp:parames>

[jsp:param name="parameterName" value="parameterValue"/>]

</jsp:params>]

[<jsp:fallback>text message for user that can no see the plugin

</jsp:fallback> ]

</jsp:plugin>

说明:

type指定被执行的java程序的类型

code 指定被执行的文件名,该文件必须以".class"扩展名结尾

codebase指定被执行文件所在的目录

name 给该程序岂一个名字用来标志该程序

archive指向一些要预先载入的将要使用到的类的路径

hspace,vspace:显示时,左右,上下的留白

jreversion 能正确运行时所需要的JRE版本,缺省值是1.2

nsplugin,ieplugin:Netscape Navigator,Internet Exploer能使用的JRE的下载地

<jsp:fallback>指令:用于不能显示时的说明信息

例子:和女友吃饭去了回来再打

女友回家了。我理了个头发,现在帅帅的

继续写

例子

<jsp:plugin type="applet" code="MyPlugin.class" codebase="/classes">

<jsp:params>

<jsp:param name="myPlugin" value="Greetings"/>

</jsp:params>

<jsp:fallback>

<p>unable to load plugin</p>

</jsp:fallback>

</jsp:plugin>

例子:

<jsp:plugin

type="applet"

code="clock2.class"

codebase="/examples/jsp/plugin/applet"

jreversion="1.2"

width="160"

hight="150">

<jsp:fallback>

plugin tag DBJECT or EMBED not supported by browser

</jsp:fallback>

</jsp:plugin>

<jsp:useBean><jsp:setProperty><jsp:getProperty>

作用:<jsp:useBean>用来在JSP页面中实例化一个或若干个Javabean

<jsp:setProperty>用于指定Javabean的某个属性的值

<jsp:getProperty>用于输出JavaBean中某个属性的值

格式:

<jsp:useBean id="name" class="classname"

scope="page│request│session│application" beanDetails/>

</jsp:useBean>

其中id为该JavaBean的名字class为该Bean的类名scope为该实例对象的生命周期

beanDetails:=class="className"│

class="className" type="typeName"│

beanName="beanName" type="typeName"│

type="typeName"

<jsp:setProperty name="BeanName" propertyDetails/>

其中

propertyDetails:=property="*"│

proterty="propertyName" param="parameterName"

如果property的值为"*",这说明如果表单数据的属性名和JavaBean的属性名相同

那么JavaBean的相应属性将会被自动赋值

<jsp:getProperty name="BeanName" property="propertyName"/>

JSP自己自动的定义了9个可以直接使用而不用说明的对象

他们分别是

out,applicatin,config,exception,page,pagecontext,request

response,session

简单说明:

out:

一个Javax.servlet.jsp.JspWriter对象

主要用来向客户端输出各种格式的数据,并且管理服务器上的输出缓冲区

application

javax.servlet.ServletContext

包括在特定的应用中的被所有servlet共享的数据

config

javax.servlet.ServletConfig

该JSP的配置信息

excepltion

javax.lang.Throwable

引起该错误页被调用的错误或者异常

page

java.lang.object

当前的Java Server Page。在Java中,这和this变量一样。

pageContext

javax.servlet.jsp.PageContext

包括了JSP可能需要的对大多数对象的引用,页有类似于include和forward

的功能

request

javax.servlet.http.HttpServletRequest

关于输入请求的存储信息,包括表单变量

response

javax.servlet.http.HttpservletResponse

关于响应的信息,包括报头变量,cookies和内容类型

javax.servlet.http.HttpSession

包括与一个特定浏览器session相关的数据

具体的介绍可以看看sun的说明文档中对相应的对象和类的描述

后记:

总算是把笔记本上的东西敲完了

用一个星期的时间看了一本jsp入门书

不过没有时间可以写几个程序自己试试……

也没有时间参考一些自己验证该书的正确性

课程,考研……

想学的东西几乎没有时间学

sigh

————————————————————————————————

转载请注明:

紫风@紫风论坛

http://www.cnpoems.net/bbs

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有