JSP概述

您所在的位置:网站首页 java技术的优点 JSP概述

JSP概述

2023-12-12 11:39| 来源: 网络整理| 查看: 265

1、什么是JSP

     JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。      它实现了Html语法中的java扩展(以 形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。      JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。      Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

2、语言特点

    * 优点

          (1)一次编写,到处运行。除了系统之外,代码不用做任何更改。

          (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

          (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

          (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

             (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

     * 缺点

           (1) 与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

           (2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

3、JSP运行原理

       * 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。        * Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。        * JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。        * JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。        * Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。        * Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。        * Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

4、JSP语法

     (1)、JSP模版元素 :jsp页面中书写的HTML内容称作JSP的模版元素,在翻译过来的 Servlet 中直接被 out.write() 输出到浏览器页面上了

     (2)、JSP表达式 ``其中可以书写常量,变量,表达式, 在翻译过来的Servlet中,计算java表达式的值后,被out输出到浏览器上

     (3)、JSP脚本片断 `` 在翻译过来的Servlet中,直接被复制粘贴到了对应的位置执行. 在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素 多个脚本片断中的代码可以相互访问,犹如将所有的代码放在一对``之中的情况         单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句     (4)、JSP声明  `` 在翻译过来的Servlet中会被放置到和Service方法同级的位置,变成了类的一个成员       

    (5) 、JSP注释

             `` 被jsp注释注释掉的内容,在jsp翻译引擎将jsp翻译成Servlet的过程中会被丢弃,在翻译过来的Servlet中没有这些信息

            `` java注释被当作jsp脚本片段被翻译到了Servlet中,在.java文件被翻译成.class文件的时候注释信息被丢弃

             `` html注释被当作模版元素输出到了浏览器上,浏览器认识html注释不予显示

    (6)、JSP指令``

           JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分

          page指令

          Include指令:

                      include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet 只有include指令进行的包含是静态包含,其他的包含都是动态包含 taglib指令

     (7)、JSP九大隐式对象:在翻译过来的Servlet中Service方法自动帮我们前置定义的九个对象,可以在jsp页面中直接使用

            page

           confing

           application

           response

           request

           session

           out

           exception

           pageContext

           out

          相当于是response.getWriter得到PrintWriter

          out和response.getWriter获取到的流不同在于,在于这个out对象本身就具有一个缓冲区.利用out写出的内容,会先缓冲在out缓冲区中,直到out缓冲区满了或者整个页面结束时out缓冲区中的内容才会被写出到response缓冲区中,最终可以带到浏览器页面进行展示

         page指令中的

                 [buffer="none | 8kb | sizekb" ]可以用来禁用out缓冲区或设置out缓冲区的大小,默认8kb

                [ autoFlush="true | false"]用来设置当out缓冲区满了以后如果在写入数据时out如何处理,如果是true,则先将满了的数据写到response中后再接受新数据,如果是false,则满了再写入数据直接抛异常

        在jsp页面中需要进行数据输出时,不要自己获取response.getWriter,而是要使用out进行输出,防止即用out又用response.getWriter而导致输出顺序错乱的问题

       **pageContext**

               (1)、可以作为入口对象获取其他八大隐式对象的引用

                    getException方法返回exception隐式对象

                    getPage方法返回page隐式对象

                    getRequest方法返回request隐式对象

                    getResponse方法返回response隐式对象

                    getServletConfig方法返回config隐式对象

                    getServletContext方法返回application隐式对象

                    getSession方法返回session隐式对象

                    getOut方法返回out隐式对象

               (2)、域对象,四大作用域的入口,可以操作四大作用域中的域属性

                    作用范围: 当前jsp页面

                    生命周期: 当对jsp页面的访问开始时,创建代表当前jsp的PageContext,当对当前jsp页面访问结束时销毁代表当前jsp的pageContext

                   作用:在当前jsp中共享数据  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3