上一篇博我粗略的介绍了一下Servlet。粗略是由于博主也刚刚学习这部分的内容,还不是非常懂所以无法讲的非常精细。可是本着二八原则,我还是先继续学习。所以,这篇博客接着JSP的内容。由于。这两个内容关联性还是比較强的,学习的过程也应该是互相促进的。

简单介绍

概述:JSP(Java Server Page)简单的说是一种动态网页技术。它通过在HTML网页中嵌入可以生成动态内容的程序代码。来实现静态内容和动态内容在终于呈现给client的统一。

也就是说在HTML页中可以存在着JavaBean,JDBC对象,EJB等对象方便的訪问和产生动态内容。

    背景:JSP之前主要使用的是CGI(Common Gateway Interface)技术实现的动态站点的开发。

可是因为CGI本身功能比較小,无法满足越来越趋于复杂的Web应用。于是就导致了新的技术的产生。JSP仅仅是当中的一种。

长处

①一次编写,随处执行:基于Java语言

②可重用组件技术:我的理解就是能够方便的引入封装好的应用

    ③高效率和安全性:JSP被运行之前会先编译成字节码。然后由Java虚拟机解释运行。因此JSP能够存储于对外透明的文件夹下。

    ④标签简化页面开发

原理

之前提到过JSP和Servlet的关系非常密切的。事实上Sun公司先发展的Servlet。可是Servlet使用过的人应该知道它在也逻辑上的处理没的说的,可是在输出上就比較麻烦,由于它是面向CGI的。

假设看过之前一篇博客的Servlet的原理的话。就会发现这两张图区别不是太大。

那是由于实际上JSP是为了优化Servlet是输出问题的。因此实际上JSP也是Servlet,仅仅是比較特别。它仅仅有在执行的时候才被编译为Servlet Class文件。

基于JSP和Servlet的关系,应该非常好理解JSP文件仅仅有一次编译。然后存储到一个不正确外开放的文件夹下(Tomcat/Work)。平时这个路径下是空的。仅仅有訪问过JSP文件之后,它才会存在.class文件。如题的执行原理,例如以下图:

页面构成

模板元素:主要包含静态的HTML或者XML内容,即一个HTML框架。

    凝视:JSP页面的凝视有两种,一种是HTML凝视也叫显示凝视。须要注意的是这样的凝视能够带有表达式。还有一种是JSP隐藏凝视,它在编译的时候被忽略。

所以,前一种在浏览器查看源文件的时候是能够看见的,而隐藏凝视则看不见。

这是为什么呢?能够思考一下……这个想明确了对JSP页面构成的理解应该就能够了。

脚本元素:包含声明(Declaration)、表达式(Expression)、脚本程序(Scriptlet)。

    指令元素:JSP的指令元素用来设置页面的全局变量、声明类及实现等相关属性。它仅仅在页面范围内有效。

这里须要和声明注意区分一下。

动作元素:JSP动作利用XML语法格式标记来控制Servlet引擎的行为。

能够实现动态插入文件、重定向等功能。

内置对象

JSP的内置对象是指在页面上无需显示声明的情况下能够直接使用的对象包含例如以下九种。这里不须要显示声明的原因是由于。在Servlet实例化时会在其内部实例化这九种对象。(图片来自:《Web2.0动态站点开发:JSP技术具体解释与应用实践》)

最后:对于页面构成和内置对象仅仅是简单的提了一下,没有具体的解释。

认为没太必要,重要的是理解JSP的执行原理和其在一次请求中的位置、功能、以及它所扮演的角色。然后呢,刚刚留了一个思考在前面关于两种凝视元素的。首先JSP的页面是包含了HTML的而HTML是标记性语言,它是不经过编译的所以自然就不可能忽略掉凝视的内容。而隐藏凝视则不然。它是须要经过编译的,它之所以被隐藏是编译时被忽略了。也就是JSP是不同元素的组合。因此会有不同的处理。应该差点儿相同了。至于内置对象应该没有什么须要讲的。

Java Web开发基础(2)-JSP的更多相关文章

  1. Java Web开发基础(3)-JSTL

    在DRP项目中接触到了JSTL标签库,对我这样的比較懒的人来说,第一感觉就是"惊艳". JSTL标签库的使用.能够消除大量复杂.繁复的工作.工作量降低的不是一点半点.是降低了一大半 ...

  2. java Web开发基础(一)工程项目文档结构

    2013年毕业后,在深圳工作开始是用.NET ASP.NET MVC做的项目,后来公司用java来做.于是就从.NET转java了.从.NET转java不是那么的难.今天刚好是清明节放假三天,整理了j ...

  3. Java Web开发基础(1)-Servlet

    概述 Servlet技术是对webserver的扩展,要理解这个,可能先了解一下什么是Webserver以及它的功能,特别是它的不足是非常有帮助的,可參考:点击打开链接.另外.Servlet也是一个用 ...

  4. java web开发基础实例(javabean+jsp+servlet+jdbc)

    JavaBean:用于传递数据,拥有与数据相关的逻辑处理 JSP:从Model接收数据并生成HTML Servlet:接收HTTP请求并控制Model和View jdbc:用于配置环境 一.[建立数据 ...

  5. Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程

    现要做一个简单的登录页面,如果用户通过验证,会显示Welcome用户名的欢迎词,反之则返回登录页面让用户再次输入 这部分的完整代码是JSPDemo项目里的login.jsp,下面来分析一下关键代码. ...

  6. Java Web开发基础零星知识

    1. Web的三个核心标准 万维网的核心标准有三个,分别是URL.HTTP和HTML. URL(统一资源定位符,Universal Resource Locator),为描述Internet上的网页以 ...

  7. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  8. Spring MVC + Spring + Mybitis开发Java Web程序基础

    Spring MVC + Spring + Mybitis是除了SSH外的另外一种常见的web框架组合. Java web开发和普通的Java应用程序开发是不太一样的,下面是一个Java web开发在 ...

  9. java web 开发入门 --- tomcat/servlet/jsp

    在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...

随机推荐

  1. ASP.NET:MVC中文件上传与地址变化处理

    目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传地址的变化 一.上传文件和重复文件处理 文件处理 ...

  2. MVC图片上传并显示缩略图

    前面已经说了怎么通过MVC来上传文件,那么这次就说说如何上传图片然后显示缩略图,这个的实用性还是比较大.用UpLoad文件夹来保存上传的图片,而Temp文件夹来保存缩略图,前面文件上传部分就不再重复了 ...

  3. 微信公众号开发--用.Net Core实现微信消息加解密

    1.进入微信公众号后台设置微信服务器配置参数(注意:Token和EncodingAESKey必须和微信服务器验证参数保持一致,不然验证不会通过). 2.设置为安全模式 3.代码实现(主要分为验证接口和 ...

  4. hdoj2602 Bone Collector(DP,01背包)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2602 题意 有n块骨头,每块骨头体积为volume,价值为value,还有一个容量为v的背包,现在将骨 ...

  5. ref:详解MYSQL数据库密码的加密方式及破解方法

    ref:https://blog.csdn.net/paul123456789io/article/details/53081921 MySQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中 ...

  6. 2017-2018-1 20179202《Linux内核原理与分析》第八周作业

    一 .可执行程序的装载 1. 预处理.编译.链接 gcc –e –o hello.cpp hello.c //预处理 gcc -x cpp-output -S -o hello.s hello.cpp ...

  7. 虚拟机spark集群搭建

    RDD弹性分布式数据集 (Resilient Distributed Dataset) RDD只读可分区,数据集可以缓存在内存中,在多次计算间重复利用. 弹性是指内存不够时可以与磁盘进行交互 join ...

  8. Eclipse插件安装出现Duplicate location错误

    一.原因 1.曾今安装过此插件 2.曾今安装此插件的时候出现错误 二.解决方法[eclipse] - Help - Install new software - Available Software ...

  9. [SQL]196. Delete Duplicate Emails

    Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique ...

  10. [ 转载 ] Java中常用的设计模式

    Java中常用的设计模式 1.单例模式 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个 ...