JSP学习资料.docx
- 文档编号:30446078
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:52
- 大小:40.71KB
JSP学习资料.docx
《JSP学习资料.docx》由会员分享,可在线阅读,更多相关《JSP学习资料.docx(52页珍藏版)》请在冰豆网上搜索。
JSP学习资料
JSP简明参考
JSP概论,介绍
JSP历史
JSP简介:
JSP:
JavaServerPages(前台页面),JSP1.2,JSP2.0
Server(服务器,后台程序),Client(客户端),Browse(浏览器)
WebApp:
B/S!
=C/S
WebAppServer:
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服务器,在浏览器地址里面:
输入http:
//localhost:
8089/项目名/
输入http:
//127.0.0.1:
8089/项目名/
输入http:
//对方主机IP:
对方tomcat映射端口/项目名/(支持局域网测试)都可以对当前的B/S项目进行浏览
JSP四大特点:
1.指令元素,一般都是在一个html或者jsp文件的开始定义,分为页面指令page,包含指令include,标签指令taglib。
2.动作元素,jsp专用的标签元素
3.脚本元素,手动写入j2se代码
局部表达式<%%>只有在此局部定义以后的代码才能访问
全局表达式<%!
%>当前jsp页面上下都可以访问
显示表达式<%=%>类似j2se里面的System.out.println();
4.JSP中的9大对象。
JSP核心语法
注释:
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”%>
指令元素---page页面指令1
directivename就是page.
一个jsp页面中包含的多个页面指令被抽出来叠加应用制一个页面上.除了import外,其他页面指令只能出现最多一次.
使用方法:
<%@page属性名=“值”…%>
其中attribue和其可选值:
(属性可以单独使用,也可以同时使用几个).
属性名
意义
可选Value
默认值
language
指使用的脚本语言
Java
Java
import
用,隔开,表示引入类
java.lang.*
session
http会话中是否包含此页面
true/false
true
buffer
对客户端输出流的缓冲,none表示无,否则以不小于指定的数值缓冲.
none/具体的缓冲值
不小于8kb
autoFlush
true表示缓冲区满时,刷新客户端,false则出现运行异常
true/false
true
info
对jsp页面的信息备注
isErrorPage
表明是否为其他页面的error目标,true时可以使用exception对象.
true/false
false
errorPage
有异常时指向的页面
isThreadSafe
是否能多线程的使用,true表示允许一个JSP同时处理多个用户的请求.
true/false
true
contentType
字符编码和MIME类型
text/html;charset=iso-8859-1
pageEncoding
JSP页面的字符编码
pageEncoding=”ISO-8859-1”
isELIgnored
指定EL(表达式语言)是否被忽略
true/false
true
指令元素---include指令1
<%@includefile=”fileURL”%>
包含的文件在编译期间被解析.
如果路径以/开头表示参照应用,否则参照改jsp页面本身.
指令元素---taglib指令1
<%@tagliburi=“标签tld路径”prefix=“前缀”%>
JSP2.0新增了JSTL标签库.
JSF
前缀不能使用:
jsp,jspx,java,javax,sun,servlet,sunw.
脚本
脚本元素---声明2
定义变量或者方法(对应与产生的类的属性和方法.)
<%!
Stringnow(){
returnnewjava.util.Date().toString();
}
%>
<%!
Stringmyname=”AiSee”;
%>
脚本元素---表达式2
<%=expression%>
将被转换为字符串(如果是对象,则使用对象的toString()方法).
脚本元素---Scriptlet2
<%
//JavaScriptlet
%>
Scriptlet被包含在编译后的Servlet的Service方法中,
多个Scriptlet按照出现的顺序执行,可以合并为一个Scriptlet.
一个Scriptlet可以使用它前面的Scriptlet定义的变量.
动作元素
动作元素在请求处理阶段起作用,使用XML语法写出.
tagattribute=value…./> 或者匹对标签 tagattribute=value> …… tagattribute=value> 标准的动作元素有: useBean>, setProperty>, getProperty>, param>, params>, include>, forward>, plugin>, fallback>, attribute>, body>, invoke>, doBody>, element>, text>, output>, root>, declaration>, scriptlet>, expression> 动作元素中目前还有可能使用的是: param>, include>, forward> setProperty>, getProperty>, useBean> 注意: jsp动作元素严格匹配单双标签,所以,当使用单标签的时候,记得斜线收回标签,否则会报错 动作元素--- param>1 提供”名---值”对,和jsp: include,jsp: forward,jsp: plugin一起使用. paramname=”paraName”value=”paramValue”/> 例如: paramname="username"value="thinkmore"/> 注意: 此标签必须嵌套使用,不能单独使用 动作元素--- include>2 允许在请求时间内在现成的JSP里面包含静态或者动态资源.被包含的对象只有对JspWriter对象有访问权,并且不能设置头或者Cookie. 如果页面是缓冲的,那么缓冲区的刷新要优于包含的刷新,语法: includepage=”filename”flush=”true”/> 或者(同时传人参数): includepage=”filename”flush=”true”> paramname=”paraName”value=”paraValue”/> ...... include> 例如: includepage="action2.jsp"flush="true"> paramname="username"value="thinkmore"/> include> 动作元素--- forward>1 停止执行当前的JSP,转发请求到另一个JSP,Servlet或者静态资源文件,要求资源必须位于和本JSP相同的上下文环境中. forwardpage=”uri”/> 或者(同时传人参数): includepage=”uri”> paramname=”paraName”value=”paraValue”/> … include> 例如: forwardpage="action2.jsp? username=thinkmore"/> 转发和转向都会继续执行当前页的下面的代码,但是此标签不会执行下面的代码,此标签内核机制相当于转发 动作元素--- setProperty>1 和useBean一起使用,用于设置Bean的属性. 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”指定的值可以是字符串,也可以是表达式(需要类型匹配),用于设置指定属性的值. 注意: 此标签要和 useBean>标签结合使用,单独不能使用, jsp: getProperty使用方式: 在userbean标签之中使用,获取一个对象的属性值,id属性是对象的名字,property是对象属性的名字 动作元素--- getProperty>1 显示bean的属性到网页上. getPropertyname=”beanName”property=“propertyName“/> 指定获取指定Bean的指定属性,属性不能是被索引了的. 注意: 此标签要和 useBean>标签结合使用,单独不能使用, jsp: setProperty使用方式: 在userbean标签之中使用,设置一个对象的属性值,id属性是对象的名字,property是对象属性的名字,value是设置对象属性的值 动作元素--- useBean>12 useBeanid=”beanName”scope=”scopeWhere”typedesc/> 首先试图定位一个Bean实例,如果这个Bean不存在,将会从一个class或者模板中进行实例化. 其中,scope表示存在的范围: page,request,session,application typedesc可选形式: 1.class=”className”: 要求类路径和类名,需要public的空参数构造函数的非抽象类, 2.beanName=”beanName”type=”typeName”: 使用instance方法从一个class中实例化一个Bean,同时指定Bean的类型.Type=”typeName”type是一个类或者接口,如果没有使用class或者beanName指定type,Bean将不能实例化. 例如: useBeanid="ob"class="tm.OneBean"scope="request"> setPropertyname="ob"property="username"value="think"/> getPropertyname="ob"property="username"/> useBean> 注意: jsp: useBean使用方式: id属性是定义新创建对象的名字,并且设置在scope范围中,以id为key值,class是此类的包名加类名,scope是此对象存放的范围。 上面的例子相当于下面的J2SE代码: OneBeanonebean=newOneBean(); request.setAttribute("onebean",onebean); onebean.setUsername("think"); onebean.getUsername(); 动作元素--- plugin>2 用来产生客户端浏览器的特别标签(Object或者Embed),可以使用它来插入Applet或者JavaBean. 语法: plugintype=”applet|bean”code=”classFileName”codeBase=”classFileDirectoryName” [name=”instanceName”] [archive=”URIToArchive,…“] [align=”bottom|top|middle|left|right”] [height=”howMantPixels”] [width=”howMantPixels”] [hspace=”howMantPixels”] [vspace=”howMantPixels”] [jreversion=”JREVersionNumber|1.1”] [nspluginurl=”URLToPlugin”] [iepluginurl=”URLToPlugin”] [ params> [ paramname=”parameterName”value=”{parameterValue|<%=expression%>}”/>]+ params> ] [ fallback>textmessageforuser fallback>] plugin> 属性/子元素 描述 默认值 type beanapplet之一 code Java类文件的名称,需要包括扩展名.class codeBase Java类的根目录 JSP文件的当前路径 name Bean或者Applet的实例名称,则同一个JSP中可以调用. archive 逗号隔开的路径名列表,那些用于codebase指定的目录下的类装载器预装载的存档文件所在的路径名. align 对齐方式bottom|top|middle|left|right height,width 显示的高,宽(单位为像素) hspace,vspace 左右上下留出的空间 jreversion 所需的JavaRuntimeEnvironment(JRE)版本. 1.1 nspluginurl NetscapeNavigator能使用的JRE下载地址 iepluginurl InternetExplorer用户能够使用的JRE下载地址: 如http: // jsp: params 需要传人的参数 jsp: fallback Java插件不能启动是显示给用户的一段文字 动作元素--- fallback> plugin>的一部分,见上面的描述. JSP内建的对象 9个对象的简介 在J2EE开发中,最主要使用的是两个开发包: 1.javax.servlet包 2.javax.servlet.http包 这两个包在web开发中占据了大部分的使用 javax.servlet包是J2EE中web开发原型包 javax.servlet.http包是J2EE中web开发针对http协议开发的包 jsp中的9大对象,都来自于javax.servlet.http包 标示为*号的对象是开发中比较常用的对象 *application: 容器(web服务器)对象,它可以得到容器中的内容 config: 项目配置参数(目前被servlet配置所代替) exception: jsp中的异常对象 *out: 页面内容输入对象 page: 页面对象,最主要是_jspService方法,此方法由容器自动调用 pageContext: 页面上下文(当前页面的内容) *request: 请求对象,由用户发起(目前B/S项目开发的重点) *response: 响应对象,用户请求被服务器接收以后,就会产生此对象 *session: 请求对象和响应对象的连接池 存储数据: pageContext,request,session,application (对象范围从小到大) 在页面中,一个request和response会产生一个唯一的session request-------session-------response (request由用户产生,不同的用户产生的对象也就不同) 下面是9个对象在J2EEAPI中的的原型: request: javax.servlet.http.HttpServletRequest response: javax.servlet.http.HttpServletResponse session: javax.servlet.http.HttpSession application: javax.servlet.ServletContext out: javax.servlet.jsp.JspWriter config: javax.servlet.ServletConfig exception: java.lang.Exception page: javax.servlet.jsp.HttpJspPage pageContext: javax.servlet.jsp.PageContext request对象是9大对象中,最重要的开发对象 9个对象只能存在于page对象的_jspService方法中,也就是只能在局部脚本中操作9个对象,所以说9个对象是由web服务器调用page对象的_jspService方法创建的 application application随着服务器启动而创建,直到关闭服务器. 整个应用的共享对象.主要作用在于取得或更改Servlet的设定. 封装了接口javax.servlet.ServletContext. 1.ObjectgetAttribute(Stringname); 返回由name指定的application属性。 2.EnumerationgetAttributeNames(); 返回所有的application属性。 3.ServletContextgetContext(Stringuripath); 取得当前应用的ServletContext对象。 4.StringgetInitParameter(Stringname); 返回由name指定的application属性的初始值。 5.EnumerationgetInitParameters(); 返回所有的application属性的初始值的集合。 6.intgetMajorVersion(); 返回servlet容器支持的最高ServletAPI的版本号。 7.StringgetMimeType(Stringfile); 返回指定文件的类型,未知类型返回null。 一般为"text/html"和"image/gif"。 8.intgetMinorVersion(); 返回servlet容器支持的最低ServletAPI的副版本号。 9.StringgetRealPath(Stringpath); 返回给定虚拟路径所对应物理路径。 10.RequestDispatchergetNamedDispatcher(Stringname); 为指定名字的Servlet对象返回一个RequestDispatcher对象的实例。 11.RequestDispatchergetRequestDispatcher(Stringpath); 返回一个RequestDispatcher对象的实例。 12.URLgetResource(Stringpath); 返回指定的资源路径对应的一个URL对象实例,参数要以"/"开头。 13.InputStreamgetResourceAsStream(Stringpath); 返回一个由path指定位置的资
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 学习 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)