Java Web开发基础(2)-JSP
上一篇博我粗略的介绍了一下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的更多相关文章
- Java Web开发基础(3)-JSTL
在DRP项目中接触到了JSTL标签库,对我这样的比較懒的人来说,第一感觉就是"惊艳". JSTL标签库的使用.能够消除大量复杂.繁复的工作.工作量降低的不是一点半点.是降低了一大半 ...
- java Web开发基础(一)工程项目文档结构
2013年毕业后,在深圳工作开始是用.NET ASP.NET MVC做的项目,后来公司用java来做.于是就从.NET转java了.从.NET转java不是那么的难.今天刚好是清明节放假三天,整理了j ...
- Java Web开发基础(1)-Servlet
概述 Servlet技术是对webserver的扩展,要理解这个,可能先了解一下什么是Webserver以及它的功能,特别是它的不足是非常有帮助的,可參考:点击打开链接.另外.Servlet也是一个用 ...
- java web开发基础实例(javabean+jsp+servlet+jdbc)
JavaBean:用于传递数据,拥有与数据相关的逻辑处理 JSP:从Model接收数据并生成HTML Servlet:接收HTTP请求并控制Model和View jdbc:用于配置环境 一.[建立数据 ...
- Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程
现要做一个简单的登录页面,如果用户通过验证,会显示Welcome用户名的欢迎词,反之则返回登录页面让用户再次输入 这部分的完整代码是JSPDemo项目里的login.jsp,下面来分析一下关键代码. ...
- Java Web开发基础零星知识
1. Web的三个核心标准 万维网的核心标准有三个,分别是URL.HTTP和HTML. URL(统一资源定位符,Universal Resource Locator),为描述Internet上的网页以 ...
- Java Web开发之详解JSP
JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...
- Spring MVC + Spring + Mybitis开发Java Web程序基础
Spring MVC + Spring + Mybitis是除了SSH外的另外一种常见的web框架组合. Java web开发和普通的Java应用程序开发是不太一样的,下面是一个Java web开发在 ...
- java web 开发入门 --- tomcat/servlet/jsp
在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...
随机推荐
- 20165203《Java程序设计》第九周学习总结
20165203<Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用 ...
- 微信小程序蓝牙模块
蓝牙部分知识 关于Service: 每个设备包含有多个Service,每个Service对应一个uuid 关于Characteristic 每个Service包含多个Characteristic,每个 ...
- Rewrite HTTP to HTTPS in Nginx
1.推荐配置 server { listen 80; server_name example1.com example2.com; return 301 https://$host$request_u ...
- N皇后问题的实现
N皇后问题是一个经典的问题,是回溯算法的典型案例.它是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的八皇后问题延伸而来的,具体要求如下:在N*N的方格棋盘放置N个皇后,使她们彼此不相互攻击,即任意2 ...
- HTML5练习2
1.邮箱注册网页 主要代码: <!doctype html> <html> <meta charset="utf-8"> <title&g ...
- android练习
package com.example.wang.testapp2; import android.app.AlertDialog; import android.content.DialogInte ...
- CF475C. Kamal-ol-molk's Painting
C. Kamal-ol-molk's Painting time limit per test 2 seconds memory limit per test 256 megabytes input ...
- HDU - 5136 2014icpc南京现场赛J 计数dp
题目大意:给你一个树的直径k,要求每个点的度数不超过3, 问你有多少棵树满足条件. 思路:好难啊. 主要思想就是将一棵无根二叉树树划分成有根二叉树. 我们对k的分奇偶讨论: 我们定义dp[ i ] 为 ...
- Spring Boot 实用MyBatis做数据库操作
前言: 本项目基于maven构建,使用mybatis-spring-boot作为spring-boot项目的持久层框架 spring-boot中使用mybatis持久层框架与原spring项目使用方式 ...
- URLconf+MTV:Django眼中的MVC
MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器).其中: M 管理应用程序的状态(通常存储 ...