一:jsp简介

SP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术。该技术的最大特点在于:写JSP就像写html,但它相比html而言,html只能为用户提供静态数据,而JSP技术允许在页面中嵌套java代码,为用户提供动态数据。

二:jsp原理

. JSP原理
1) web服务器是如何调用并执行一个JSP页面的?
        服务器首先将JSP翻译为一个Servlet,翻译过后的Servlet可以在\tomcat主目录\work\Catalina\localhost\工程名\org\apache\jsp目录下查看,这是服务器的工作目录。打开相应的Servlet可以看到,翻译过后的servlet继承了org.apache.jasper.runtime.HttpJspBase,而HttpJspBase继承了HttpSerrvlet。说到这里,我们就明白了,其实JSP就是一个Servlet,访问jsp即访问一个Servlet。

2) JSP页面中的html排版标签是如何被发送到客户端的以及java代码服务器是如何执行的?
        继续浏览JSP翻译过后的Servlet,里面有个service方法_jspService(request, response),在该方法中可以看到,JSP中的所有内容都会翻译到service方法中,html代码会通过out输出,就像学习JSP之前,在Servlet中用out输出html语句一样,java部分代码会原封不动的搬到service方法中。

三:jsp指令

1)page指令:

page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它的作用都是整个JSP页面。为了保持程序的可读性,page指令最好放在整个JSP页面的起始位置。例子:<%@page contentType= "text/html;charset=utf-8" %>

2)include指令:

静态引入:<%@include file="路径名">

动态引入:<jsp:include page="路径名" />

四. JSP运行原理和9大隐式对象
        由上文可知:每个JSP页面在第一次被访问时,web容器都会把请求交给JSP引擎(即一个java程序)去处理。JSP引擎现将JSP翻译成一个_jspServlet(实质上也是一个Servlet),然后按照Servlet的调用方式进行调用。由于JSP第一次访问时会翻译成Servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。
        JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用,9大隐式对象是哪些以及各自的作用是什么?

request://就是Servlet里的request
response: //就是Servlet里的response
session: //就是Servlet里的session
application: //就是servlet里的servletContext
config: //就是Servlet里的servletConfig
page: //就是Servlet自己
exception: //异常,只有errorPage才有
out://JSP页面输出
pageContext:<span style="font-family:Microsoft YaHei;">//</span>pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境

pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。

getException<span style="font-family:Microsoft YaHei;">()  //</span>方法返回exception隐式对象
getPage<span style="font-family:Microsoft YaHei;">() //</span>方法返回page隐式对象
getRequest() //方法返回request隐式对象
getResponse() //方法返回response隐式对象
getgetServletContext() //方法返回application隐式对象
getServletConfig() //方法返回config隐式对象
getSession() //方法返回session隐式对象
getOut() //方法返回out隐式对象

  

jsp(web作业)的更多相关文章

  1. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  2. [原创]Spring boot 框架构建jsp web应用

    说明 Spring boot支持将web项目打包成一个可执行的jar包,内嵌tomcat服务器,独立部署 为支持jsp,则必须将项目打包为war包 pom.xml中设置打包方式 <packagi ...

  3. 简单web作业---书籍介绍的相关网页编写

    老师布置的web作业,我做了3个页面,其中有利用老师的css代码! 我有添加背景音乐,下面的是主界面的代码. <!DOCTYPE html> <html> <head&g ...

  4. 【Web应用-Web作业】Web 作业无法直接运行 jar 文件

    问题描述 在经典管理门户中将直接压缩的 jar 文件打包为 zip 包,上传到 web 作业时报错. 解决方法 jar 文件的运行需要依托于 java 进程,所以在运行 jar 文件时,我们都会以格式 ...

  5. 9.一次简单的Web作业

    Web作业 <!DOCTYPE html> <!-- 作业描述:由于引用了JQuery库,所以请在联网的时候打开该页面. 本次作业是在上次作业的基础上的进一步完善,上次作业页面预留的 ...

  6. Eclipse创建jsp web项目

    Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插件集,包括Java开 ...

  7. jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL

     一.JavaBean概念(非常重要) 1.JavaBean就是遵循一定书写规范的Java类型(开发中:封装数据) a.必须有默认的构造方法,类必须是public的   public class  ...

  8. javaean(web作业)

    javabean简介: javabean是java语言开发的可重用组件,在jsp中使用javabean可以减少代码的重复量,使代码简洁. 他的优点: 1.可将HTML和Java代码分离,这主要是为了日 ...

  9. JSP web.xml <jsp-config>标签使用详解

    <jsp-config> 包括 <taglib> 和 <jsp-property-group> 两个子元素.其中<taglib> 元素在JSP 1.2  ...

随机推荐

  1. Day06 - Ruby三种存取限制:Public,Protected,Private

    前情提要: 在第五天的最后,我们提到了一句话“相同的class的实体也无法使用别人的singleton method”. 在今天,我们把焦点放在Ruby的method,继续了解存取限制:) Ruby经 ...

  2. 软件工程小组讨论设计NABCD

    项目名称:失物招领平台 项目工作小组:冰淇淋队 项目简介:目前同学们丢了东西都qq空间转发或者某个特定的qq群发消息,qq空间转发浪费了别人的时间,qq群发消息也浪费了别人的时间.怎么样才能浪费最少的 ...

  3. 微信小程序:request合法域名检验出错,https://apis.map.qq.com 不在以下 request 合法域名列表中

    设置域名 登录微信小程序后台, 设置→开发设置→服务器设置 必须设置域名,微信小程序才能进行网络通讯,不然会报错 如果没有设置合法域名,在开发阶段是可以不设置合法域名的 详情 -项目设置 好了,完美解 ...

  4. hibernate写list到mysql

    用jpa写下面语句执行报错,估计要先手动转成字符串吧,工作忙没继续下去了. public void persist(Goods goods) { Assert.notNull(goods);// go ...

  5. freeswitch dialplan 基础

    freeswitch dialplan 基础 一.基础概念 dialplan 拨号方案 context 拨号表(块) extension  拨号去向 action  (拨号后执行的)动作 condit ...

  6. 我们一起踩过的坑----react(antd)(一)

    1.}]          && ){             ){ ){ ||){ ){ );); , }; }); }, beforeUpload: (file) => { ...

  7. mysql 文件

    慢查询日志 log_query_time 查询时间超过这个值则会出现在慢查询日志中,默认值是10 log_slow_queries  是否开启慢查询 log_queries_not_using_ind ...

  8. 企业BGP网络规划案例(二)

    设计思路梳理 1.AS的划分 : 由于该办公网物理上被划分为总部和两个异地的办公分支,总部和分支互联采用MSTP线路,为了方便管理和更为灵活的进行路由控制,选择BGP作为总部和分支的路由协议.关于AS ...

  9. B/S架构与C/S架构

    一,概念:        首先软件体系结构定义了软件的局部和总体计算的构成,以及这些部件之间的相互作用关系.部件包括诸如服务器,客户,数据库,过滤器,程序包,过程,子程序等一切软件的 组成成分. C/ ...

  10. win10操作系统上,wireshark抓取https。

    今天试了下使用wireshark抓https的包 一.记录如下: 配置一个环境变量SSLKEYLOGFILE为D:\Temp\sslog.log(这个文件需要自己去创建). 去下载一个chrome浏览 ...