JSP最终会变成一个完整的servlet在web应用中运行。它与其他的servlet非常相似,只不过这个servlet类会由容器编写。

1.JSP的生命周期

  如果一个web应用包含JSP,部署这个应用时,在JSP生命周期中,整个转换和翻译步骤只发生一次。JSP一旦得到转换和翻译,就像其他servlet一样了,而且类似于其他的servlet,一旦这个servlet得到加载和初始化,请求时只会发生一件事,就是创建或分配一个线程来运行服务方法。所以只有第一个请求JSP的呵护会等得长一些,以后的其他请求能够很快得到处理。

2.JSP代码发生了什么

  容器会根据JSP创建servlet。

  1)查看指令,得到转换时可能需要的信息;

  2)创建一个HttpServlet子类;

  3)如果一个page指令有import属性,在类文件的最上面导入相关包;

4)如果有声明,将生命写到类文件中;

5)建立服务方法,具体方法名是_jspService(),_jspService()由servlet超类被覆盖的service()方法调用,接收HttpServletRequest和HttpServletResponse参数,在这个方法中,容器会声明并初始化所有隐式对象;

6)将普通的HTML、scriptlet和表达式放到服务方法中,完成格式化,并写至PrintWriter响应输出;

3.JSP中的4种元素和3种指令

  4种元素

Scriptlet:<%  %>

指令:<%@  %>

表达式:<%=  %>

声明:<%!  %>

3种指令

page指令

taglib指令

include指令

4.JSP中的隐式对象

JSP初识的更多相关文章

  1. [Servlet&amp;JSP] 初识ServletContext

    ServletContext是整个Web应用程序运行后的代表对象,能够通过ServletConfig的getServletContext()方法来取得,之后就能够利用ServletContext来取得 ...

  2. JavaWeb与JSP初识

    JavaWeb执行过程 目录结构 Web程序部署在Tomcat的/webapps下面. 一个webapps文件夹可以部署多个不同的Web应用,webapps/web1,webapps/web2. 如果 ...

  3. 蜗牛—JSP学习之JavaBean初识

    初识: <%@ page language="java" import="java.util.*" pageEncoding="utf-8&qu ...

  4. 第二章 初识JSP

    第二章   初识JSP 一.JSP简述 1.是JSP JSP是指在HTML中嵌入Java脚本语言.全称(Java Server Pages) 当用户通过浏览器访问Web应用时,使用JSP容器对请求的J ...

  5. 初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面

    1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响 ...

  6. java web学习之初识jsp

    用java语言(+html语言)开发动态资源的技术: jsp的运行过程,1:tomcat服务器将jsp代码翻译成java代码,并且编译成class文件 2:tomcat服务器构造类对象 3:tomca ...

  7. JSP之->初识JSP

    JSP 引用百度百科的介绍: JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在 ...

  8. myeclipse10 .jsp将表单提交给.java(form网页与后台通信初识)

    做毕设需要用到form通信. 以下几张截图来自极课学院 servlet jsp文件 web配置 出现错误: 路径问题 仍然不对,需要再改 <form action="servlet/S ...

  9. JSP之初识2

    <与%之间不可有空格,但是后面可以有空格 <%@ page language="java" import="java.util.*" pageEnc ...

随机推荐

  1. linux 命令 第一波

    man 命令名字 查看命令详细解释 q退出cd 切换目录cd .. 回到上级目录su 切换用户pwd 当前目录mkdir cmy 创建cmy文件夹[目录]rm cmy 删除cmy文件夹[如果cmy里面 ...

  2. Linux计划任务入门详解

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  3. 自定义MVC Html

    自定义ASP.NET MVC Html辅助方法 在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我 ...

  4. ScrollVIew 边界阴影效果

    一.删除android ScrollView边界阴影方法方法 1) 在xml中添加:android:fadingEdge=”none” 2) 代码中添加:ScrollView.setHorizonta ...

  5. unity3d magnitude的意义

    http://blog.csdn.net/fzhlee/article/details/8663564   magnitude (Read Only) 返回向量的长度,也就是点P(x,y,z)到原点( ...

  6. 关于OneProxy推广

    通过以下关键字 分库分表,读写分离,连接池,跨库查询,开源数据库,MySQL,高性能,并行查询 在搜索引擎中,都找不到OneProxy和OneSQL的影子

  7. rsa加密--选择padding模式需要注意的问题。。。

    最近在做一个项目中需要,在android对一个密码字段首先进行 一次md5加密后再进行一次rsa加密,然后把加密的结果通过 json协议传输给nginx服务器进行解密.在android中,可以直接 使 ...

  8. C#的对象内存模型

    转载自:http://www.cnblogs.com/alana/archive/2012/07/05/2577893.html C#的对象内存模型: 一.栈内存和堆内存1.栈内存 由编译器自动分配和 ...

  9. sass less

    CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...

  10. php面向对象Object

    1.创建类 class 类名{ private 私有变量 只能本类的内部使用 protected 受保护的变量 本类和子类的内部 public 公开的变量 都可以使用 一般属性都设为私有 一般函数都是 ...