一: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隐式对象

  

转载于:https://www.cnblogs.com/ykh-study/p/10746555.html

jsp(web作业)相关推荐

  1. JSP Web学习心得

    JSP Web学习心得1 目的 我在学校学习JSP Web,今天写作业时发生错误,写下处理,以后的同学们也可以避免同时也方便自己以后看. 资料 我使用的书籍<JSP Web技术实验及项目实训教程 ...

  2. java+ee+网页修改数据库_基于jsp的作业批改-JavaEE实现作业批改 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的作业批改, 该项目可用各类java课程设计大作业中, 作业批改的系统架构分为前后台两部分, 最终实现在线上进行作业 ...

  3. IDEA JSP实验作业-1

    JSP实验作业-1 文章目录 JSP实验作业-1 一.JSP基本结构 二.JSP动作标记 1.实验目的 2.实验内容 实验代码 1_one.jsp 2_two.jsp 1_three.jsp 1_er ...

  4. JSP大作业数据库_本地MySQL【种种问题】

    JSP大作业数据库MySQL第1部分.zip: 链接:https://pan.baidu.com/s/1ZHwxAnATQSSjC-F6EpxeUw 提取码:30kw JSP大作业数据库MySQL第二 ...

  5. JSP WEB开发入门基础到高手进阶教程002

    JSP WEB开发入门基础到高手进阶教程 -------开发入门 JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript. ...

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

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

  7. 计算机jsp外文文献,计算机 JSP web 外文翻译 外文文献 英文文献

    计算机 JSP web 外文翻译 外文文献 英文文献 外文资料 所译外文资料: ①作者:Dan Malks ②书名:Professional JSP ③出版时间: 2000.7.26 ④所译章节: C ...

  8. java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

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

  9. JSP作业提交管理系统(JSP作业管理系统)JSP学生作业管理JSP教师作业批改业提交管理系统

    JSP作业提交管理系统(JSP作业管理系统)JSP学生作业管理JSP教师作业批改业提交管理系 开发语言:Java 开发工具:Myeclispe /Eclipse 数据库:MYSQL 应用服务:Tomc ...

  10. JSP Web编程的设计过程

    JSP Web编程的设计过程,这是一个非常重要的过程,因为糟糕的设计所导致的问题只有在发布以后才能体现出来,而那是已经为时过晚.相反一个好的考虑周到的设计可以使可能出现的问题尽早被发现,并且使Web应 ...

最新文章

  1. AndroidWear开发之HelloWorld篇
  2. 使用 MWC V2.5 中的 MPU6050中的DMP进行计算姿态(转载)
  3. Fail at Scale
  4. Fedora10 以root身份自启动
  5. Spring Data JDBC通用DAO实现–迄今为止最轻量的ORM
  6. java jmeter_使用Jmeter中的Java Request进行性能测试
  7. 加载类_JVM类加载
  8. 【报告分享】GitHub 2020数字洞察报告.pdf(附下载链接)
  9. 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——LSTM模型构建与训练
  10. 查看oracle数据库服务器的名字
  11. 原生android系统换主题字体,Android 自定义字体,更换系统默认显示的字体使用自定义字体...
  12. 清华大学计算机与科学系张荷花简历,清华大学软件学院
  13. keras入门(三)搭建CNN模型破解网站验证码 1
  14. [备忘]Oracle数据库字段缺省值函数-ID值自动填充
  15. 大学生应该读什么书——一位年轻老师给他的年轻学生的一封回信
  16. 把单元格一分为二_怎么将一个单元格一分为二
  17. 正则表达式re库 python3
  18. 这家公司用AI生成颠覆内容创作!
  19. 关于Java中的锁,看这一篇就够了(总结篇)
  20. 拜占庭容错(BFT)算法介绍

热门文章

  1. idea创建maven工程_maven创建父子工程 springboot自动配置
  2. 【渝粤教育】国家开放大学2018年春季 0579-21T电路及磁路(2)(一) 参考试题
  3. 20届校招-携程笔试题-表达式解析
  4. 数据结构与算法LeetCode题目索引
  5. (转)java中使用memcache
  6. [原创]关于comsenz 公司 系列论坛类型开源网站搭建的心得
  7. 浅谈.net的后台校验
  8. NOIp2018集训test-10-20 (bike day6)
  9. 一、IOC和DI的概念
  10. 01knockout应用开发之遍历简单数据$Index、$data