JAVA培训总结资料_第1页
JAVA培训总结资料_第2页
JAVA培训总结资料_第3页
JAVA培训总结资料_第4页
JAVA培训总结资料_第5页
已阅读5页,还剩57页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA培训总结

一、JAVAWEB应用开发2-

二、IDE(ECLIPSE)工具集成TOMCAT4-

三、SERVLET8-

1、Servlet生命周期8-

2、Servlet初始化8-

3、Servlet的值传递9-

四、JSP简介---10-

五、JSTL标签应用17-

六、练习20-

七、建模工具ROSE21-

1、用例视图21-

2、逻辑视图22-

八、聘请治理24-

九、数据源与连接池27-

十、人员治理模块31-

十一、软件需求规约34-

十三、JAVAWEB文件上传40-

十四、HIBERNATE入门-43-

十五、SPRING入门--52-

十六、AJAX58-

十七、B2C电子商场59-

1、设计所需文档-……59-

2、软件架构59-

3、B2c网上商城系统架构60-

一、javaWeb应用开发

开发javaWeb应用的步骤

1、猎取web服务器:我们使用的是免费的、开源的tomcat5.5

2、安装tomcat服务器

-解压tomcat压缩包到合适(非中文名目,名目中最好不要有空格)的名目

-配置环境变量JAVA_HOME(该环境变量名不区分大小写),因为tomcat是java语言编

写的;其次javaWeb程序里也有javaSe内容,因此tomcat要想正确解析Servlet,必定

依靠jre环境;JAVA.HOME的值确实是jre的根名目

-假如不配置JAVA_HOME环境变量那么tomcat无法正常启动

3、测试tomcat是否正确安装、配置

找到tomcat根名目下的bin名目中的startup.bat文件(windows系统);双击运行,显现如

下窗口

之后打开扫瞄器,输入xlocalhosl:8080回车运行,弹出如下窗口

表示tomcat正确安装。

4、预备开发环境

源文件的编写工具,html文件的编写工具;servlet-叩i.jar文件

配置classpath环境变量

5、在tomcat根名目下的webapps名目定义自己的web站点,比如"mywebroot,z

6、明确javaWeb应用的站点的名H结构

-mywebroot

-*.html文件|*.jsp|*.gif|*.png|*.jpg[差不多上可选操作]

-名目/*.html|*.jsp|*.gif|*.png|*.jpg[差不多上可选操作]

-WEN-INF[可选名目,假如是动态的javaWeb应用,必须有]

-classes[该名目也是可选的,假如有自定义的类,类要存放在当前名目下]

-lib[该名目也是可选的,假如有依靠的第三方类库(jar包),必须存放在该名目]

-web.xml[该文件也是可选的,假如要为自定义的Servlet注册,那么该文件必

须]

7、定义的Servlet要想使用默认的URL(协议:〃主机名:端口号/scrvlct/Servlet的完整类名)进

行访问,要起用默认的Servlet,起用方式是:找至I」tomcal根名目下的conf名目中的web.xml

文件,取消注释即可

<servlet>

<scrvlct-nainc>invokcr</ser\'lct-namc>

<servlet-class>

org.apache.catalina.servlets.InvokerServlet

</servlet-class>

<init-param>

<param-name>debug</param-naine>

<param-value>0</param-value>

</init-param>

<load-on-startup>2</load-on-star(up>

</servlet>

—>

<!-

<servlet-mapping>

<servlet-name>invoker</servlet-name>

<url-pattcrn>/scrvlct/*</iirl-pattcrn>

</servlet-mapping>

二、IDE(Eclipse)工具集成tomcat

一、纯手工开发javaWeb应用专门苦恼,我们为了提高开发效率因此需要借助IDE工具,

当我们使用IDE开发web应用时,需要web服务器,而一样IDE工具是没有集成tomcat

的

二、将Eclipse和tomcat进行绑定(集成)

1、安装Eclipse

2>安装tomcat

3、打开支持javaEE应用开发的Eclipse

jfxndo*

NewWindow

NewEditor

OpenPerspective

ShowView

CustomizePerspective...

SavePerspectiveAs...

ResetPerspective...

£los«Persptctivt

CloseAllPerspectives

Navigation

WebBrowser

£ref«rtnc«s

4、

f>11<rt<xtServerRuntimeEnvironments9.

⑷Con

Add.rcflove,oreditserverrxmtineenvironr»cn

田Ant点击add添加tomcat

S)D'CS«rv«rruntine«£ivironsi«nts

SHelp

Ms,TypeI~~Add...

♦Instill/Update

坦JavaIIgdit...j

田JavaEE

囹JAVA

囹

ffiKylyn|"arch.•

♦Pl«c-inDevelops<nt

田K«not«Systeris

由Run/Debu^

8Server

Audio

L^xmchmg

Profilars

iRuntimeEAvircffntnts:

5、Slles

ONerServerRuntiaeEnvironaentEj回区

NewServerRuntimeEnvironment

D«fin«an"arvorruntime^nvironn«ntg

Downl>adadditionalserver虱art虹s

Selectthwtypeoftuntimeenvironnent:

typefilttrtext

ZApacheToncatv3.2

:ApachoTomcatv4.0

ApacheTomcatv4.1

□ApacheTomcatv5.0

Apach«Toec.tv5.S;选择相应版本的tomcat

ApacheToncatv6.0

ApacheToncatv7.0

+6

*Basic

+

IBM

一6

土>>xz

+e

Objecdeb

+0

Oracle

ApacheToccatv55supportsJ2EE1.2,1.3,and1.4Webmodules

anevlocalserver勾选上I

I〈记gexI>]j[.ini.h][Cancel

6、

)Preferencesb回区

|t/pefiltertextServerRuntimeEnvironments<J=».

.GonerelA

Add,remog,oraditserverruntinacnvirowncntx.

aAnt

田DataMana^enentServerruntimeeaviroments:

£Help

tiInstall/Update

88Java

3JAVAEE

SJavaPersistence

±JgveScript

2Nylyn

3HPlujrinDevelopent

±iR«not«Syxt«ns

SRim/THiie

dServer

Audio

Launching

Profilers

RuntimeEnv.ronnci

国Te妍

7«rr»inAl

而Vsa^eDataCollector

Validation

)j|C>nc«l]

8、

项目构建区出现如上目录

9、

q®®

OKCscol

10、

II、

12、

三、Servlet

1、Servlet生命周期

一、明确:servelt实例是由Servler治理的(治理内容是:实例化和从server中移除,移除

后成为垃圾对象,垃圾对象必定会GC回收,回收印销毁)

二、默认情形下:Servlet在第一次被要求时才会初始化.即server构建Servlet实例

三、一个Servlet实例从无到有再到无的过程:

1、要求该Servlet时,构建实例,构建实例调用inii(ServletConfig)方法;在调用初始化

方法前要先构建ServlelConfig实例(该实例也是server构建的);

2、处理用户要求:server调用service(ServletRequcst,ServletResponse)方法处理用户要

求;该方法调用前也要先由server构建ServletRequest和ServletResponse实例;

3、假如server将Servlet从server中移除,那么会调用destroy方法。那么Servlet变成

垃圾对象,等待GC回收(销毁)。

四、假如Servlet是Servlet,它的处理要求的过程有所变化;即server调用

service(SeivlctRcquest,Ser\lctResponse)方法,该方法调用前也要先由server构建

SenietRequest和ServletResponse实例;service(ServlelRequest.ServlelResponse)方法调用

Senlet实例的service(ServletRequest,ServletResponse)方法,该方法调用前先构建

ServletRequestServleiResponse实例J;然后依照要求方式,service(ServletRequest,

ServletResponse)调用对应的doXxx方法1如过是GET要求调用doGet方法、假如是POST

要求,调用doPost方法);初始化和销毁方式不变。

2、Senlet初始化

一、依照不同的webserver,Servlet有时是在第一次要求时构建对象;有些server是一启动

时就会构建Servlet的实例;

二、尽管不同webserver关于Servlet的初始化会有所不同,但我们能够手动操纵Servlet的

初始化时刻;在对Servlet进行注册师,通过vload-on-startup>v/load-on-startup>指定初

始化时刻,该节点接收的是整型的值,0表示在server启动时就初始化Servlet实例;-1

值表示最晚初始化(第一次访问该Servlet时才初始化);正整数范畴内,数值越大,初

始化越晚(最晚晚到第•次访问时初始化):假如多个Servlet的<load-on-startup>的值

是一样的,那么随机初始化(即多个Servlet之间没有初始化的先后顺序)。

三、Servlet第一次初始化时,会调用init(ServletConfig)方法。默认情形,一个Servlet在一

个web应用中只有一个实例。意味着我们在编写程序的时候,能够将只执行一次的代

码放到init方法中执行。

四、猎取初始化信息的方式分为两种:分别是编码式、位置方式;

1、硬编码方式:初始化所依靠的信息直截了当写在代码中;如此做不行,不利于程序

的修改;我们应该采纳配置的方式;

2、配置方式:在web.xml中对Servlet进行注册时,在<servlel-class>节点后通过

<init-param>节点定义一组初始化信息;这组信息通过<param-name>和

<param-vahie>节点进行绑定:一个servlet节点能够有多组.vinil-param>节点:在

servlet中能够通过ServletConfig对象的getlnitParameter方法猎取初始化信息。

注意:假如你定义的servlet是为其它servlet服务的,那么该servlet一定要在服务对象

之前得到实例化。能够通过v】oad-on-startup>节点保证。

3、Servlet的值传递

1、客户端向服务器端进行值传递

客户端通过表单方式提交数据,服务器端通过ScrvlctRcquest对象的gctParamctcr方

法和getParameterValues方法猎取客户端提交的值。表单提交值要求的两种常用方式,

一种是GET要求传递,一种是POST要求传递,二者的区别是GET进行值传递时,值

会在地址栏中进行显示(url?key=value&key2=value2)。

2、服务器端向服务器端传递值

1)使用ServletRequest对象进行服务器端值传递。该对象能够将Object类型的值

通过setAttribute方法进行储存。在同要求链中,使用同一个ServletRequest对

象的gctAttributc方法猎取传递的值(rcquest.setAttributc(Objctkcy,

Objetvalue)=request.getAtlribute(Objectkey))o在不同的Servlet中要想猎取request对

象储存的值,Servlet直截了当的跳转必须通过RcqucstDispatchcr对象的forward方

法进行Servlet跳转。因为该方式可不能产生新的ServletRequest对象。

2)使用Session对象进行服务器端值传递。该对象能够通过request对象的

getSession方法猎取会话对象(Session对象确实是会话对象,能够明白得为同

一扫瞄器窗口,包括该窗口创建的子会话窗口)。储存值的方式依旧是使用

setAttribute方法;猎取值依旧使用gctAttributc方法。在session中储存的值,Servlet

是重定向依旧要求分发,都能够在另一个Senlet中猎取上层Servlet中储存的值。

3)使用ServletContext对象进行服务器端值传递。也是通过setAttribute方法储存值,

通过gelAitribute方法猎取值。而ServlelContext对象能够明白得为当前整个

webApplication0即在ServletContext中储存的值,在任意服务器端的Servlet知jsp

中都能够随时猎取在其中储存的值。该对象储存的值是和整个应用的生命周期一致

的。

么!、JSP简介

1、jsp实际确实是servleto当我们访问一个jsp文件时,webServer第一将jsp文件翻译成对'

应的java文件,然后将翻译得到的java文件进行编译,生成对应的class文件。该类提

供了接收要求及响应要求的service方法(_j$pScrvice(ScrvlctRcquestrequest,

ServletResponseresponse))o

2、•个标准的jsp文件由html标记和page指令组成。,样page指令又有专门多属性:其

中有一个pageEncoding属性,该属性是定义当前文件的编码方式的。

3、在servlet中:能够有java代码和字符串类型的html标记。这些字符串类型的html标记

被响应对象ServletResponse对象发送到客户端扫瞄器中后,扫瞄器会对这些字符串

类型的html标记进行解析。然而如此的操作专门苦恼。Jsp确实是解决servlet嵌套html

标记这种痛楚的操作方式的。即在jsp中我们能够像编写一般html标记一样来编写jsp

文件,同时在该文件中我们依旧能够编写java代码。

4、在jsp中能够编写java代码。一个jsp文件中有两处地点能够编写java代码。分别是局

部作用域CjspService方法中)代码编写区域'、<%〃在那个地点能够编写java代码。那个

地点编写的代码都位于」spService方法体中。%>";另一处编写java代码的区域是

''<%!〃那个地点也能够编写java代码.那个地点编写的代码位于类体中.即在那个地

点既能够声明域变量,也能够定义方法。%>"。

5、Jsp中的java表达式:<%=变量名%>;我们能够通过如此的方式访问变量。假如通过

java表达式调用方法,方法必须要有返回值。不管方法返回什么具体类型的值,表达式

通通以字符串的方式打印。Java表达式支持运算(如数学运算、逻辑运算)。

6、Jsp文件例子:jspOOl.jsp

<xpagelanguage="j&va"contentType="text/htn»2;charset=gbk"

pageEncoding="gbk'%>

<!DOCTYPEhtmlPUBLICM-//W3C//DTDHTML4.01Transitional//ENM

"/TR/html4/Icoae.dtd">

<head>

<meta-equiv-,rContent-Typencontent-"text/html;zharset-gbk">

<title>Inserttitlehere</title>

〈/head〉

<%

〃在那个地点能够编写java代码“那个地点编写的java代码都位于_jspService方法体中。

Stringstr-"java代码。这是局部变量。,

ml();

%>

<%!

Stringstr="这是成员变量”;

〃在那个地点也能够编写java代码.那个地点编写的代码位于受体中.

publicvoidml(){

System.out.printin("ismethod.”);

publicStringm2()(

System.out.printin("m2method.;

return"m2nethodreturn;";

}

publicbooleanm3(){

returntrue.

}

<body>

Stringst-"ssss";

中文:<s=str

<br>

0m2()%>

<br>

<?-m3(),?>

</body>

该jsp文件第一次被访问时,所翻译成的java文件(jsp001」sp.java文件)

packageorg.apache.jsp;

importjavax.servlet.*:

importjavax.servlet.

importjavax.servlet.jsp.*;

publicfinalclassjspOOIJspextendsorg.apache.jasper.runtime.JspBase

implementsorg.apache.jasper.runtime.JspSourceDependent{

Stringstr=”这是成员变量”;

〃在那个地点也能够编写java代码。那个地点编写的代码位于类体中。

publicvoidml(){

Syslem.out.println("ismethod.");

)

publicStringm2(){

System.out.println("m2method

return"m2methodreturn;";

}

publicbooleanm3(){

returntrue;

)

privatestaticjava.u:il.ListJspxdependants;

publicObjectgetDependantsO{

return_jspx_dcpendants;

I

publicvoid_jspService(ServlctRequestrequest,ServletRcsponseresponse)

throwsjava.io.IOException,SenletException{

JspFactory_jspxFactory=null;

PagcContcxtpageContcxt=null;

Sessionsession=null;

ServletContextapplication=null;

ServletConfigconfig=null;

JspWriterout=null;

Objectpage=this;

JspWriterJspx_out=null;

PagcContcxt_jspx_pagc_contcxt=null;

try{

JspxFactory=JspFactor5'.getDefaultFactoryO;

rcsponse.sctContcntTypc("tcxt/html;charsct=gbk'*);

pageConlext=JspxFactory.geiPageContexl(this,request,response,

null,true,8192,true);

Jspx_page_ccntexl=pageConlext;

application=pageContext.getServletContext();

contig=pageContext.getServletConfigO;

session=pageContext.getSession();

out=pagcContcxt.gctOut();

_jspx_out=out;

out.wrile("\r\n');

out.write("<!DOCTYPEhtmlPUBLIC\"-//W3C//DTDHTML4.01

Transitional〃EN\"\"/TR/html4/loose.dtd\">\An”);

out.write("<htinl>\r\n");

out.writc("<hcad>\r\n");

out.wrile("<meta-equiv=\"Coment-Type\"content=\"text/html;

charset=gbk\">\r\nH);

out.write("<(itle>Inserttitlehere</li(le>\r\n");

out.write("</head>\r\n");

〃在那个地点能够编写java代码。那个地点编写的java代码都位于」spService

方法体中。

Stringstr="java代码。这是局部变量。

ml();

out.wrile("\r\n');

out.writc("\r\n');

out.write("\r\n');

out.write("<body>\r\n");

out.write("Stringst=\"ssss\";\r\n");

out.write("\t中文:");

out.print(str);

out.write("\r\n");

out.writc("\t<br>\r\n");

out.write("\t");

out.print(ni2());

out.write("\r\n');

out.write("\t<br>\r\n");

out.write("\t");

out.print(m3());

out.write(M\r\n");

out.write("</lx)dy>\i\n");

out.write("</html>");

}catch(Throwahlct){

if(!(tinstanceofSkipPageException)){

out=_jspx_out;

if(out!=null&&out.getBufferSize()!=0)

out.clearBuffer();

if(Jspx_page_contexl!=null)Jspx_page_contexl.handlePageException(i);

)

}finally{

ifCjspxFactory!=null)JspxFactory.releasePageContext(Jspx_page_context);

7、EL表达式:${};这确实是EL表达式。EL表达式也支持运算(数学运算和逻辑运算)。

EL表达式在html文件中无效;仅以文本方式显示。在jsp文件中我们能够通过page指

令的isELIgnored属性操纵EL表达式的启用/禁用。"<%xpage

isELIgnored="true"%>";默认值是false。表示启用EL表达式。

8、在jsp文件中假如用到其他类时,能够使用page指令的import属性导入需要的类。比如

我们在jsp中使用至ljjava.io.PrintWriter类时,能够通过"<%xpage

imporl="java.io.PrintWriter"%>"导入。假如需要导入多个不同包中的类时,类之间能够

使用英文输入法下的逗号分隔(如:<%xpage

import="java.io.PrintWriter,java.util.Arrays"%>)。

9、Jsp中的九大隐式对象:applicationssession>request、response、pageContextpage>out、

config、exceptiono

10、EL表达式与四大值传递作用域:pageScope、requestScope、sessionScope、

applicationScope:这四个作用域分别对应jsp中的四个隐式对象:pageContextsrequest、

session、applicationo在这四个隐式对象中通过setAttribu【e(key,value)方法储存的值,能

够使用EL表达式的四个作用域对象和引导符及key访问在其中储存的value值。例子:

<%

pageContext.setAttribute("pagescope","pagescopevalue");

request.setAttribute("requestscope","requestscopevalue");

session.setAttribute("sessionscopeu,"sessionscopevalue1');

application.setAttribute("applicationscope'',"applicationscope

value");

<body>

使用java表达式猎取各个作用域中储存的值

<hr>

pageContextvalue:<=pageContext.getAttribute("pagescope1')

requestvalue:<%request.getAttribute("requestscope")>><br>

sessionvalue:<^=session.getAttribute("sessionscope")%><br>

application

value:<%=application.getAttribute("applicationscope")%><br>

<hr>

使用EL表达式猎取各个作用域中储存的值

<hr>

pageContextvalue:${pageScope.pagescope)<br>

requestvalue:${requestscope.requestscope)<br>

sessionvalue:${sessionscope.sessionscope)<br>

applicationvalue:${applicationscope.applicationscope}<br>

</body>

II、在使用EL表达式时需要注意一下几点:

a)EL表达式会忽略null值:

b)EL表达式不能访问java代码中声明的变量;访问java变量使用java表达式;

0在使用EL表达式访问作用域的key时,假如没有明确指出该key所对应的作用

域,那么EL表达式第■去pageScope中找,假如没有再去rcquestScope中找,

假如依旧没有找到,再去sessionScope中找,一直找到applicationscope作用或,

假如依旧没有找到,那么返回空值,非null值。在那个作用域找到,那么停止向

下查询,直截了当返回值。

pageContext.setAttribute("str1'/"pagecontextstr");

request.setAttribute("str","requeststr");

session.setAttribute("str","sessionstr");

application.setAttribute("str","applicationstr'*);

Stringstr=1'string";

%>

<body>

requestscope.str::$(requestscope.str)<br>

str;:${str)<br>

<%=str%><br>

<%^request.getAttribute("str")==null?"":request.getAttribute("str")

>

</body>

12、假如有些资源(一样是jsp资源)不承诺客户端直截了当访问,必须要先通过服务

器端进行处理后才能访问,那么将资源定义在WEB-INF名目下(或其子名目中)。位于

WEB-INF名目下的资源只能在服务器端访问。

13、如何幸免404问题(无效资源)。假如用户访问的是站点,而没有指定要访问的具

体资源。我们能够通过在web.xml文件中定义欢迎页(首页)的方式幸免404问题。然

而这种方式不能解决访问无效资源问题。

14、假如用户输入无效资源,那么会显现404问题。这时系统会使用404页面进行响应。

然而那个页面关于一般终端用户来说,可读性专门差。不利于网站的推广和使用。即网

站操作不友好。

HTTPStatus404-/jsp003/a/agsadgdsa

S5EStatusreport

/iso003/3/3asadadsa

Tomcat/5.5.28

这种不友好的默认404页面我们一样不采纳,这种页面仅仅在开发时期使用。而在实际

运营时期那么采纳定制的404页面替代。

15、如何定制错误页面。定制错误页面分为两种:一种通过错误代码定制,一种通过专

门定制。

a)第一在编写对应的错误页面(jsp文件,一样该错误页面应放在客户端无法直截了

当访问的地点,即WEB-INF名目卜〕;

b)在定制的错误页面中通过page指令的isErrorPage属性指明当前页面是错误页面,

''<%xpageisErrorPage="truc"%>”;

c)在web.xml文件中通过error节点指定错误页面。

通过错误代码指定。指定404错误页面一》

<error>

<error-code>404</error-code>

<location>/WEB-INF/404.jsp</location>

</error>

<!--通过专口类型指定一〉

<error>

<exception-type>java.lang.Exception</exception-type>

<location>/WEB-INF/exception.jsp</location>

</error>

16、位于服务器端的WEB-INF名目下的资源只有服务器端能够访问。假如客户端也

想访问,那么能够在web.xml文件中通过servlet和servlet-mapping为资源(jsp文件)

卑亍注册和虚拟名目映射。

<fervlet|>

<servlet-name>jsp404</servlet-name>

<jsp-file>/WEB-INF/404.jsp</jsp-file>

</pervlef>

<servlet-mapping>

<servlet-name>jsp404</servlet-name>

<url-pattern>/404jsp</url-pattern>

</servlet-mapping>

17、我们能够使用senlet-name和jsp-file节点对jsp文件进行注册。注册后的jsp文件

也能够指定虚拟名目。

18、

五、JSTL标签应用

1、去JSTL官网猎取jstl的核心类库:jstl-api-1.2.jar和jstl-impL1.2.jar,并将它们导入到web

工程中(WEB-INF/lib名目);

2、在你需要使用jstl标签的页面中通过taglib指令引入标签:v%xtaglibprefix="c"

uri="xjava.sunx/jstl/corc_rt"%>:prefix使用标签时的前缀,能够随意定义,只要不和其

它标记冲突即可;uri属性的值是要引入标签的地址值。该值能够在jsU-impl-1.2.jar的

ZMETA-INF/c-l_O-rt.tld中找到。

3、输出标签:vc:ouivahie=〃常量值|变量|一个作用域"/>

<!—数据输出标记—>

<c:outvalue="whz,rx/c:out>

<br>

<卜setvar="a"value="rrrM></1:se)>

<c:outvalue=,,${a}"></c:out>

<br>

<c:outvalue=M${page}"/>

4、条件判定标签vc:if【esi="Boolean类型结果〃〉满足条件时所要运行的代码.</if>

条件判定标签

<c:iftest=f,${2>l}”>

<c:outvalue="2^fl."></c:out>

</c:if>

5、多条件判定标签

多条件判定标签一>

<c:choose>

<c:whentest=M${2>1}”>大于</c:when>

<c:whentest="${2<1}">小于</c:when>

<c:0therwise〉等于</c:otherwise>

</c:choose>

6、循环迭代标签:<c:foreachvar="集合中的单个元素"items:"集合"begin=w开始索

引"end="终止索引〃step=〃步进值"varS(atus=w当前元素的状态对象,有属性

index"></c:foreach>

<!--循环迭代标签

,r

<c:forEachvar="tmp",2,3,6,4fabd,5gags"begin=O"

end="6"step="1"varStatus=nvs">

<c:outvalue=M${tmp}"></c:out>

<c:outvalue={vs.index}"></c:out>

<br>

</c:forEach>

1o

21

32

63

44

1d

^5

5gags6

7、2代标签的应用实例:

HnM

String[)strs={sl"zs2"zs3");

pagpCnnf-Axt.Attrihiitc(r<^"ztrA);

Person[]pers={newPerson("张三”,23),newPerson("李四”,24));

pageContext.setAttribute("pers",pers);

List<String>slist=newArrayList<String>();

slist.add("slistl");

slist.add("sli$t2");

slist.add("siist3',);

pageContext.setAttribute("list",slist);

Map<StringzObject>map=newHashMap<String,Object>();

map.put("ml","mapstring");

map.put("m2",newPerson("JEJL",55));

pageContext.setAttribute("map",map);

%>

<body>

对常量集合进行遍历

<hr>

,,

<c:forEachvar="tsnp"items="afbfcfd/e>

<c:outvalue='r${tmp},r,x/c:out>

</c:forEach>

<br>

对java中的数组:比如字符串数组进行遍历

<hr>

<c:forEachvar="tmp"items=r,${strs}">

<c:outvalue='*${tmp},**></c:out>

</c:forEach〉

<br>

对自定义类型的数组进行遍历:Person类型,有屈性name和age

<hr>

<c:forEachvar="per"items="${pageScope.pers}">

<c:outvalue="${per.name}"/>

<c:outvalue='*${per.age}"/>

<br>

</c:forEach>

<br>

对java中的List集合进行遍历:集合中全是String类型的值

<hr>

<c:forEachvar=Mtmp,ritems={pageScope.list}”>

<c:outvalue®'*${tmp}"/>

</c:forEach>

<c:outvalue=,r${pageScope.list[0]},fx/c:out>

<br>

变量Map集合:key是S二ring类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论