您好,欢迎访问三七文档
JSP简明参考一.JSP概论,介绍JSP历史1.JSP简介:JSP:JavaServerPages(前台页面),JSP1.2,JSP2.0Server(服务器,后台程序),Client(客户端),Browse(浏览器)WebApp:B/S!=C/SWebAppServer:Tomcat,JBoss,WebLogic,WebSphare,注意:JEE只能做BS项目JSP和servlet的历史:首先出现的servlet,处理前后台,servlet处理前台功能代码过多,页面人员无法参与开发,开发周期很长,维护效率太低。jsp出现,前后台都用jsp开发,代码不能重用(import)jsp和serlvet分别处理前后台创建一个简单JSP的B/S项目中:创建一个WEB-INF的文件夹,在WEB-INF里面创建一个lib驱动包文件夹(放入常用驱动),在WEB-INF里面创建一个classes文件夹(MyEclipse会自动把java文件编译好放在此文件夹下面),在web.xml文件里面写入web-app/,把网页文件放在和WEB-INF同级目录下面,文件包括(html,jsp)。打开web服务器,在浏览器地址里面:输入项目名/输入项目名/输入http://对方主机IP:对方tomcat映射端口/项目名/(支持局域网测试)都可以对当前的B/S项目进行浏览2.JSP四大特点:1.指令元素,一般都是在一个html或者jsp文件的开始定义,分为页面指令page,包含指令include,标签指令taglib。2.动作元素,jsp专用的标签元素3.脚本元素,手动写入j2se代码局部表达式%%只有在此局部定义以后的代码才能访问全局表达式%!%当前jsp页面上下都可以访问显示表达式%=%类似j2se里面的System.out.println();4.JSP中的9大对象。二.JSP核心语法3.注释:HTML/XML注释:!--comment[%=expression%]--内部允许使用表达式.客户端的HTML代码会产生相同的注释代码.隐藏的注释(JSP中,但不发送到客户端.%--comment--%jsp编译时会忽略这部分注释.Scriptlets注释:同Java注释.(本身就是在Java代码中.)注意:!--HTML注释方式,HTML的注释在客户端是可以看见的,并且也不能屏蔽jsp标签。--%--JSP注释方式JSP的注释是不会在客户端页面显示出来的,并且还可以能屏蔽js和html代码--%jsp自身的注释优先级是最高的(尽可能使用此注释方式)指令元素在整个JSP文件中有效,设置全局变量,声明类,要实现的方法和输出内容的类型等.并不向客户产生任何输出.%@directivenameattribute=”aa”attribute=”bb”%例如:%@pagelanguage=“java”pageEncoding=”gb2312”%4.指令元素---page页面指令1directivename就是page.一个jsp页面中包含的多个页面指令被抽出来叠加应用制一个页面上.除了import外,其他页面指令只能出现最多一次.使用方法:%@page属性名=“值”…%其中attribue和其可选值:(属性可以单独使用,也可以同时使用几个).属性名意义可选Value默认值language指使用的脚本语言JavaJavaimport用,隔开,表示引入类java.lang.*sessionhttp会话中是否包含此页面true/falsetruebuffer对客户端输出流的缓冲,none表示无,否则以不小于指定的数值缓冲.none/具体的缓冲值不小于8kbautoFlushtrue表示缓冲区满时,刷新客户端,false则出现运行异常true/falsetrueinfo对jsp页面的信息备注isErrorPage表明是否为其他页面的error目标,true时可以使用exception对象.true/falsefalseerrorPage有异常时指向的页面isThreadSafe是否能多线程的使用,true表示允许一个JSP同时处理多个用户的请求.true/falsetruecontentType字符编码和MIME类型text/html;charset=iso-8859-1pageEncodingJSP页面的字pageEncoding=”符编码ISO-8859-1”isELIgnored指定EL(表达式语言)是否被忽略true/falsetrue5.指令元素---include指令1%@includefile=”fileURL”%包含的文件在编译期间被解析.如果路径以/开头表示参照应用,否则参照改jsp页面本身.6.指令元素---taglib指令1%@tagliburi=“标签tld路径”prefix=“前缀”%JSP2.0新增了JSTL标签库.JSF前缀不能使用:jsp,jspx,java,javax,sun,servlet,sunw.脚本7.脚本元素---声明2定义变量或者方法(对应与产生的类的属性和方法.)%!Stringnow(){returnnewjava.util.Date().toString();}%%!Stringmyname=”AiSee”;%8.脚本元素---表达式2%=expression%将被转换为字符串(如果是对象,则使用对象的toString()方法).9.脚本元素---Scriptlet2%//JavaScriptlet%Scriptlet被包含在编译后的Servlet的Service方法中,多个Scriptlet按照出现的顺序执行,可以合并为一个Scriptlet.一个Scriptlet可以使用它前面的Scriptlet定义的变量.动作元素动作元素在请求处理阶段起作用,使用XML语法写出.prefix:tagattribute=value…./或者匹对标签prefix:tagattribute=value……/prefix:tagattribute=value标准的动作元素有:jsp:useBean,jsp:setProperty,jsp:getProperty,jsp:param,jsp:params,jsp:include,jsp:forward,jsp:plugin,jsp:fallback,jsp:attribute,jsp:body,jsp:invoke,jsp:doBody,jsp:element,jsp:text,jsp:output,jsp:root,jsp:declaration,jsp:scriptlet,jsp:expression动作元素中目前还有可能使用的是:jsp:param,jsp:include,jsp:forwardjsp:setProperty,jsp:getProperty,jsp:useBean注意:jsp动作元素严格匹配单双标签,所以,当使用单标签的时候,记得斜线收回标签,否则会报错10.动作元素---jsp:param1提供”名---值”对,和jsp:include,jsp:forward,jsp:plugin一起使用.jsp:paramname=”paraName”value=”paramValue”/例如:jsp:paramname=usernamevalue=thinkmore/注意:此标签必须嵌套使用,不能单独使用11.动作元素---jsp:include2允许在请求时间内在现成的JSP里面包含静态或者动态资源.被包含的对象只有对JspWriter对象有访问权,并且不能设置头或者Cookie.如果页面是缓冲的,那么缓冲区的刷新要优于包含的刷新,语法:jsp:includepage=”filename”flush=”true”/或者(同时传人参数):jsp:includepage=”filename”flush=”true”jsp:paramname=”paraName”value=”paraValue”/....../jsp:include例如:jsp:includepage=action2.jspflush=truejsp:paramname=usernamevalue=thinkmore//jsp:include12.动作元素---jsp:forward1停止执行当前的JSP,转发请求到另一个JSP,Servlet或者静态资源文件,要求资源必须位于和本JSP相同的上下文环境中.jsp:forwardpage=”uri”/或者(同时传人参数):jsp:includepage=”uri”jsp:paramname=”paraName”value=”paraValue”/…/jsp:include例如:jsp:forwardpage=action2.jsp?username=thinkmore/转发和转向都会继续执行当前页的下面的代码,但是此标签不会执行下面的代码,此标签内核机制相当于转发13.动作元素---jsp:setProperty1和useBean一起使用,用于设置Bean的属性.jsp:setPropertyname=”beanName”propertyDetails/其中name指jsp:useBean的id,propertyDetails可选形式:property=“*“property=“propertyName“property=“propertyName“para=”paraName”property=“propertyName“value=”propertyValue”property=“*”Bean的属性名,类型和request对象中的参数匹配,由于表单传过来的都是String,则JSP会把这些参数转换为Bean中对应的值.request中的空值或者request没有相应属性,则在Bean属性中不会设置值.property=“propertyName“指定设置某个参数的值,指定了Bean的属性名,而且属性名与request参数的名字相同,.Request中有空值,则不会设置任何值.property=“propertyName“para=”paraName”指定的参数设置指定的属性.property=“propertyName“value=”propertyValue”指定的值可以是字符串,也可以是表达式(需要类型匹配),用于设置指定属性的值.注意:此标签要和jsp:useBean标签结合使用,单独不能使用,jsp:getProperty使用方式:在userbean标签之中使用,获取一个对象的属性值,id属性是对象的名字,property是对象属性的名字14.动作元素---jsp:getProperty1显示bean的属性到网页上.jsp:getPropertyname=”beanName”property=“propertyName“/指定获取指定Bean的指定属性,属性不能是被索引了的.注意:此标签要和jsp:useBean标签结合使用,单独不能使用,jsp:setProperty使用方式:在userbean标签之中使用,设置一个对象的属性值,id属性是对象的名字,property是对象属性的名字,value是设置对象属性的值15.动作元素---jsp:useBean12jsp:useBeanid=”beanName”scope=”scopeWhere”typedesc/首先试图定位一个Bean实例,如果这个Bean不存在,将会从一个class或者模板中进行实例化.其中,scope表示存
本文标题:JSP学习资料
链接地址:https://www.777doc.com/doc-4458209 .html