jsp基础语法课堂笔记

合集下载

jsp学习

jsp学习

JSP基础教程学习笔记JSP基础教程学习笔记 (1)一、jsp简介 (2)二、jsp结构 (2)三、JSP生命周期 (3)四、jsp语法 (4)五、jsp指令 (7)六、jsp动作元素 (9)七、jsp隐含对象 (17)八、jsp客户端请求 (20)九、jsp服务器响应 (25)十、JSP HTTP状态码 (29)十一、JSP表单处理 (33)十二、JSP过滤器 (40)十三、JSP Cookies处理 (43)十四、JSP Session (46)十五、JSP文件上传 (51)十六、JSP日期处理 (56)十七、JSP页面重定向 (62)十八、JSP点击量统计 (63)十七、JSP自动刷新 (66)十八、JSP发送邮件 (68)一、jsp简介Java Server Pages,一种动态网页开发技术,使用jsp在html网页中插入java代码,标签通常以<%开头,以&>结尾。

二、jsp结构网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。

容器负责截获对JSP页面的请求。

Jsp容器与web服务器协同合作,未jsp的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于jsp 网页的图书元素。

下图显示jsp容器和jsp文件在web应用中所处的位置:Jsp处理的步骤:1.同普通网页一样,浏览器发送http请求给服务器;2.Web服务器识别出这事一个对jsp网页的请求,并且将该请求传递给jsp引擎。

通过使用URL或者.jsp文件来完成;3.Jsp引擎从磁盘中载入jsp文件,然后将它们转化为servlet。

这种转化只是简单的将所有模板文本改用println()语句,并且将所有的jsp元素转化成java代码;4.Jsp引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎;5.Web拂去其的某组件将会调用servlet引擎,然后载入并执行servlet类。

jsp复习笔记

jsp复习笔记

1,JSP脚本元素<%--comment-->注释写在JSP程序代码中但不发送到客户端1,隐藏注释<!—comment[<%=表达式%>]-->显示注释,发送到客户端2,声明语句<%!declaration;声明变量或者是方法%>声明必须以;结尾,有!的就是全局变量,无就是局部变量3,脚本段(即JSP页面中所内嵌的一段Java程序代码)<%代码%>4,表达式<%=表达式%>2,JSP指令元素1,Page指令(定义JSP页面中的全部属性,描述与页面相关的一些信息)<%@page language=”默认是Java” contentType=”text/html;charset=gb2312返回浏览器的内容类型”%>2,include指令(用来包含一个静态的文件)<%@include file=”relative url所包含静态文件的相对地址”%>所包含的静态文件将插入到原JSP文件中放<%@include%>地方3,taglib指令(用来定义标签库及其自定义标签的前缀)??????????????????????????????????????,3,JSP动作元素1,<jsp:include>元素(用来包含其他静态页面或动态页面)<jsp:include page=”relative url”>【<jsp:param name=”参数名1” value=”参数值”><jsp:param name=”参数名2” value=”参数值”>】将各个参数传到所包含静态页面或动态页面</jsp:include>include指令与include动作的区别include指令是把其他页面的Java源代码加进来,跟本页面的代码合并在一起形成一个页面,然后再对这个合并好后的页面进行编译。

JSP复习笔记

JSP复习笔记

JSP复习笔记一、内容汇总1. jsp简介: jsp是动态的页面语言,是以Java为主的跨平台web开发语言.一般jsp代码直接内嵌在html中,即jsp只是简单的将Java放到html网页中去而已,html可以直接改为jsp.jsp原理:jsp程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件载入执行;只有当客户端第一次请求JSP时,才需要将其转换并编译.2. .jsp运行环境: jsp是动态的代码,必须有服务器来解析这些代码,于是用到了Tomcat这款免费服务器.3. .jsp基本语法: 1)标记:<%程序代码区%> 2)表达式:<%=...%> 3) 3)注释4)JSP声明:<%! ...%>4. Dircetive(指令)格式:<%@ 指令属性="属性值"%>指令的设定不能重复制定(除了import外)常用的指令有:import、contentType、errorpage、page、include常用指令的使用方法5. JSP编程的内置对象(也叫隐藏变量)jsp页面中隐含了一些变量,这些你可以直接使用,不需要关心这些变量是如何创建出来的.常用的隐含变量包括:request:请求作用域response:请求响应session:会话作用域application:应用作用域out:输出注意:隐含变量只能在<%%>标记内使用6. jsp内置作用域之间的区别作用域的作用:用来临时存储一个值作用域内可以通过setAttribute来存储一个值,也可以通过getAttribute来提取一个值.jsp中的四个作用域按范围从小到大排列为: pageContext<request<session<application pageContext:只在当前页面有效,可以使用这个对象来管理其他的隐含对象request:表示在一个请求的作用域里面有效的.pageContext保存的值,只在当前页面有效,超出本页面均无效, 在以下的两种情况是有效的<jsp:include>和<jsp:forward>session作用域:表示在一个会话范围内有效,有两种情况会话内容会自动失效1).页面关闭,session内值没有了2).超时(通过session-timeout可以设置)3).手工注销sessionsession.invalidate();application作用域:代表在服务器的范围内是有效的,如果服务器关闭,则作用域内存储的任何值都将失效7. 参数传递1)如果是超链接,可以用以下方式:<a href="P.jsp?username=zhangshan&pwd=123456&age=25"> 链接</a>2)如果是form表示a.可显示的控件<input type="text" name="username">b.不需要显示在页面上<input type="hidden" name="pwd" value="<%=pwd%>">3)如果是jsp的include和forward标签<jsp:include flush="true" page="*.jsp?username=zhangsan&pwd=123456"><jsp:param name="age" value="28"></jsp:include>4)如果是JavaScript方式<script type="text/javascript">function demo(){var v = document.all('username').value;location.replace("*.jsp?username="+v+"&age=22");}</script><input type="text" name="username"><br><input type="button" value="点击"onclick="location.href='*.jsp?pwd=123456'"><br><input type="button" value="replace点击"onclick="location.replace('V.jsp?pwd=123456789')"><br><input type="button" value="动态取值" onclick="demo()">8. 数据提交方法提交方式分为get和post两种区别:A.post提交方式相对而言,比较安全;B.get只是适合于小数据的传递,也就是说,只有post才能传递大数据,比如在文件上传时,就必须将method指定为post.9. 从request作用域提取所有的参数名称方法:Enumeration<String> e= request.getParameterNames();while(e.hasMoreElements()){String str = e.nextElement();out.println(str+"="+request.getParameter(str));}10. 从request作用域提取多个值使用request作用域内的getParameterValues方法,请注意:选择项的名字必须相同,否则无法同时得到多个值<form action="*.jsp">个人爱好:<br><input type="checkbox" name="love" value="sport">体育<BR><input type="checkbox" name="love" value="finance">财经<BR><input type="checkbox" name="love" value="news">新闻<BR><input type="radio" name="sex" value="male" checked>男<input type="radio" name="sex" value="female">女<input type="submit"></form>//得到多个值String[] loves = request.getParameterValues("love");for(String str:loves){out.println(str);}for(int i=0,i < loves.length(),i++){String item=items.get(i);}String strSex = request.getParameter("sex");out.println(strSex);11. 请求分发器RequestDispatcherRequestDispatcher类表示一个请求的分发器,其效果等同于jsp:forward标签方法: request.getRequestDispatcher("P.jsp").forward(request,response);和jsp:forward相同的是,该分发器转向后的request和源页面中的request为同一个.二、典型问题1. JSP如何处理HTML FORM中的数据?通过内置的request对象即可,如下:<%String item = request.getParameter("item");int howMany = new Integer(request.getParameter("units")).intValue();%>2. JSP能进行递归调用吗?当然可以,如对form的提交给本页3. 在JSP如何包含一个静态文件?静态包含如下:<%@ include file="copyright.html" %>动态包含如下:<jsp:include page="copyright.html" />在JSP中可以使用如下方式包含纯HTML:<!--#include file="data.inc"-->4. 能象调用子程序一样调用JSP吗?当然可以,用<jsp:include page="relativeURL" flush="true"/>5. 在JSP中如何使用注释?主要有四中方法:1。

JSP课堂笔记

JSP课堂笔记
b)提交的方式 :method="get" 显式传参
get:url传参数,中文会出现乱码
解决方法://解决url传参数带有中文的乱码的解决方法
String abc=new String(request.getParameter("abc").getBytes("ISO-8859-1"),&#服务器上的脚本 。Linux+mysql+Php(最佳组合)
actionscript:flash flex技术
带宽的问题。
c/s:client/server,对于一些实时性比较强
b/s:brower/server,对于维护方便,版本又一停更新的
(ADDRESS = (PROTOCOL = TCP)(HOST = onest)(PORT = 1521))
)
)
扩展:poi 读取word,Excel,ppt文件内容,下载poi jar包 难度适中
jfreeChat 用来显示图表信息,做一些报表。
number的转化:
<fmt:formatNumber value="1234567890" type="number"></fmt:formatNumber><br/>
传参数:有限制,限制2KB
c)method="post"
传参数是没有限制,就安全性来说 ,会比较安全,隐式的传参
3)out:向页面输出html,文本
4)session:用来存储有关用户会话的所有信息,保存在服务器中
5)application:类似于系统的“全局变量”,用于实现用户之间的数据共享,保存在服务器中

JSP学习笔记

JSP学习笔记

1.JSP的基本语法变量和方法的申明放在<%!与%>之间<%!Int x,y=100,z;String tom=null, jerry=”love JSP”;Date date;%><%!和%>之间声明的变量在整个JSP页面都有效使用include 静态包含文件(在同一目录)<%@include file=”a.html”%>JSP动作标签使用include 动态包含文件(可在不同目录)<jsp:include page=”a.html”>包含文件乱码<%@include file="relativeURL"%>include 指令为静态包含。

所包含的文件,也必须设置contentType 或pageEncoding所以,要在被包含文件开头处中加入<%@page contentType="text/html;charset=gb2312"%>或者<%@page pageEncoding="gb2312"%>我们可以使用 out.print("one"); 在浏览器上输出内容,比较运算时等于用==不等于用!=字符串查找String str=”abc”int index= str.indexof(“b”)类型转换int a=10;String b=String.valueOf(a);out.print(b);数据类型基本类型有以下四种:int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、float长度数据类型有:单精度(32bits float)、双精度(64bits double)boolean类型变量的取值有:ture、falsechar数据类型有:unicode字符,16位对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long转换原则从低精度向高精度转换byte 、short、int、long、float、double、char注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换基本类型向类类型转换正向转换:通过类包装器来new出一个新的类类型的变量Integer a= new Integer(2);反向转换:通过类包装器来转换int b=a.intValue();类类型向字符串转换正向转换:因为每个类都是object 类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可反向转换:通过类包装器new出一个新的类类型的变量eg1: int i=Integer.valueOf(“123”).intValue()说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。

JSP学习笔记之基础语法

JSP学习笔记之基础语法

JSP学习笔记之基础语法jsp页⾯元素构成jsp页⾯组成部分有:指令,注释,静态内容,表达式,⼩脚本,声明。

jsp指令page指令:通常位于jsp页⾯的顶端,同⼀个页⾯可以有多个page指令include指令:将⼀个外部⽂件嵌⼊到当前jsp⽂件中,同时解析这个页⾯中的jsp语句taglib指令:使⽤标签库定义新的⾃定义标签,在jsp页⾯中启动⾃定⾏为page指令语法<%@page属性1="属性值" 属性2="属性值1,属性值2" 属性n="属性值n"%>jsp注释在jsp页⾯的注释。

HTML的注释:<!--html注释--> //客户端可见jsp的注释:<%--html注释--%> //客户端不可见jsp脚本注释://单⾏注释/**/多⾏注释jsp脚本在jsp页⾯中执⾏的java代码语法:<%java代码%>jsp声明在jsp页⾯中定义变量或者⽅法语法:<%!java代码%>jsp表达式在jsp页⾯中执⾏的表达式语法:<%=表达式%> //注意:表达式不以分号结束jsp页⾯的⽣命周期JSP的⽣命周期分为四个主要阶段是⾮常相似的Servlet的⽣命周期,并有如下⼏要点:JSP 编译:当浏览器请求⼀个JSP,JSP引擎⾸先检查它是否需要编译页⾯。

如果页⾯从来没有被编译,或者如果JSP已经被修改,因为它是最后⼀个编译JSP引擎编译的页⾯。

编译过程包括三个步骤:•解析JSP。

•打开JSP成servlet。

•编译这个servlet。

JSP初始化:当⼀个容器加载⼀个JSP它的任何服务请求之前调⽤jspInit()⽅法。

如果您需要执⾏JSP特定的初始化JSP 执⾏:JSP的⽣命周期的这个阶段代表请求的所有交互,直到JSP被破坏。

当浏览器请求⼀个JSP与页⾯已经被加载并初始化时,JSP引擎调⽤JSP中的_jspService() ⽅法。

Java相关课程系列笔记之10JSP学习笔记(建议用WPS打开)

Java相关课程系列笔记之10JSP学习笔记(建议用WPS打开)

JSP学习笔记Java相关课程系列笔记之十笔记内容说明JSP(程祖红老师主讲,占笔记内容100%);目录一、JSP基础 (1)1.1什么是JSP (1)1.2为什么要使用JSP (1)1.3 JSP与Servlet的关系 (1)1.4如何写一个JSP文件 (1)1.5 JSP是如何运行的 (1)1.6隐含对象 (2)1.7指令 (2)1.8 JSP注释 (3)1.9案例:创建emplist.jsp页面,将表示逻辑交给JSP处理 (3)二、JSP标签和EL表达式 (4)2.1什么是JSP标签 (4)2.2 JSTL及其使用 (4)2.3什么是EL表达式 (4)2.4 EL表达式的使用 (4)三、JSTL中的几个核心标签 (7)3.1 if (7)3.2 choose (7)3.3 forEach (7)3.4 url (8)3.5 set (8)3.6 remove (8)3.7 catch (8)3.8 import (8)3.9 redirect (8)3.10 out (8)3.11 JSP标签是如何运行的 (8)3.12案例:将员工列表中的Java代码改为JSP标签,并添加分页 (9)四、自定义标签 (10)4.1如何写一个自定义标签 (10)4.2 JavaEE5.0中,如何使用EL表达式和JSTL (10)4.3案例:自定义标签 (10)4.4案例:修改之前员工列表中的日期显示 (11)五、MVC (13)5.1什么是MVC (13)5.2使用MVC的目的 (13)5.3如何使用MVC来开发一个Web应用程序(JavaEE) (13)5.4 MVC的优缺点 (13)5.5案例:简易贷款(贷款数小于余额数*10) (13)5.6修改5.5案例,使用户无法直接访问view.jsp页面 (15)1一、JSP基础1.1什么是JSPJSP(Java Server Page)是Java服务器端动态页面技术。

JSP语法以及其他相关知识点笔记

JSP语法以及其他相关知识点笔记

JSP技术通过以上的案例发现Servlet做为一个动态网页开发技术太不靠谱。

尤其是需要编写一个页面的时候,需要指定页面的模板标签、还要处理很多的业务逻辑。

因此比较繁琐。

思考:Servlet为什么写一个页面那么吃力?主要的原因在于Servlet实在java中写标签。

鉴于以上的原因那么SUN提供了动态网页开发技术之JSP。

JSP即Java Server Page。

可见JSP本身是页面,那么在页面那种编写HTML标签应该非常轻松。

◆JSP体验<body>system date: <%=new java.util.Date() %></body>总结:1.servlet就是在java中写html比较烦,servlet是做获取参数并请求转发。

2.jsp就是html中写java比较烦,jsp主要是显示数据。

JSP运行原理JSP本质是一个Servlet只不过这个Servlet更加善于编写页面。

JSP语法学习JSP应该从以下几个方面学习:◆JSP模板元素JSP是在HTML中写java代码,那么JSP中最基本的是HTML元素。

我们将这些元素称之为JSP的模板元素。

◆JSP输出表达式JSP表达式主要用于输出变量以及输出表达式。

语法:<%= 表达式%>表达式后面不能有分号。

举例1:输出一个表达式。

2>1 = <%= 2>1 %><br/><%=page %><br/>运行结果2>1 = trueorg.apache.jsp.index_jsp@1135cd9总结:所有的JSP页面中的输出表达式会被翻译在java类中的_jspService()并使用out.write()方法进行了封装。

该输出表达式还可以输出变量,但是当前需要先定义一个变量。

JSP脚本JSP脚本主要用于定义局部变量和编写JAVA业务代码。

语法:<% JAVA代码%>举例1:使用JSP脚本定义变量。

JSP学习笔记

JSP学习笔记

JSP学习笔记(一)-----概述1.JSP是Java Server Pages的简写。

2.用JSP开发的Web应用是跨平台的.3.JSP技术是Servlet技术的扩展。

Servlet是平台无关的,100%纯Java的Java服务端组件。

4.下面就是一个简单的JSP页面:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD><BODY><H1>欢迎</H1><SMALL>欢迎,<!-- 首次访问的用户名字为"New User" --><% out.println(Utils.getUserNameFromCookie(request)); %>要设置帐号信息,请点击<A HREF="Account-Settings.html">这里</A></SMALL><P>页面的其余内容。

.</BODY></HTML>5.下面是JSP 和其他类似或相关技术的一个简单比较:1).JSP和Active Server Pages(ASP)相比Microsoft的ASP是一种和JSP类似的技术。

JSP和ASP相比具有两方面的优点。

首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。

第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。

2).JSP和纯Servlet相比JSP并没有增加任何本质上不能用Servlet实现的功能。

但是,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。

更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。

jsp课堂笔记

jsp课堂笔记
!!(3)JSP脚本片段:<% 若干java语句 %> 在翻译过来的Servlet中,原样复制粘贴到对应的位置上执行.
一个jsp中可以有多个脚本片段,多个脚本片段之间可以互相访问.
一个jsp脚本片段中的java代码可以是不完整的,但是所有脚本片段组合在一起必须是完整的.
(4)JSP声明:<%! 若干java语句%> 在翻译过来的Servlet中会放置在和service方法同级的位置成为了类的一个成员.
!!session='true|false' 设置翻译过来的servlet中是否有自动生成session,如果当前jsp用不到session,可以设置为false,防止乱生成session造成空间浪费
!!errorpage='' 设置友好错误提示页面,当当前jsp页面抛出异常时,转发到友好错误提示页面做提示
public ng.Object getAttribute(ng.String name,int scope)
public void removeAttribute(ng.String name,int scope)
PageContext.APPLICATION_SCOPE
<exception-type>ng.Throwable</exception-type>
<location>/error/500.jsp</location>
</error-page>
!isErrorPage='' 默认值是false ,可以在错误提示页面中设置为true,则在翻译过来的Servlet中会多出一个exception的对象,这个对象代表的就是前一个页面抛出的异常

JSP课堂笔记

JSP课堂笔记

JSP详解JSP JSP (1)1、JSP (2)2、怎么写JSP (2)3、JSP的组成 (2)1)、HTML (2)2)、JAVA代码 (2)3)、指令 (2)4)、隐含对象 (3)5)、活动元素(A CTION E LEMENT) (3)6)、注释 (4)4、.JSP文件转换成.JAVA文件 (4)5、转发 (4)1)、什么是转发 (4)2)、编程 (5)3)、转发要注意的问题 (5)4)、转发的特点 (5)5)、转发与重定向的区别 (5)6、路径问题 (5)1)、相对/绝对路径 (6)2)、怎样写绝对路径 (6)7、JSTL与EL表达式 (6)1)、JSTL是什么 (6)2)、标签是什么 (6)3)、EL表达式是什么 (6)4)、EL表达式的基本语法 (6)A、访问bean的属性 (6)B、访问请求参数 (7)C、计算表达式的值 (7)5)、JSTL核心标签的使用 (7)8、EL函数 (9)1)、EL函数 (9)2)、怎么使用 (9)3)、自定义EL函数 (9)4)、自定义标签 (9)JSP详解1、jspjava server page(java服务器端页面技术)sun公司制定的一种服务器端动态页面生成技术规范。

因为直接使用servlet生成动态页面过于繁琐,而且难以维护,所以,jsp出现了。

2、怎么写JSP只需要写一个以.jsp为后缀的文件,文件包含的内容,主要是html以及少量的java代码。

Jsp文件不需要去编译,当请求到达服务器,由服务器将.jsp文件转换成.java 类(该java类就是servlet)。

然后执行servlet的service()方法(当然,在执行之前,会先编译,然后构成相应的实例)。

3、jsp的组成1)、htmlhtml(包括html标记、文本、css样式、javascript),直接写在.jsp的文件里就行了。

2)、java代码A、java代码片段:语法:<%java代码%>B、jsp表达式语法:<%=java代码%>C、jsp声明语法:<%! java代码%>3)、指令JSP引擎文件(容器中的一个特定模块)负责将.jsp文件转换成.java文件。

jsp精简笔记

jsp精简笔记
12、forward动作标签:<jsp:forward page="要转向的页面" ></jsp:forward> <jsp:forward page="要转向的页面" />
从该指令处停止当前页面的继续执行,而转向其它的一个JSP 页面。
13、plugin动作标签:指示JSP 页面加载java plugin,该插件由客户负责下载,并使用该插件来运行Java applet。
属性:language="java" session="true" buffer="8kb" auotFlush="true" isThreadSafe="true" info="we are students"--getServletInfo();
默认import:" ng.*"、 "javax.servlet.*" 、"javax.servlet.jsp.*"、"javax.servlet.http.*"
(2)获取文件的属性
1. public String getName():获取文件的名字。
2. public boolean canRead():判断文件是否是可读的。
3. public boolean canWrite():判断文件是否可被写入。
4. public boolean exits():判断文件是否存在。
(1) public void setAttribute(String key ,Object obj)
(2) public Object getAttibue(String key)

Jsp&Servlet笔记

Jsp&Servlet笔记

第一章认识JSP第二章JSP基础语法1.page指令介绍Language:用来定义要使用的脚本语言contentType:定义jsp字符的编码和页面响应的MIME类型pageEncoding:jsp页面字符编码include:用于指定包含另一个页面taglib:用于定义和访问自定义标签2.Scriptlet标签通过Scriptlet标签,我们可以在jsp里嵌入java代码;1)<%!%> 定义全局变量,方法,类2)<%%> 定义局部变量,编写语句3)<%=%> 输出一个变量,或一个具体的值3.Jsp注、注释<!-- -->html注释,客户端可见<%-- --> jsp注释,客户端不可见//java单行注释/* */java多行注释4.Jsp包含指令<%@ include file=”要包含的文件” %> 静态包含:先包含,后编译处理<jsp:include page=”要包含的文件” %> 动态包含:先编译处理,后包含5.Jsp7个动作指令jsp:forward:执行页面跳转,将请求的处理转发到下一个页面jsp:param:用于传递参数jsp:include:用于手动引入一个JSP页面jsp:pluign:用于下载javaBean或applet到客户端执行jsp:useBean:创建一个javaBean实例jsp:setPorperty:设置javaBean实例的属性值jsp:getPorperty:输出javaBean实例的属性值6.Jsp跳转指令<jsp:forward><jsp:forward value=”” name=””></jsp:forward>服务器内跳转,可带参数第三章jsp九大内置对象及四个作用域1.jsp九大内置对象及四大作用域概述在jsp开发中,jsp提供了9个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可,这9个内置对象分别是:pageContext,request,response,session,config,out,oage,exception,application,常用的是前5个。

javascript基础知识笔记.doc

javascript基础知识笔记.doc
方法只有一个参数:新建文本节点所包含的文本字符冷.新元素节点不会自 动添加到文档里
10.为元素节点添加子节点:
1). appendChild(): van reference =
element .appendChild(newChild):给定子节点newChild将成为给定元素 节点element的最后一个子节点.
/**
*将newChild插入到refChild的后边
*@param (Object} newChild
*@param (Object} refChild
*/
function insertAfter(newChildJrefChild)(
var refParentNode = refChild.parentNode;
van cityNode = document.getElementById("city"); alert(cityNode);
};
</script>
</head>
<body>
3.如何来获取元素节点:
1). **document. getElementByld:根据id属性获取对应的单个节点
2)・**document.getElenientsByTagName:
}
4.获取属性节点:
1).**可以直接通过cityNode.id这样的方式来获取和设置属性节点的 值
2).通过元素节点的getAttributeNode方法来获取属性节点'
然后在通过nodeValue来读写属性值
〃读写属性节点:通过元素节点.的方式来获取属性值和设置属性值.
彳弋石马:window.onload = function()(

韩顺平jsp笔记(个人总结版)

韩顺平jsp笔记(个人总结版)

第一、二、三课
jsp入门
jsp原理
jsp声明<%! %> 在这里面声明的变量是全局变量<% %>在这里面声明的变量是局部变量
注释:
<%-- -- % > <%// % > <%/* */ % > 表达式:
<%= %>
九大内置对象
jsp 语法
1.指令元素(编译指令)
①page指令
pl:<%@page language="java"import="java.util.*"pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
常用的属相有import,contentType,errorPage,isErrorPage
②include 指令
<%@include file="路径"%>
Ps:路径是相对路径。

由于该方法引来的页面会和当前页编写成一个serlet文件,所以被引页和当前页的页面编码得相同。

③taglib指令
(略)
2.脚本元素
<%=java表达式%>
<% java代码//int i = 10 局部变量%>
<%! int j = 20 // 全局变量%>
3.动作元素(运行指令)
ps:<jsp:include page=”” /> 上面的错了。

JSP笔记

JSP笔记

JSP(Java Server Page)之迟辟智美创作JSP是服务器端运行的页面,JSP本就是一个文档,他不单可以包括静态的HTML代码,也可以包括静态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求.Jsp文件只需放在应用文件下就可以了.JSP例子:<html><head><title>time</title></head><body><h1><%=newjava.util.Date()%></h1></body></html>JSP运行过程在Tomcat下的conf目录中的web.xml是服务器全局的配置文件,其中要想关闭列表显示叫要把<init-param> <param-name>listings</param-name> <param-value>false</param-value></init-param>Tomcat的管理员设置<tomcat-users><role rolename="manager" description=""/><role rolename="admin"/><!--设定角色的名字,admin是管理员,manager是项目管理--><user username="manager" password="123" roles="manager"/><!--设定用户名密码,和角色--><user username="admin" password="123" roles="admin"/></tomcat-users>JSP的特点1,JSP不需要编译2,JSP不需要进行配置3,JSP实质上就是一个Servlet4,JSP是以静态页面为主的.JSP的语法格式<%=...%>表达式,写表达式时不要加上分号,表达式,翻译成Java代码也就是直接使用流输出,也就不能加分号了.<%! int a=0; %>声明,使用声明的变量,所创立的变量是在service方法体外,也就是翻译成实例变量,声明也可以声明内部类或者是方法的声明.<% if(a==0){ a=3;}%>代码片断,代码段会原样翻译.在代码段中声明的变量,就会被翻译的service的方法体中,也就是被翻译成局部变量.前三种JSP的语法也叫做JSP代码,以上的暗示方法,都有与之相对应的xml表达形式,因为可读性较差,所以较少使用.<%@ ... %>JSP指令<%@page import="...,..."%>引入包<%include file="...."%>直接引入内容,这些内容会直接嵌入到页面中. JSP的注释<%ment[<%=expression %>.--%>Eg.001:<JSP指令和JSP举措(标准的JSP标签)JSP指令的语法<%@... ....%><%@include file="...."%> 包括指令,包括指令会将要包括的文件代码原样输出到本页面(在翻译时把包括文件的内容引入并合并),不进行翻译,file属性制定要包括的文件的名字(注意要包括的文件的路径),这个指令可以实现页面的复用.注意:<%@include file=" "%>要包括的JSP文件中不能界说重名的变量,如果不使用包括指令,那么JSP中的最小转换单位就是JSP文件,使用了包括指令就会将多个jsp的结果合并到一起.<%@page ..%>页面指令<%@page import="..."%> 引入包例:<%@page import="java.util.*,ent.*"%>(可呈现屡次)<%@page pageEncoding="GBK"%>设定页面显示的字符集<%@page contentType="text/html;charset=GBK"%>设置输出流的编码方式和文件格式.注意:输出的字符集编码方式要和页面显示的字符集相同,一般界说输出流的编码方式,注意以上两个页面指令在JSP中最好只呈现一次.注意在请求中传送的参数的值是中文的话需要调用请求request的setCharacterEncoding("..")方法设置相应的编码方式,只适用于post 请求,也可以通过Servlet的Filter来进行中文编码方式的处置.<%@page language="java"%>指定JSP的脚本语言,现在只能写java <%@page extends=".."> 指定翻译后代码类型的父类,最好不要使用这个指令<%@page session="true|false"%>指定是否自动创立Session,最好不自己指定,使用默认值<%@page buffer=".." autoflush="true|false"%>设置输出的缓存和是否自动刷新缓存,一般情况下都使用默认值,缓存的默认值为8KB.<%@page isThreadSafe="true|false"%>是否线程平安,默认为true,也就是线程平安,只使用默认值.<%@page info=".."%>设置页面信息,一般不用<%@page errorPage=""%>指定异常处置页面<%@page isErrorPage="true|false"%>设定本页面就是异常后跳转的页面<%@taglib ..%> 标签库指令,用于引入自界说标签库JSP举措<jsp:... ...><jsp:include page="..." flush=true|false> include举措是在翻译和编译后运行时进行响应的合并,也就是对应了Servlet中RequestDispatcher类的include(ServletRequest request, ServletResponse response)方法.include举措可以传递参数<jsp:include page="test.jsp"><jsp:param name="user" value=" "></jsp:include>在使用参数时,可以用request内置对象来获取参数的值.<jsp:forward page="xxx/xxx.jsp">forward举措对应的是Servlet中RequestDispatcher类的forward(ServletRequest request, ServletResponse response)方法,也就是把请求进行转发.也可以写成<jsp:forward><jsp:attribute name="page">xxx/xxx.jsp</jsp:attribute></jsp:forward>这种写法等价于上面的写法.在使用Servlet的response的重定向sendRedirect(String location)方法在使用时要包括应用的路径,注意,重定向会放弃这个请求,并向服务器发送一个新的请求,可是响应对象还是一个.重定向是用来防止重复提交的.注意:对页面的刷新把持就会再一次运行法式,也就仿佛进行了再一次的提交一样,这也就是重复提交的问题,所以需要使用重定向来解决这个问题.<jsp:plugin type="bean|applet" code="...">...</jsp:plugin>jsp:plugin举措可以使页面上运行applet,或者是使用java代码.<jsp:useBean id="对象名" class="类全名"|type="类全名"(使用多态时使用) beanName="类全名" scope="page|request|session|application">jsp:useBean举措,可以通过这个举措来使用java代码,id就是变量名,clss和type的区别在于,使用type是不会创立对象,而只是会先查找如果有该对象就会使用,如果没有就会抛出异常,class在没有该对象存在时,则会创立新对象.scope是用来保管实例的空间范围,page、request、session、application,由小到年夜,默认为page.<jsp:setProperty name="对象名" property="属性名" value="属性值"/>直接指定Bean属性的值,必需类型一致.<jsp:setProperty name="对象名" property="属性名" param="from表单中的响应的参数名"/>用表单中指定的参数来为Bean属性赋值,系统会自举措类型转换.<jsp:setProperty name="对象名" property="属性名"/>用表单中和Bean属性同名的标单项来给Bean属性赋值,这样写只会为指定的属性赋值<jsp:setProperty name="对象名" property="*"/>这种方式会自动用表单中的同名参数来为Bean的所有属性赋值<jsp:setProperty name="对象名" property="属性名" value="<%= ...%>"/>使用表达式来为Bean的属性进行赋值<jsp:getProperty name="对象名" property="属性名">取得指定的属性,这个举措不经常使用,一般用表达式取代我们可以通过设置属性名的方法名也就是setXxxx()来控制属性的赋值,用form表单的参数为Bean的属性赋值时,系统会自动的调用与之同名属性的setXxxx()方法,尤其是日期类型,可以通过使用这一方法来处置.例:import java.sql.*;public class Person{private Srting name;private Date birthday;public void setName(String name){=name;}public void setBirthdayAsString(String birthday){this.setBirthday(valueOf(birthday));}public void setBirthday(Date birthdays){this.birthday=birthday;}}<jsp:useBean id="person" type="Person" scope="request"><jsp:setProper name="person" property="*"/></jsp:useBean><form action="xxx" methmod="post"><input type="text" name="name"><input type="text" name="birhtdayAsString"><input type="submit" value="add.jsp"></form>JavaBean和EJB的区别JavaBean是可视的或者是不成视的,不用布置,EJB是不成视的,需要布置到服务器中.JavaBean布置在应用法式中,EJB是布置在容器中,可以是有状态或者是无状态的,声明式事务.JavaBean的属性和方法是普通的,EJB是需要遵守规范,是需要通过标准的描述符来界说的.JavaBean是基于事件驱动的,EJB中只有消息驱动Bean是基于事件的注意:jsp:useBean举措,用表单为Bean的属性赋值时,也就是jsp:setProperty举措直接收请求中表单的信息为使用的Bean的属性进行赋值,也就是说jsp:useBean和jsp:setProperty不能够呈现在为这个Bean的属性赋值的form表单的页面上.JSP的异常处置<%@page errorPage="xxx.jsp"%> 指定本页面呈现异常后要转到的页面<%@page iserrorPage="true"%> 见本页面指定为异常处置页面,也就是其他出异常的页面可以指定本页面为要转到的异常处置页面.处置异常运行时异常1) 一个法式运行时重获的毛病;2) 能被一固有的异常对象引用所使用;3) 可以利用异常引用创立或发生一个JSP页面显示异常信息给用户.创立一个异常跟踪方案1) 在每一个JSP页面,包括要创立的异常页面名称;<%@page import="numberguess.NumberGuessBean" errorPage="error.jsp"%>2) 创立一个异常页面;<%@page isErrorPage="true"%>JSP页面中的异常处置1) <%=exception.toString()%> 打印异常名称;2) <%exception.printStackTrace();%> 打印以后毛病流中所有毛病的列表;3) <%=exception.getMessage()%> 打印毛病的详细描述信息JSP中异常页面的布置描述<error-page><error-code>404</error-code><location>notFound.html</location></error-page><error-page><exception-type>ng.NumberFormatException</exception-page> <location>error.jsp</location></error-page>JSP隐含内置对象JSP中隐含内置对象名称类型注释和范围request javax.servlet.http.HttpServletRequest requestresponse javax.servlet.http.HttpServletResponse responsepage ng.Object pageException ng.Throwable pagepageContext javax.servlet.jsp.PageContext pagesession javax.servlet.http.HttpSession sessionapplication javax.servlet.ServletContext ServletContextout javax.servlet.jsp.JspWriter OutputStreamconfig javax.servlet.ServletConfig ServletConfig内置对象request(HttpServletRequest)1)封装了来自客户真个请求:2)方法:Parameter related methods:+getParameterNames():Enumberation 返回form中对象名称的枚举; +getParameter(String name):String返回指命名称的对象值;+getParameterValues(String name):String[ ] 返回指命名称的对象值数组;+getParameterMap():MapAttribute related methods:+setAttribute(String name,Object value):void 设置属性+getAttribute(String name):Oject 返回属性值;+removeAttribute(String name):void+getAttributeNames():Enumberation 返回属性名称URL related methods:+getContextPath():String+getServletPath():String+getPathInfo():StringState related methods:+getCookies():Cooie[ ] 取得Cookie数组;+getSession():HttpSession+getSession(Boolean create):HttpSession内置对象response(HttpServletResponse)+getWriter():PrintWriter+addCookie(Cookie c):void+encodeURL(String URL):String+sendRedirect(String URL):void+sendError(int errorCode):void内置对象session(HttpSession)+setAttribute(String name,Object value):void 设置属性+getAttribute(String name):Oject 返回属性值;+removeAttribute(String name):void+getAttributeNames():Enumberation 返回属性名称Other motheds:+seMaxInactiveInterval(int seconds):void Invalidate():void内置对象pageContext(PageContext)+setAttribute(String name,Object value):void 设置属性+getAttribute(String name):Oject 返回属性值;+removeAttribute(String name):void+getAttributeNames():Enumberation 返回属性名称+findAttribute(String name):ObjectOther motheds:+getRequest():HttpServletRequest+getSession():HttpSession+getServletContext():ServletContext+getOut():JspWriter内置对象application(ServletContext)+setAttribute(String name,Object value):void 设置属性+getAttribute(String name):Oject 返回属性值;+removeAttribute(String name):void+getAttributeNames():Enumberation 返回属性名称Other methods:+getRequstDispather(String URL):RequestDispather +getInitParameter(String name):String内置对象out1)JSPWriter的一个实例, 用于发送响应给客户端2)方法:print(String)/println(String) 用于向页面输出print(int)/println(int)flush() 刷新out对象的缓存内置对象exception1) 用于异常对象的异常实例;2) 异常页面在page指令中存在属性 isErrorPage="true";3) 方法:getMessage()/printStackTrace()/toString()内置对象session1) HttpSession的一个实例, 用于来维护session的状态2) 方法:getAttribute(String name)/setAttribute(String name)取得设置的属性的对应资源/设置属性的对应资源removeAttribute(String name)删除属性和队应资源getAttributeNames()返回值是一个迭代器,可以获得session中设置的属性的名字也就是在set时使用的与资源对应的那个名字内置对象application1) ServletContext一个实例,用来维护application的状态2) 方法:getAttribute()/setAttribute() 和session以及request中的那一对设置属性及其对应资源的方法getInitParameter()获得初始化参数getServletInfo() 获得Servlet的信息3) application的作用域比session年夜很多,一个session和一个client 联系, 而application坚持了用于所有客户真个状态.注意:如果要保管的数据量比力年夜时,就要使用生命周期比力短的request对象,page对象只在本页面中有效,也就是会再翻译后的service方法体内的一个局部变量,service运行结束后就会销毁,不像request可以转发.session和application的生命周期都比力长而且作用域比力年夜.JSP自界说标签(tag)什么是自界说标签?1,用户自界说的Java语言元素, 实质是运行一个或者两个接口的JavaBean;2,可以非常紧密地和JSP的暗示逻辑联系在一起,又具有和普通JavaBean相同的业务逻辑处置能力;3,当一个JSP页面转酿成servlet时,其间的用户自界说标签转化为把持一个称为标签hander的对象;4,可把持默认对象,处置表双数据,访问数据库以及其它企业服务;自界说标签库的特点1,通过调用页面传递参数实现定制;2,访问所有对JSP页面可能的对象;3,修改调用页面生成的响应;4,自界说标签间可相互通信;5,在同一个JSP页面中通过标签嵌套,可实现复杂交互.如何使用自界说标签库1,声明标签库2,使标签库执行对Web应用法式可用声明标签库1,使用taglib指令声明标签库2,语法:<%@taglib uri="URI" prefix="pre" %>注意:a. uri属性可以是绝对的,也可以是相对URL,该URL指向标识表记标帜库描述符(TLD)文件;b. uri属性也可以是一个其实不存在的URL,该URL为web.xml文件中将标识表记标帜库描述符(TLD)文件的绝对URL到本地系统的一个映射;3,范例:<%@taglib uri="/WEB-INF/template.tld" prefix="test" %> <%@taglib uri="/jstl/core" prefix="core" %>使标签库执行可用方式一:在WEB-INF/classes目录下布置标识表记标帜处置法式类;方式二:将标识表记标帜处置法式类打包成jar文件并置于WEB-INF/lib目录.几种典范的标签1,不带属性和主体的简单标签:<mytaglibs:SomeTag/>;2,不带主体但有属性的标签:<mytaglibs:SomeTag user="TonyDeng"/>; 3,带有主体和属性的标签:<mytaglibs:SomeTag user="TonyDeng">...// 标签体</mytaglibs:SomeTag>;注意:a. 属性列于start tag中,它是在标识表记标帜库描述符(TLD)文件中指定,服务于标识表记标帜库的自界说行为;b. 标签体位于start tag和end tag间,可以是任何合法的JSP内容或者标签;界说标签1,开发实现tag的类(tag handler);2,编纂标识表记标帜库描述符(TLD)文件;3,在web.xml中为标识表记标帜库描述符(TLD)文件的绝对URL建立一个映射(该步伐可选);标识表记标帜库描述符(TLD)文件1,一个描述标识表记标帜库的XML文件;2,内容开始是整个库的描述,然后是tag的描述;3,标识表记标帜库描述符(TLD)文件用于Web Container确认tag以及JSP页面发展工具;实现tag的类(标签处置器)(tag handler)1,是一些在引用了标签的JSP页面执行期间被Web Container调用以求自界说标签值的对象;2,必需实现Tag, SimpleTag和BodyTag之一;3,可以继承TagSupport和BodyTagSupport之一.标签库的接口和类的继承关系接口的继承关系:☉ interface javax.servlet.jsp.tagext.JspTag☉ interface javax.servlet.jsp.tagext.SimpleTag☉ interface javax.servlet.jsp.tagext.Tag☉ interface javax.servlet.jsp.tagext.IterationTag☉类的继承关系:☉ class javax.servlet.jsp.tagext.TagSupport(implements javax.servlet.jsp.tagext.IterationTag, java.io.Serializable) ☉ class javax.servlet.jsp.tagext.BodyTagSupport(implements javax.servlet.jsp.tagext.BodyTag)☉ class javax.servlet.jsp.tagext.SimpleTagSupport(implements javax.servlet.jsp.tagext.SimpleTag)(Interface)JspTag||ˉˉˉˉˉˉˉˉ|(Interface) (Interface)JSP2.0Tag SimpleTag ←--SimpleTagSupport||(Interface)IterationTag←--TagSupport支持迭代的标签 || || |(Interface) |BodyTag ←---BodyTagSupport可以处置标签体自界说标签的开发步伐tld文件中的配置<tag><name>loop</name><tag-class>com.tag.LoopTag</tag-class><body-content>jsp</body-content><!--设定自界说标签体内的内容,可以置为empty,也就是只能写空标签--><attribute><name>counter</name><!--配置自界说标签的属性名--><required>true</required><!--配置属性是否必需呈现--><rtexprvalue>true</rtexprvalue><!--允许使用表达式作为属性的值--> <type>int<type><!--配置属性的类型--></attribute></tag>简单的标签处置法式类1,必需实现Tag接口的doStartTag()和doEndTag()方法;2,因为不存在Body,doStartTag()方法必需返回SKIP_BODY;3,如其余页面要执行,doEndTag()方法返回EVAL_PAGE, 否则返回SKIP_PAGE;4,对每一个标签属性,你必需在标签处置法式类里界说一个特性以及get和set方法以一致于JavaBeans 体系惯例带Body的自界说标签1,必需实现Tag接口的doStartTag()和doEndTag()方法;2,可以实现IterationTag接口的doAfterBody()方法;3,可以实现BodyTag接口的doInitBody和setBodyContent方法;4,doStartTag方法可以返回SKIP_BODY、EVAL_BODY_INCLUDE、或者EVAL_BODY_BUFFERED(当你想使用 BodyContent);5,doEndTag方法可以返回SKIP_PAGE或EVAL_PAGE;6,doAfterBody方法可以返回EVAL_BODY_AGAIN, SKIP_BODY;界说脚本变量的标签(迭代标签)1,界说脚本标签的二个步伐:. 在标识表记标帜库描述符(TLD)文件中列明脚本变量;. 界说标签扩展信息类(TEI)而且在TLD文件中包括这个类元素(tei-class);2,变量必需在标签处置法式类中使用pageContext.setAttribute()方法设置;3,标签扩展信息类(TEI)必需继承TagExtraInfo以及覆盖getVariableInfo()方法;4,变量的范围可以是AT_BEGIN, NESTED, AT_END(标签扩展信息类(TEI)的VariableInfo中界说)之一;脚本变量的有效性变量 | 有效性---------------------------------------NESTED | 标签中的参数在starttag到endtag之间是有效的AT_BEGIN | 标签中的参数在标签的开始到JSP页面结束是有效的AT_END | 标签中的参数在标签的结束到JSP页面结束是有效的Tag接口的方法------------------------------------------------------+EVAL_BODY_INCLUDE:int+EVAL_PAGE:int//继续执行页面+SKIP_BODY:int//跳出标签体+SKIP_PAGE:int//跳出页面,也就是整个JSP不会再运行------------------------------------------------------+release():void+setParent(javax.servlet.jsp.tagext.Tag):void+doEndTag():int+doStartTag():int+setPageContext(javax.servlet.jsp.PageContext):voidTag的生命周期1,setPageContext(javax.servlet.jsp.PageContext):void2,setParent(javax.servlet.jsp.tagext.Tag):void3,setAttribute:void4,doStartTag():int5,doEndTag():int6,release():voidBodyTag和Tag接口的关系------------------------------------------+EVAL_BODY_AGAIN:int//继续执行标签体-----------------------------------------+doInitBody():void+setBodyContent(javax.servlet.jsp.tagext.BodyContext):void+doAfterBody():intBodyTag的处置过程1,setPageContext(javax.servlet.jsp.PageContext):void2,setParent(javax.servlet.jsp.tagext.Tag):void //设置此标签的父标签,也就是上一层标签3,setParent()4,doStartTag():int5,setBodyContent(javax.servlet.jsp.tagext.BodyContent):void//设置方法体6,doInitBody():void//7,doAfterBody():int/* 这个方法会被不竭的调用直到不再满足条件,通过这个方法来控制返回,从而控制循环是否中断SKIP_BODY是跳出标签体的,EVAL_BODY_INCLUDE是继续执行标签体,通过返回这两个值来控制循环是否*/8,doEndTag():int9,release():voidSimpleTag接口的方法------------------------------------------+doTag():void+getParent():JspTag+setJspBody(JspFragment jspBody):void+setJspContext(JspContext pc):void+setParent(JspTag parent):voidSimpleTage接口的生命周期(JSP2.0的自界说标签接口)1,new:每次遇到标签,容器构造一个SimpleTag的实例,这个构造方法没有参数.和红典的标签一样, SimpleTag不能缓冲,故不能重用,每次都需要构造新的实例.2,setJspContext()、setParent(): 只有这个标签在另一个标签之,才调用setParent()方法;3,设置属性:调用每个属性的setter方法;4,setJspBody();5,doTag(): 所有标签的逻辑、迭代和Body计算,都在这个方法中; 6,return例:package com.tag;public class HelloTag implements Tag{private PageContext pageContext;private Tag parent;public HelloTag(){super();}/***设置标签的页面的上下文*/public void setPageContext(final PageContext pageContext) { this.pageContext=pageContext;}/***设置上一级标签*/public void setParent(final Tag parent) {this.parent=parent;}/***开始标签时的把持*/public int doStartTag() throws JspTagException{return SKIP_BODY; //返回SKIP_BODY,暗示不计算标签体 }/***结束标签时的把持*/public int doEndTag() throws JspTagException{try{pageContext.getOut().write("Hello World!你好,世界!");}catch(java.io.IOException e){throw new JspTagException("IO Error: " + e.getMessage());}return EVAL_PAGE;}/***release用于释放标签法式占用的资源,比如使用了数据库,那么应该关闭这个连接.*/public void release() {}public Tag getParent(){return parent;}}<?xml version="1.0" encoding="ISO-8859-1" ?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tag><description>Extends TagSupport</description><name>hello</name><tag-class>com.tag.HelloWorldTag</tag-class><body-content>jsp</body-content></tag></taglib><web-app><taglib-uri>/xxx</taglib-uri><taglib-location>/WEB-INF/tlds/xxx.tld</taglib-location></web-app><%@ taglib uri="/xxx" prefix="mytag" %><%@ page contentType="text/html; charset=gb2312" %><html><head><title>first cumstomed tag</title></head><body><p>以下的内容从Taglib中显示: </p><p><i><mytag:hello_int/></i><br><p><mytag:hello_int></mytag:hello_int></body></html>JSP2.0中的表达式语言(EL表达式)EL语法EL的语法很简单,他最年夜的特点就是使用上很方便例:${er.sex}所有EL都是以 ${ 为起始、以} 为结尾的.上述EL范例的意思是:从Session取得用户的性别.如果使用之前JSP 代码的写法如下:<%User user = (User)session.getAttribute("user");String sex = user.getSex( );%>两者相比力之下,可以发现EL的语法比传统JSP代码更为方便、简洁. EL提供 . 和 [ ] 两种运算符来存取数据,[ ]可以访问集合或者是数组的元素、Bean的属性.下列两者所代表的意思是一样的,可是需要保证要取得对象的那个的属性有相应的setXxx()和getXxx()方法才行.例:${er.sex}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5)、useBean 动作标记
该标记用来创建并使用一个Javabean,是非常重要的一个动作标记,我们将在第4章详细讨论。Sun公司的倡导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部分,实现真正意义上的静态和动态分离。
3)、JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
4)、JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
二、jsp语法
1、JSP页面的基本结构
一、jsp简介
1)、JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
2)、JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
5. JSP中的注释
1)、 HTML注释格式:
<!-- 注释内容 -->
2)、 JSP注释格式:
<%-- 注释内容 --%>
6. JSP 指令标记
1)、page 指令标记
?? (5)、buffer 属性 内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。
例如: <%@ page buffer= “24kb” %>buffer属性的默认值是8kb 。buffer属性可以取值" none",设置out不使用缓冲区。
静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
3)、param动作标记
param标记以“名字—值”对的形式为其它标记提供附加信息. param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用。
page 指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。
可以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值
page 指令标记可以指定如下属性的值: contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding
JSP页面可由5种元素组合而成:
1)、 普通的HTML标记符;
2)、 JSP标记,如指令标记、动作标记;
3)、 成员变量和方法;
4)、 Java程序片;
5)、 Java表达式
2. JSP页面的成员变量和方法
3)、 多个客户请求一个JSP页面时 , Java程序片将被执行多次,分别在不同的线程中执行 。
4. Java表达式
1)、“<%=”和“%>”之间可以是一个Java表达式
2)、 表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示。
? (6)、autoFlush 属性 指定out的缓冲区被填满时,缓冲区是否自动刷新。
(7)、isThreadSafe 属性 用来设置JSP页面是否可多线程访问。
2)、 include 指令标记
如果需要在JSP页面内某处整体嵌入一个文件,就可以考虑使用include指令标记,其语法格式如下:
不允许两次使用page 指令给contentType属性指定不同的属性值
(2)、language属性 定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
为language属性指定值的格式: <%@ page language="java" %>
param动作标记语法格式: <jsp:param name= “名字” value= “指定给param的值”> 当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到include动作标记要加载的文件中去,
被加载的JSP文件可以使用Tomcat服务器提供的request内置对象获取include动作标记的param记
该指令的作用是:从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。 <jsp:forward page="要转向的页面" /> 或 <jsp:forward page="要转向的页面" > param子标记 </jsp:forward>
(3)、import 属性 该属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。
(4)、session 属性 用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性值是true。
1)、在JSP页面的标记符“<%!”和“%>”之间声明的变量称作JSP页面的成员变量
2)、JSP页面在“<%!”和“%>”之间声明定义 方法
3. Java程序片
1)、在“<%”和“%>”之间插入Java程序片
2)、 程序片中声明的变量称为JSP页面的局部变量
(1)、 contentType 属性值确定JSP页面响应的MIME(Multipurpose Internet Mail Extention)类型和JSP页面字符的编码。
例如: <%@ page contentType="text/html;charset=GB2312" %>
<%@ include file= "文件的URL " %>
如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。
相关文档
最新文档