J S P入门---到精通

JSP 入门 

1.建立对JSP的直观认识

2.JSP的运行原理

3.JSP隐式对象

4.注册与配置jsp页面的访问路径

5.JSP与Servlet的应用比较

首先我们来说说JSP的起源

     在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。

     如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序代码产生,整个Servlet程序的代码将非常臃肿,编写和维护都将非常困难。

      对大量静态内容的美工设计和相关HTML语句的编写,并不是程序员所要做的工作,程序员对此也不一定在行。网页美工设计和制作人员不懂Java编程,更是无法来完成这样的工作。

       为了弥补 Servlet 的缺陷,SUN公司在Servlet的基础上推出了JSP(Java Server Pages)技术作为解决方案。

        JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式编写。

起初我们要先建立对JSP的直观认识

        JSP页面是由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件,JSP 页面的文件扩展名必须为.jsp。

       在JSP页面中编写的Java代码需要嵌套在<%和%>中,嵌套在<%和%>之间的Java代码被称之为脚本片段(Scriptlets),没有嵌套在<%和%>之间的内容被称之为JSP的模版元素

        JSP中的Java代码可以使用out.println语句将其他Java程序代码产生的结果字符串输出给客户端,也可以使用System.out.println语句将它们打印到命令行窗口。

        JSP文件就像普通的HTML文件一样,它们可以放置在WEB应用程序中的除了WEB-INF及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式也完全一样。         在JSP页面中也可以使用一种称之为JSP表达式的元素,只需将要输出的变量或表达式直接封装在<%= 和 %>之中,就可以向客户端输出这个变量或表达式的运算结果。在这里要特别注意在JSP表达式中嵌套的变量或表达式后面不能有分号。  

  JSP的运行原理

        WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。

        每个JSP 页面在第一次被访问时,翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。

        JSP规范也没有明确要求JSP中的脚本程序代码必须采用Java语言,JSP中的脚本程序代码可以采用Java语言之外的其他脚本语言来编写,但是,JSP页面最终必须转换成Java Servlet程序。         可以在WEB应用程序正式发布之前,将其中的所有JSP页面预先编译成Servlet程序。

JSP隐式对象

public void _jspService(HttpServletRequest request,             

                                HttpServletResponse response)         

                        throws java.io.IOException, ServletException

        {     

                JspFactory _jspxFactory = null;     

                PageContext pageContext = null;     

                HttpSession session = null;     

                ServletContext application = null;     

                ServletConfig config = null;     

                JspWriter out = null;     

                Object page = this;   

                 ...     

                ...     

                Throwable exception =                                 org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);     

                if (exception != null) {                                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);                     }

JSP与Servlet的应用比较

        JSP是一种以产生网页显示内容为中心的WEB开发技术,它可以直接使用模版元素来产生网页文档的内容。

        JSP页面的源文件要比Servlet源文件简单,并且JSP页面的开发过程要比Servlet的开发过程简单得多。

         JSP引擎可以对JSP页面的修改进行检测,并自动重新翻译和编译修改过的JSP文件。

        JSP技术是建立在Servlet技术基础之上的,所有的JSP页面最终都要被转换成Servlet来运行。         在大型WEB应用程序的开发中,Servlet与JSP经常要混合使用,各司其职,Servlet通常用作控制组件,并处理一些复杂的后台业务,JSP则作为显示组件。

        一次响应过程可以划分成几个功能模块来协同完成,首先由Servlet完成流程控制和业务处理,并将结果数据存储在request或session域中,然后将请求转发(forward)到JSP页面,再由JSP页面从request或session域中取出结果数据并完成响应内容的输出。通过这种方式实现业务逻辑与显示内容的分离,从而将应用程序开发者和网页作者的工作分离。

JSP基本语法

        JSP模版元素

        JSP表达式

        JSP脚本片断

        EL表达式

        JSP注释

        特殊字符序列的转义处理

        如何查找JSP页面中的错误

JSP模版元素

        JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP的其他各种元素来产生动态内容和执行业务逻辑。

        JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。

JSP表达式

        JSP表达式(expression)提供了将一个java变量或表达式的计算结果输出到客户端的简化方式,它将要输出的变量或表达式直接封装在<%= 和 %>之中。   

 举例:Current time: <%= new java.util.Date() %>

        JSP表达式中的变量或表达式的计算结果将被转换成一个字符串,然后被插入进整个JSP页面输出结果的相应位置处。

        JSP表达式中的变量或表达式后面不能有分号(;),JSP表达式被翻译成Servlet程序中的一条out.print(…)语句。

JSP脚本片断(1)

         JSP脚本片断(scriptlet)是指嵌套在<% 和 %>之中的一条或多条Java程序代码。

         在JSP脚本片断中,可以定义变量、执行基本的程序运算、调用其他Java类、访问数据库、访问文件系统等普通Java程序所能实现的功能。

         在JSP脚本片断可以直接使用JSP提供的隐式对象来完成WEB应用程序特有的功能。

        JSP脚本片断中的Java代码将被原封不动地搬移进由JSP页面所翻译成的Servlet的_jspService方法中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凵忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值