ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:26.80KB ,
资源ID:10284078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10284078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(jsp笔记.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

jsp笔记.docx

1、jsp笔记1. Jsp(Java Server Page)和Servlet的关系相同点: 都是web组建,需要web容器进行管理,需要web Server(web服务器)运行,且本质上Servlet和jsp具有完全相同的功能.差异: 语法结构不同,Servlet是java class,而jsp更类似于html的结构;结构不同导致两者擅长实现的功能不同,在实际应用中,应将两者分别应用于其擅长的领域Servlet能做的东西jsp都能做,Servlet没有主函数,但是还是class,擅长逻辑方面的控制Jsp类似于html,把java代码嵌到html里面,擅长做页面两者关系: 配合,协作,共同实现2.

2、 Mvc模型1: jsp+javabeanJavabean完成操作(业务逻辑)和数据保存,jsp实现显示逻辑和控制逻辑该模型用于控制逻辑简单的小型应用注:javabean是有一定要求的java类可能代码量多一点模型2: jsp+Servlet+javabean Javabean完成操作(业务逻辑)和数据保存,jsp实现显示逻辑和控制逻辑,Servlet实现控制逻辑,该模型用于控制逻辑相对复杂的中大型应用操作步骤:以登陆操作为例1) 客户端请求提交给Servlet客户端login.html将数据(username,password)提交给LoginServlet2) Servlet调用javab

3、ean完成具体操作LoginServlet获取客户端传递的参数,并使用该参数调用DAO的Boolean check(String username,String password)进行登陆验证3) Servlet如果需要传递数据到jsp,通常使用Attribute进行传递,范围根据需求决定注:通常都有该请求传递的数据多为javabean对象如果登录失败,不传递数据如果登录成功,创建User对象,并将User 对象使用Session级的Attribute传递给jsp4) Servlet跳转到jsp页面登录失败,跳转到login.html登录成功跳转到Welcome.jsp5) Jsp获取Serv

4、let传递的信息并填入页面中完成显示使用获取保存的Session中的User对象,根据该User对象中的信息显示欢迎信息动态:可以跟客户进行交互.3. 开发1) 工程中的位置与html文件存放位置相同2) 扩展名为 .jsp3) 语法实现:将java代码按照一定得规则嵌入html页面中注:扩展名决定其类型,即使没有嵌入任何java代码,在服务器进行处理时也将按照jsp的方式进行4) 部署后,在服务器中的位置与html文件存放的位置相同,且不存在任何转换操作.5) 浏览器访问路径包含协议,服务器地址和端口,web应用和jsp文件http:/localhost:8888/jsp_jd0902/he

5、llo.jspServlet的后面的路径是假的路径Jsp是真路径6) 服务器处理方式A. Html访问时直接访问web应用下的html文件,将内容发送给客户端http:/localhost:8888/jsp_jd0902/hello.htmlB. Jsphttp:/localhost:8888/jsp_jd0902/hello.jspE:javatomcatjakarta-tomcat-5.0.28workCatalinalocalhostjsp_jd0902orgapachejspstep1: 服务器将jsp文件转换为Servlet(.java )step2: 服务器编译转换后的Servle

6、t(.java)step3: 服务器加载编译后的class文件step4: 服务器将class文件的响应结果发送给客户端,其实质为调用该Servlet的_jspService()方法,JSP的访问没有Get和Post的区别 注1:转换和编译后文件存放位置在tomcat根目录work,java文件命名为: JSP文件的文件名_jsp.javafinal类 不被继承的类注2: step1-step3只在jsp文件第一次被访问或jsp文件被修改时执行一切以结果来说话4. 基本语法1) 指示标记用于对页面内容进行说明,常用的有,转换后的位置由具体指示决定2) 定义标记用于定义Servlet中的属性或方

7、法转换后位置在Servlet的类中3) 表达式标记用于将表达式的内容显示在网页中转换后位置在Servlet的_jspService()的out.print();的参数4) 脚本标记用于写入普通java代码转换后位置在Servlet的_jspService()中5. 指示标记1) 将file参数指定的文件内容包含到当前文件的指定位置2) 用于对当前JSP文件的页面特性和访问特性进行指定主要属性如下:A. language=”嵌入代码的语言”,默认为java,目前只支持javaB. extends=”转换后的Servlet继承的父类”,默认转换后的父类是org.apache.jasper.runt

8、ime.HttpJspBase,不建议重新制定C. (常用)inport=”导入的包,.”,制定Servlet需要导入的包,导入很多的话中间用逗号隔开D. session=”是否支持会话”,默认值是trueE. buffer=”缓冲区设置”,默认为8kb,可指定数字表示缓冲区大小,如16表示16k,也可指定none表示没有缓冲区(不建议,会大幅降低效率).该缓冲区用于向客户端响应时保存响应信息F. autoFlush=”当缓冲区满时是否自动将内容写到客户端”,默认为true,通常不修改该属性值G. isThreadSafe=”当前JSP文件是否线程安全”,默认为true,表示允许多线程并发访问

9、,效率高.如果代码无法做到线程安全,则应将该属性设置为FALSE,则web server将以SingleThreadModel方式操作该Servlet,效率影响很大H. info=”描述信息”,用于指定jsp的信息,可使用getServletInfo()方法获得(没用)I. (常用)isErrorPage=”当前jsp页面是否为错误处理页面”,默认为FALSE,如果指定为true,在转换为Servlet代码时有附加的内容,用于错误处理J. (常用)errorPage=”当前页面对应的错误处理页面”,没有默认值,被指定为错误处理页面的jsp文件的isErrorPage属性值必须为true,否则将

10、出错K. (常用)contentType=”响应的内容类型和编码方式”,默认值为”text/html;charset=环境默认值”L. (常用)pageEncoding=”jsp文件页面(内容)的编码方式”,默认值决定于系统的开发工具,中文编码方式为”GBK”gb2312是gbk的子集M. (常用)isELIgnored=”是否忽略EL语言”,默认值决定于web.xml的版本注:EL为1种表达式语言6. JSP的访问模型与Servlet相同,采用单实例多线程模型,即无论有多小个客户端访问,只创建1个Servlet实例,每个客户端以线程方式调用_jspService()7. Servlet的Si

11、ngleThreadModel模型Servlet可以实现SingleThreadModel接口使其变为单实例单线程的操作模式,可以保证线程安全性,但执行效率将会明显下降peprecated不赞成使用的8. Jsp解决线程安全目的: isThreadModel的值必须为true方法: 不使用实例变量,如果必须使用,在合理的位置对最少的代码使用synchronized进行并发访问控制,使对效率的影响降到最低9. 常用Jsp标记1) 用于执行文件包含,在包含时可以选择是否需要传入参数该操作相当于Servlet中的RequestDispatcher的include()注:无法传入参数语法不传参语法传参

12、,每个参数对应1个标记 如果被包含的是jsp文件,则被包含文件的操作应独立指定,与包含文件无关;对于html结构,包含文件和被包含文件是整体结构,被包含文件允许为html代码片段Jsp是命名空间的前缀Include标记Page标记值2) 用于执行资源跳转,在跳转时可以选择是否需要传入参数该操作相当于Servlet中的RequestDispatcher的forward()语法-不传参语法-传参,每个参数对应1个标记 3) 用于在和操作时传递参数语法:获取参数的方式为request.getParameter(“参数名”)4) 用于创建JavaBean对象语法:Class和type必须指定全名,与j

13、sp文件是否执行import无关对象范围默认值为page,可用值为page,request,session和application,其中application相当于ServletContext引用类型如果不指定,默认与对象类型一致User u=new User();Map m=new HashMap();5) 用于为对象赋值,相当于调用set方法语法(形式1):操作: 对象引用. setProperty名称(request.getParameter(参数名称);语法(形式2):操作: 对象引用. setProperty名称(需要赋的值);注:需要赋的值可以使用表达式标记语法(形式3):智能匹配

14、操作: 对象引用的所有property都可以执行set方法,前提是存在同名的parameter,就是提交的参数的名称和property的名称一样6) 用于取出对象的property值并输出到浏览器语法:操作:对象引用.getProperty名称(),将返回结果输出到浏览器10. Jsp文件中的注释1) Html注释语法:注: 在注释内容中可以使用jsp的表达式作用范围: 存在于jsp源文件,转换后的Servlet源文件,编译后的Class文件并被发送到客户端用途:需要给客户端阅读的注释内容2) Jsp注释语法:作用范围:只存在于jsp源文件用途:对jsp文件本身的说明3) Java注释语法:

15、在定义标记和脚本标记中使用,等作用范围:存在于jsp源文件,转换后的Servlet源文件用途:对嵌入的java代码的说明11. Javabean1) 定义:规范化得java类,有一定的实现规则2) 标准化规则A. 实现序列化接口(需要被序列化/反序列化时必须实现)B. 所有属性为private权限C. 规范化属性命名(第一个单词小写,从第二个单词起首字母大些)D. 根据逻辑要求提供public权限的get和set方法,方法命名规范化,如name实行对应的方法为getName()和setName()E. 存在无参构造器注意:其中D和E在任何情况下必须实现3) Property的概念:通常与属性混

16、淆,其本质与属性有区别,但如果使用标准化命名方式,在使用时是相同的命名规则为:get和set方法去除get/set的部分,并将首字母变为小写/*该类存在一个property,名为id可读可写,age只能读取*/public class User private int id; private int age; public User() public int getId()return id;public void setId(int id) this.id=id;Public int getAge() Return age;4) 存放位置:与Servlet相同,在工程的src目录中5) 在j

17、sp中的使用方式1:在脚本标记中使用java代码的方式创建对象,调用get和set方法进行操作等,在使用时应保证已进行import方式2(推荐):使用jsp标记实现创建,get,set行为,的操作逻辑:根据scope决定是否需要创建对象,步骤如下:A. 判断指定范围中是否存在有效可用的对象判断标准:对象类型,对象引用,范围.getAttribute(“对象引用名”)如果返回对象存在且可用,则认为存在有效可用的对象如:则判断Session.getAttribute(“u”)返回的是否为User对象,是就直接使用,不是则创建对象并使用B1. 如果存在有效可用对象,直接使用该对象(不创建对象)B2.

18、 如果不存在有效可用的对象,创建对象12. Jsp的异常处理1) 对于jsp中产生的异常(包含jsp使用的javabean产生的异常),如果没有进行处理将会在客户端浏览器显示错误信息2) 浏览器中显示的错误信息对开发者有一定价值,可以参照进行代码调试,所以在开发阶段可以不进行异常处理;但正式运行后,应显示给客户端更友好的错误信息,应对可能产生的异常进行处理3) 处理方式(c和d是在正式运行后较常用的处理方式)A. 在jsp的定义标记和脚本标记中使用trycatch进行处理B. 在javabean的代码中使用trycatch进行处理C. 在jsp中定义错误处理页面进行处理示例:Index.jsp

19、需要在产生异常时由error.jsp进行处理Index.jspError.jsp操作:当Index.jsp中产生任类型的异常时,跳转到error.jsp进行处理定义isErrorPage=”true”的页面存在1个名为exception的对象,该对象保存产生异常的页面所产生的异常对象在jsp页面中,可在表达式标记和脚本标记中使用该对象在jsp页面中产生的异常,exception对象将保存真正的异常类型;在javabean中产生的异常,exception对象将保存jsp中的异常包装类org.apache.jasper.JasperException对象,该对象的实现原理与ServletExcep

20、tion类似跳转方式为服务器内部跳转,错误处理页面可以使用产生异常的页面的所有Request或更大范围的所有信息如果是内部跳转的话地址栏的不变,外部跳转就变D. 在web.xml中配置错误处理页面进行处理原理:在web.xml的配置信息指定根据错误类型或异常类型分别跳转到不同的错误处理页面错误类型: 浏览器的错误分类,常用的有404(页面没有找到)和500(服务器内部错误,所有运行时产生的异常都属于该类型)等异常类型: java异常类型如java.lang.NumberFormatException配置方式: 在下配置,每个对应1个错误处理页面根据错误类型跳转包含以下子标记浏览器错误号错误处理

21、页面(绝对路径)注:绝对路径以”/”开头,表示web应用的根根据异常类型跳转包含以下子标记异常类型全名错误处理页面(绝对路径)注意事项:A. 如果两种配置都存在且都符合,异常类型方式优先B. Javabean中产生的异常被包装处理,所以无法匹配定义的真正的异常类型C. 与errorPage方式不重复使用D. 跳转方式为服务器内部跳转E. 对web应用中的所有jsp页面都有效,且本身具有根据错误类型和异常类型分别处理的功能,在应用中使用最广13. Jsp内建对象1) 定义:在jsp的脚本标记和表达式标记中,存在8+1个不需要定义即可直接使用的对象,称为jsp的内建对象2) 本质:内建对象是_js

22、pService()的局部变量,在方法中定义3) 列表a. pageContext 表示page范围,类型为PageContextb. request(常用) 表示Request范围,也表示客户端发起的请求,类型为HttpServletRequestc. session (常用) 表示Session范围,类型为HttpSessiond. application (常用) 表示web应用范围,类型为ServletContexte. response(常用) 表示对客户端的响应,类型为HttpServletResponsef. out(常用) 用于向客户端输出内容,类型为JspWriterg. c

23、onfig 与Servlet (由jsp转换生成的Servlet) 对应,保存Servlet的部分信息,类型为ServletConfigh. page 值为this,表示当前Servlet对象,类型为Objecti. exception (只有isErrorPage=”true”的jsp存在该变量)表示页面中产生的异常,类型为Throwable14. 环境1) 开发环境: 用于开发的文件框架结构,通常由开发工具决定,不同的开发工具的开发环境的文件结构不同,jsp,Servlet,Html等内容的实现都在开发环境下进行2) 运行环境: 在运行时的文件框架结构,由运行的服务器决定,不同的服务器的运

24、行环境的文件结构不同,其文件结构与开发环境没有必然的联系3) 部署:将开发环境中的内容按运行环境的要求放入运行环境中,通常使用开发环境工具中的部署工具进行15. 4个范围1) Application 表示web应用,文件结构上对应webapps下的1个文件件,该文件夹中的所有内容共同组成1个web应用,该对象在整个web应用的使用中只存在1个,在web应用启动时创建2) Session 表示会话,也就是1个客户端对1个web应用中资源的若干次访问.关系:1个application对应多个Session客户端的判断决定于浏览器IE浏览器-使用普通方式打开,每个浏览器表示1个客户端;使用1个浏览器

25、中的连接打开另一个浏览器,两个浏览器表示相同的客户端FireFox-在1台机器上打开任意数量的浏览器都表示相同的客户端注:关于客户端的判断可随浏览器版本更新而改变3) Request 表示请求,也就是从客户端发起请求开始到获得服务器响应为止的一个过程,在该过程中操作的所有资源都属于1个请求关系:1个session对应多个Request4) Page 表示资源,也就是当前正在访问的jsp或Servlet关系:1个Request对应多个page5) 范围内信息的传递媒介-AttributeA. 4种范围都存在1个可读可写的信息传递机制(Attribute)B. 操作方式创建/修改信息范围.setA

26、ttribute(“信息名”,信息内容);获取信息范围.getAttribute(“信息名”);返回对应的信息内容,如不存在该信息名返回null删除信息范围.removeAttribute(“信息名”);删除指定的信息名和其对应的信息内容C. 范围之间存在包含关系,范围的信息之间互相独立,没有任何关系D. 应用示例在购物系统中的购物车应在什么时候执行初始化操作?初始化后怎么操作才能使所有需要使用购物车的页面都能使用?解决方法:在Session创建时创建购物车,并将购物车对象存入Session范围的Attribute中,需要使用时可以调用getAttribute()获取购物车对象代码实现:创建对

27、Session的Listener,监听Session的创建和销毁,创建时执行上述解决方案,销毁时执行创建时的反操作16. Jsp标记1) 基本概念: 在jsp页面中,可以按照一定的语法要求,以xml的格式使用特定的功能,称为使用标记进行jsp操作2) 本质: 每个标记都是1个独立的java类,通过配置文件(.tld文件)定义使用规则,按照规则使用即可执行对应类的功能3) 分类: A. 预定义标记:在web组建使用时可以直接使用的标记,其类的定义和配置操作在web server中已完成如: ,B. 自定义标记:先实现java类并对配置文件进行配置,然后才能在jsp页面中使用a. 完全自定义: 复杂程度很高,通常开发人员不使用该方法定义标记b. 使用专业人员定义好的标记库,最常用的标记库为jstl使用方法:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2