HeadFirst Jsp 07 (使用 jsp)
Jsp 变成 Servlet, 容器会查看你的JSP, 把它转换成java源代码, 再编译成完整的Java servlet类.
Jsp 不需要你的编译, 容器会自动替换成servlet.

在 jsp中可以使用 scriptlet放入常规的java代码, 所谓scriptlet, 就是放在 <% … %> 标记中的Java代码.
导入一个包, 多个包用逗号分隔
<%@ page import=”java.util.*, foo.*;” %>
多个包
<%@ page import=”foo.*, java.util.*;”%>
<%@ %> 表示指令
<% %> 普通jsp 代码 // 注意这里的内容都是局部变量, 因为jsp再转化成Servlet时, 所有的代码都在一个函数内, 函数内的变量当然是局部变量了.
<%= %> 表达式 例如 <%= ++count %> // 注意表达式后边不要分号, 自动会调用 out.print(++count);
<%! %> 用来声明静态变量和方法, 实例变量和方法, 所有内容都会增加到类中, 而且置于服务方法之外. 这里所时候的类是jsp最后生成的那个类.
<%! int count=0; %> // 这是一个实例变量
<%! int doubleCount() {
count = count * 2;
return count;
}
%>
<jsp:include page=”wickedFooter.jsp” /> // 标准动作
<c: set var=”rate” value=”32” /> // 其他动作

在开发过程中, 没有必要查看容器生成的代码, 但是可以利用这些代码帮助学习, 一旦了解了容器如何处理JSP的各个不同元素, 就不用再查看容器生成的.java源文件了, 而且有些开发商不准许你查看生成的java源代码,只保留了编译后的.class文件.



容器自己生成的隐式对象

在jsp中的注释:


jsp 生命周期






JSP 转换成 servlet 只发生1次, JSP一旦得到转换和编译, 就像其他servlet一样了, 而且类似于其他的servlet, 一旦servlet得到加载和初始化, 请求时只会发生一件事, 就是创建或分配一个线程来运行服务方法. 所以创建JSP转换成servlet类只是在第一个请求时发生.
配置 servlet 初始化参数

以上的配置, 是针对某个特定的servlet.
覆盖 jspInit() 方法
<%!
public void jspInit() {
}
%>

JSP中可以通过隐式对象, 访问属性

3 大指令
注意下边, page是一个指令, 而import是page指令的一个属性.


即前端开发人员和美工人员, 他们不懂java代码, 所以从这个角度说, 嵌套在一起不好.
要是 JSP 中有办法使用简单的标记来运行java方法, 而且不用把具体的java代码放在页面中, 那该多好, 一切答案尽在EL中.
对于JSP的做法, 往往有两大抱怨:
1) 不应该要求Web页面设计人员必须懂 java.
2) JSP中的 java代码很难维护和修改.
EL 即表达式语言(Expression Language)的简写, 从 JSP2.0规范开始, 它已经正式成为规范一部分. 原先能用scriptlet和表达式完成的事情, 都能用EL完成, 而且EL往往更为简单. 但是编写具体的功能(方法代码), 不是EL的用途, EL的用于使提供一种更简单的方法来调用java代码. 但是代码本身放在别的地方. 按照当今的最佳实践, 不能再JSP中编写方法代码, 要把java方法写在别的地方, 再用EL来调用.
EL 表达式: Please contact: ${applicationScope.mail} 表达式形式: ${something}
对于 Java程序员来说, 从开发角度看 EL 不一定是显著地进步, 实际上, 在 java程序员看来, 这只是意味着“拜托, 我已经懂java了, 可是又要学一个东西” 不过不能只看你自己, 对于WEB美工人员来说, EL更好学, 更易掌握.
HeadFirst Jsp 07 (使用 jsp)的更多相关文章
- JSP页面以及JSP九大隐式对象
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...
- JSP之->初识JSP
JSP 引用百度百科的介绍: JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在 ...
- jsp学习---使用jsp和JavaBean实现超简单网页计算器
一.需求 如题,用jsp实现一个超简单的网页计算器. 二.实现 1.效果图 1)初始界面: 2)随便输入两个数进行相乘: 3)当除数为零时提示报错: 2.代码 Calculator.java pack ...
- Java遇见HTML——JSP篇之JSP指令与动作元素
一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...
- Java遇见HTML——JSP篇之JSP基础语法
一.JSP简介 JSP全名为Java Server Pages,Java服务器端页面,其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.Jsp是一种动态网页技术标准,是在服务 ...
- JSP起源、JSP的运行原理、JSP的执行过程
JSP起源 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序 ...
- jsp的静态包含与动态包含:<%@ include file="" %>和<jsp:include page=""></jsp:include>区别与分析
<%@ include file="" %>是将文件原封不动的copy进现有的文件中,像是拼接好后,再编译成为servlet运行. <jsp:include pa ...
- JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象
1 什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的 ...
- JavaWeb学习----JSP简介及入门(JSP结构及JSP处理)
[声明] 欢迎转载,但请保留文章原始出处→_→ 艾水及水:http://www.cnblogs.com/liuhepeng 文章来源:http://www.cnblogs.com/liuhepeng ...
随机推荐
- 4-Highcharts 3D图之3D普通饼图
<!DOCTYPE> <html lang='en'> <head> <title>4-Highcharts 3D图之3D普通饼图</title& ...
- O2O模式成功案例分享 汲取精华化为己用
本文通过分享一些公司的o2o成功案例让您了解什么是O2O,o2o的优势,o2o模式有哪些,未来我们要如何做o2o才更有竞争力,学牛人的o2o创新玩法,摸索适合自己的o2o思路.拥抱o2o - 传统企业 ...
- 金融证券协议FIX/FAST/STEP
金融信息交换协议FIX是适用于实时证券.金融电子交易的数据通信标准.它是把各类证券金融业务需求流程格式化,使之成为一个可用计 算机语言描述的功能流程,并在每个业务功能接口上统一交换格式.STEP(Se ...
- delphi 中几种多线程操作方式
在了解多线程之前我们先了解一下进程和线程的关系 一个程序至少有一个主进程,一个进程至少有一个线程. 为了保证线程的安全性请大家看看下面介绍 Delphi多线程同步的一些处理方案大家可以参考:http: ...
- 【linux】打印字符串中指定行
只打印第10行 关键在于当行数小于10时不输出. 用 head tail的关键问题是当行数小于10的时候用 head -n 10 只会打出前面的行,再用tail就错了. 所以要知道源文件一共有多少行. ...
- Raphaël 是一个小型的 JavaScript 库,用来简化在页面上显示向量图的工作。你可以用它在页面上绘制各种图表、并进行图片的剪切、旋转等操作。
点这里 在线效果演示:http://raphaeljs.com/pie.html http://raphaeljs.com github: https://github.com/DmitryBaran ...
- ThinkPHP 单字母函数整理
TP所有单独的函数,除了两个用来生成项目的buildAppDir之类的,其余都在框架目录/Common/functions.php这个文件里. A函数(基本是Action的简写) A函数是用来实例化我 ...
- dom对象详解--document对象(二)
dom对象详解--style对象 style对象 style对象和document对象下的集合对象styleSheets有关系,styleSheets是文档中所有style对象的集合,这里讲解的 ...
- 初始BOM
1.BOM(Browser Object Model),定义了操作浏览器的借口 2.常用的BOM对象:Window, History,Navigator,Screen, Location等 3.由于浏 ...
- oracle11g手工建库步骤
平台:Linux AS release 5,Oracle11.1.0.7db_name = SBDB 1. 设置环境变量export ORACLE_BASE=/opt/oracleexport ORA ...