Java华丽转身 —— JSP剖析

2 篇文章 0 订阅

    JSP有点类似于ASP,是通过在HTML文件中加入java程序片段(Java Scriptlet)和JSP标记(tag),就构成了JSP文件。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

 

JSP工作原理


 

 

          当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:


         首先会把JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将终端,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该class文件加载到内存中。

 

    JSP容器负责调用从JSP转换来的Servlet,这些Servlet负责提供服务相应用户请求;如果有多个请求,则容器会建立多个线程处理多个请求。

 

          由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。

 


JSP在客户端和服务器端的行为


       


        

    (1)客户端:其实就是标准的HTML+script),JSP在客户端没有超越HTML+script)规范,不比静态的HTML页面多出多少行为。

       

    (2)服务器端:JSP在经过JSPCJAVAC的帮助下,过程上经历了JSP页面——>JSP页面的翻译过程.java——>编译过程.class。在翻译过程中实现了JSP WEB编程规范中的Servlet接口,拥有了处理客户端http请求和输出http响应的能力,最终再成为.class文件就拥有了被JVM执行,被WEB容器调用的能力。

        只有理解了服务器端和客户端两边的行为,对JSP的理解才会层层深入。

 


JSP的基础


一个JSP页面主要由注释、指令、脚本元素、动作元素的内容组成。


1、JSP注释包括HTML注释和JSP隐藏注释。

 

2、指令

        Page:用来定义整个JSP页面的属性和相关功能。

Include:用来指定JSP文件被编译时需要插入的资源,可以是文本、代码、HTML文件或JSP文件。

Taglib:页面使用者来自定义标签

 

3、脚本元素

1)声明:用来定义在程序中使用的实体,它是一段Java代码,可以声明变量,也可以声明方法。

 格式:<%! 开始声明 %> 

2)表达式:<%=表达式%>

3Scriptlet:<%java代码%>

 

4、动作指令:IncludeForwardUseBeanGetPropertySetPropertyPlugin. 

                              



JSPServlet的比较

  

    两者都可以用于开发动态Web资源。

    JSP的优点是擅长于网页制作,生成动态页面比较直观,缺点是不容易跟踪与排错。

    Servlet是纯Java语言,擅长处理流程和业务逻辑,缺点是生成动态网页不直观。

    根据两者不同的特点,servlet只负责相应请求产生数据,并把数据通过转发技术带给JSP,数据的显示JSP来做。

 



JSPJS区别


1、JSP全称是java server page ;JS全称是javaScript


2、最主要的区别是运行位置不同。

    JSP运行在后台服务器上,混合在HTML中的java程序段,用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化,具有丰富数据交互效果的页面。

 

    JavaScript通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。

 

     个人理解 JSP 可以看做 JavaScript + AJAX

 

3、JSP在HTML中用<%%>里面实现;JS在html中用<Script></Script>实现

 


注意:

    JSP页面必须要在JSP服务器内运行,如tomcat weblogic,jboss等等.

    JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。

 


总结

    

    JSPWeb的显示层,在前端起到了与用户交互的作用,它实质上也是一个高级的Servlet,后台翻译成ServletServlet与服务器端交互。同时在客户端与服务器端交互的时候,服务器端给客户端输出的就是纯碎的HTML


评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值