第二章 初识JSP
第二章 初识JSP
一.JSP简述
1、是JSP
JSP是指在HTML中嵌入Java脚本语言。全称(Java Server Pages)
当用户通过浏览器访问Web应用时,使用JSP容器对请求的JSP进行处理和运行,然后将生成的页面返回客户端浏览器进行显示。
Tomcat服务器属于JSP容器的一种。
2、JSP的由来
JSP是由Sun公司倡导、许多公司共同参与,一起建立起来的一种动态网页技术标准。
并具有跨平台、易维护性、易管理性等优点。
3、JSP的组成部分
JSP页面由:静态内容、指令、表达式、小脚本、声明、标准动作、注释等元素组成。
二.JSP元素
1.静态内容
静态内容是JSP页面中的静态文本,其基本是HTML文本,与Java和JSP语法无关。
2.JSP指令元素
JSP指令元素的作用是通过设置指令中的属性,在JSP运行时,控制JSP页面的某些特性。
语法:<%@ 属性1=”属性值”….. 属性n=”属性值” %>
|
Page指令的常用属性 |
|
|
属性 |
描述 |
|
Language |
指定JSP页面使用的脚本语言,默认为“java” |
|
Import |
通过属性引用脚本语言中使用到的类文件 |
|
contentType |
用于指定MIME类型和JSP页面回应时所采用的字符编码格式,默认为“text/html;charset=ISO-8859-1” |
3.JSP表达式
表达式是对数据的表示,系统将其作为一个值进行计算和显示。
语法:<% =java变量或表达式 %>
例:
<%= Math.max(grade[0],grade[1]) %>
<% out.print(Math.min(grade[0],grade[1])); %>
4.JSP小脚本
小脚本可以包含任何的java片段,形式比较灵活,通过在JSP页面中编写小脚本可以进行复杂的操作和业务处理。
编写的方法是将java程序片段插入<%%>标记中。
语法:<% java片段代码…..%>
例:
<%
Int[] grade={70,80,90};//学员成绩的数组
%>
5.JSP的声明
在编写JSP页面程序时,有时需要为Java脚本定义成员变量和方法,这时需要JSP声明来实现。
语法:<%! 声明内容….%>
例:格式化显示时间的方法
<%!
String formatDate(Date d){
java.text.SimpleDateFormat formater=
new java.text.SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
return formater.format(d);
}
%>
6.JSP中的注释
单行注释:<% //单行注释 %>
多行注释:<% /*多行注释*/ %>
在JSP页面中,将小脚本(scriptlet)、表达式(expression)、声明(declaration)统称为JSP脚本元素。
三.JSP原理
1. 翻译阶段
当WEB容器接收到JSP请求时,首先对JSP文件进行翻译,将编好的JSP文件通过JSP容器转换成可识别的Java源代码。
2. 编译阶段
将Java源文件编译成可执行的字节码 文件。
3. 执行阶段
执行二进制字节码文件,将生成的结果页面返回客户端浏览器显示。
Web容器会把编译好的字节码文件保存在内存中,当客户再次请求相同的JSP时,就可以重用这个编译好的字节码文件,而不会重新编译同一个JSP文件。
所以JSP第一次请求时较慢,后续的速度就会很快。
第二章 初识JSP的更多相关文章
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
第二章:高层体系结构 容器 1 什么是容器? servelet没有main()方法.它们受控于另一个Java应用,这个Java应用称为容器(Container) Tomcat就是这样一个容器.Web服 ...
- redis实战笔记(1)-第1章 初识Redis
第1章 初识Redis 注:本书在redis3.0版本的,比如redis3.0以后支持服务端集群.3.0之前只能客户端分片. 本章主要内容 1.Redis与其他软件的相同之处和不同之处 2.Re ...
- springMVC第二章
springMVC第二章 一.URL 映射 可以同时设置多个URL来访问某个控制器或方法.设置value属性: @RequestMapping(value= {"/grade",& ...
- C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
- 《精通Spring4.x企业应用开发实战》第二章
昨天联系了一下学长,学长说这个项目因为种种原因代码比较混乱,感觉最坏的打算是从头开始写. 大概询问了一下学长和xianhua学姐的建议,又看了看网上的资料,这个项目开发的技术栈基本就是SpringBo ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
随机推荐
- c# ffmpeg视频转换【转载】
c# ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...
- Nancy启用跨站攻击防护(CSRF)
什么是CSRF(跨站攻击) 可能很多人已经对CSRF有所了解,就简单的介绍下: CSRF全程是 Cross-Site Request Forgery .大概意思就是在登录用户不知情的情况下,由一个网站 ...
- python数据库连接池设计
一.背景: 传统访问资源,一般分为一下几个步骤: 1.实例数据驱动对象与链接资源.2.实例操作资源游标.3.获取资源.4.关闭链接资源. 根据以上步骤,我们可以很简单使用这个原始方法来访问资源为我们业 ...
- .NET Core开源API网关 – Ocelot中文文档
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...
- Defraggler磁盘碎片整理工具,让你的电脑读写速度更快
相信大家都听说过磁盘碎片整理吧,所谓磁盘碎片,通俗的来说,就是指计算机中的各种文件最开始在磁盘中存储的时候地址都是连在一起的,但是随着文件 的多次读写,或者说多次的移动复制等操作,这些文件在磁盘中的地 ...
- Windows下安装TensorFlow
最近学习TensorFlow,当然前提是装好框架,网上教程很多都是虚拟搭建或者是conda,从我的经验来讲,Windows目前只支持Python3.5版本安装,Python官网上有说明: 本人由于常用 ...
- 如何修改Jmeter配置使能支持更大并发
Jmeter做并发测试时,报错 java.lang.OutOfMemoryError:gc overhead limit exceeded. 原因是jmeter默认分配内存的参数很小,256M吧.故而 ...
- tcpdump抓包工具的使用
个人原创,转载请注明,否则依法追究法律责任 2018-02-28 16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 1 不接任何参数 ...
- Centos搭建开发环境,PHP7+ Nginx1.12+ Mysql5.7
1.更新yum源 yum -y update 2. 安装 epel-release yum install epel-release -y 检测安装成功:yum search nginx 结果含有: ...
- python全栈开发-Day7 字符编码总结
python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...