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. Android Netty框架的使用

    Netty框架的使用 1 TCP开发范例 发送地址---192.168.31.241 发送端口号---9223 发送数据 { "userid":"mm910@mbk.co ...

  2. 基础1 JavaSe基础

    JavaSe基础 1. 九种基本数据类型的大小,以及他们的封装类 boolean 无明确指定 Boolean char 16bits Character byte 8bits Byte short 1 ...

  3. 2 CSS

    2 CSS CSS基础 html 在一个网页中负责的事情是一个页面的结构css(层叠样式表) 在一个网页中主要负责了页面的数据样式. 编写css代码的方式:     第一种: 在style标签中编写c ...

  4. POJ 2418 各种二叉排序树

    题意很明确,统计各个字符串所占总串数的百分比,暴力的话肯定超时,看了书上的题解后发现这题主要是用二叉排序树来做,下面附上n种树的代码. 简单的二叉排序树,不作任何优化(C语言版的): #include ...

  5. mybatis动态SQL中的sql片段

    在mybatis中通过使用SQL片段可以提高代码的重用性,如下情景: 1.创建动态SQL <sql id="sql_count">select count(*)< ...

  6. request获取ip数据

    http://www.cnblogs.com/icerainsoft/p/3584532.html

  7. shell中for循环

    shell中for循环总结 最常用的就是遍历操作某一类文件,比如批量建索引. for i in `ls` do samtools faidx $i done 注意:for末尾不需要冒号(:),循环的代 ...

  8. Hive中JOIN操作

    1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /* ...

  9. The Economist

      The turning point in the process of growing up is when you discover the core of strength within yo ...

  10. Supervisor管理列队

    学习了使用 Beanstalkd 管理队列之后,Supervisor 则是用来监听队列的任务,并在队列存在任务的情况下自动帮我们去执行,免去手动敲 php artisan queue:work 的命令 ...