1.Jsp生命周期分为两个阶段:

(1)转换阶段:由JSP引擎实现,涉及到生成servlet。在内部,这会为JSP页面生成一个类文件以便实现servlet接口。

(2)请求阶段:根据请求规范生成响应

(3)JSP转换为servlet后,容器调用在javax.servlet.jsp.JspPage 接口中定义的servlet上的生命周期方法如下

c1:jspInit():servlet初始化时调用此参数

c2:jspService():收到对JSP页面的请求时调用此方法

c3:jspDestroy():从服务中删除servlet之前调用的方法

2.JSP指令如下

(1)page指令 定义将关于JSP页面一般设置通知Web容器的属性。可以用page命令制定不同属性。

page指令的语法 <%@ page attribute_list %>

属性名称                              描述

language                   定义JSP页面的脚本语言

extends                     定义JSP生成的servlet扩展的父类

import                       讲包类或接口的列表导入生成的servlet中

session                     指定生成的servlet可不可以访问会话,如果赋值为true,将生成隐式对象,默认值为true

buffer                        指定输出缓冲区的大小。如果大小设置为none,则不进行缓冲。buffer大小的默认值时8KB

autoflush                  如果此属性设置为true,则自动刷新输出缓冲区。如果属性值设置为false,则缓冲区满是将引发异常,默认值为false

isThreadSafe          指定JSP页面是否线程安全

errorpage                指定将任何生成而未处理的异常指向到该URL。

isErrorPage            如果此属性值设置为true,则指定当前JSP页面为错误页面。isErrorPage属性的默认值为false

contentType          定义响应的MIME类型,contentTpye属性的默认值是text/html

(2)include指令 用于在JSP页面编译期间以相对URL的形式指定要插入的文件的名称

用法 <%@ include file = "URLName" %>

<%@ include file = "Superstroe.html" %>

(3)taglib指令 将自定义标记导入JSP页面中

taglib指令将其自身与URI相关联,以便唯一的识别一个自定义标记。他还和能将此自定义标记与JSP页面上使用的其他标记库区分开的标记前缀字符串相关联。

<%@ taglib uri = "tag_lib_URI" prefix="prefix" %>

uri :查找自定义标记的TLD文件

prefix:定义用于区分自定义标记实例的前缀字符串

3.JSP页面的脚本元素

(1) JSP生命提供了一种第一变量和方法的机制

<%!

int i = 0;

int j = 0;

%>

(2) JSP表达式用于直接将值插入到输出中。

<%=  expression%>

(3)Scriptlet :JSP scriptlet 由包含在<%%>内的有效Java代码组成

4.JSP动作

JSP动作用于执行插入文件,重用bean,将用户转到其他页面及将对象实例化等任务。

使用JSP动作的语法为:<jsp:attribute>

JSP动作                              描述                                       属性                                            属性描述

<jsp:usebean>           调用并查找现有的bean       Id,class, scope, beanName    id唯一地表示bean的实例,class识别要从中实现bean对象的类,scope定义bean的范围,beanName 定义bean的参考名

<jsp:useBean id="FA" scope="application" class="test.FindAuthor" />

id 是test.FindAutor 在jsp页面的名字

scope="application" 表明bean全局可用

class="test.FindAuthor" 表明bean是java类中 test.FindAuthor的bean

<jsp:getProperty>      检索bean的属性                 name,property                             定义bean的名称,定义要从中检索的属性值

<jsp:setProperty>      用于设置bean的属性          name,property,value,param        指定bean的名称,定义要设置值的上个月需变更 为bean属性定义一个显式值  定义要使用的请求参数的名称

<jsp:setProperty name="FA" property="*">

name="FA" 表明在FA这个bean中创建属性

property=“*” 表明在FA这个bean中创建原class的所有属性及方法

<jsp:forward>            用于向目标页面转发请求             page                                    指定目标页面的URL

<jsp:include>            在当前JSP页面中包括一个文件   page,flush                  指定要包括的资源的URL。指定是否应该刷新缓冲区。flush值可以是true 或false.

<jsp:param>             定义要传送给待纳入或转发页面的参数  name,value          定义引用参数的名称,定义指定参数的值

<jsp:plugin>            执行Java applet 或 JavaBean

5.JSP自定义标记

(1)自定义标记的类型

c1:空标记:只没有任何属性或主体的自定义标记

<td:wlcome />

c2: 带属性的标记:只可以定义属性来对标记行为进行自定义的自定义标记。

<td: welcome color="blue"></td:welcome>

c3: 带主体的标记:只带有嵌套自定义标记,脚本元素,动作HTML文本及JSP指令的自定义标记。

<td: welcome>

<%=tody_date%>

</td: welcome>

c4: 嵌套标记:只一个自定义标记包含一个或多个自定义表的自定义标记的自定义标记集

<td1: ifTag condition "<%=eval>">

<td2:valueTrue>

The expression evaluates to true

</td2:valueTrue>

</td1:ifTag>

(2)创建自定义标记的步骤

c1 开发标记库处理程序

所有自定义标记都有对应的标记处理程序,即实现自定义标记的功能的Java类

javax.servlet.jsp.targext 包提供了可用于开发标记处理程序的类和接口

c2 开发TLD文件

c3 将标记库纳入JSP页面

c4 部署应用程序

Servlet chapter 3相关推荐

  1. SSM Chapter 12 SpringMVC扩展和SSM框架整合

    SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...

  2. SSH Chapter 04 Hibernate 入门

    SSH Chapter 04 Hibernate入门 笔记 Hibernate 知识体系图: 本章目标: 理解类和表的映射关系 掌握单表的增删改 掌握按主键查询 理解持久化对象的状态及其转换 技术内容 ...

  3. SSM Chapter 05 Spring 核心概念

    SSM Chapter 05 Spring 核心概念 笔记 本章目标: 理解Spring IoC的原理 掌握Spring IoC的配置 理解Spring AOP的原理 掌握Spring AOP的配置 ...

  4. JavaWeb开发中,servlet的url-pattern的映射规则

    原文出处:http://www.cnblogs.com/mailingfeng/archive/2012/04/05/2432687.html Servlet和filter是J2EE开发中常用的技术, ...

  5. 一个较丰满的servlet web server,由简化的conector、HttpProcessor、bootstrap 和简单servelt处理器构成(1代码清单)...

    代码结构: 该目录未能显示项目根下的webroot文件夹,此文件夹存放servlet程序员编译的servlet.class文件和静态资源. BootStrap package sub.startup; ...

  6. 在tomcat下配置mysql的数据库连接池及Servlet

    这几天在tomcat下配置mysql的数据库连接池,再使用servlet进行数据访问.碰到不少问题,百度查了不少资料,不是很完整,试了很久,总算调通了.记录下来,供大家参考. Tomcat和MySQL ...

  7. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  8. JavaEE学习笔记之Servlet

    同一用户的不同页面的共享数据 1.1 cookie技术 1.2 sendRedirect()转向 1.3 隐藏表单 1.4 session技术 ###session技术: 当用户打开浏览器,访问某个网 ...

  9. 【JavaWeb】servlet与http请求协议

    Servlet: 概念: server applet (服务端小程序)运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则. 将我我们自定义一个 ...

  10. 使用最新版(2020)IntelliJ IDEA 创建Servlet项目

    一:选择左上端的File,创建Project,选择创建Web Application 项目: 注:不勾选Create web.xml 二:设置项目名称:helloworld,并创建一个Servlet( ...

最新文章

  1. 什么是ObjCTypes?
  2. CISCO与华为3COM路由器配置差别
  3. lambda在python中的意思_Python中的lambda的简单介绍
  4. IO-4(BufferedInputStream、BufferedInputStream、BufferedReader、BufferedWriter)
  5. 机器学习:SVM算法的对偶形式
  6. 解决‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  7. 漫画:8年估值千亿美金的字节跳动是如何修炼的
  8. mysql数据库 day05
  9. 国密算法-商密认证-硬件加密-同方TF32A09-32位高速加密芯片
  10. cygwin boost
  11. 学python有前途吗-Python全栈开发有前景吗,是否值得学习?
  12. GetData Graph Digitizer软件的使用方法
  13. html 自定义打印模板,如何自定义打印模板
  14. CKEditor与CKFinder学习--安全的使用CKFinder与权限控制
  15. 软件测试的目的和意义是什么?
  16. 四百左右音质好的蓝牙耳机有哪些?2023公认音质最好的蓝牙耳机排行
  17. 微信防封链接服务器,微信防红防封真的存在吗?
  18. JS实现函数递归、运用技巧
  19. IDM2022最新版极速下载工具
  20. c调用lua脚本语言入门,Lua脚本语言入门及魔兽争霸中的Lua函数调用

热门文章

  1. java本地方法如何调用其他程序函数,方法详解
  2. HIBTC谈比特币交易平台安全架构
  3. 如何将MyEclipse开发的项目导入到Eclipse中运行
  4. 生活大爆炸soft kitty
  5. linux模拟进程调度,Linux进程调度模拟3
  6. mysql分组取每组前几条记录_[转] mysql分组取每组前几条记要(排名)
  7. 拓端tecdat|Python中的Lasso回归之最小角算法LARS
  8. rdbms mysql_不同RDBMS下Join 用法 - MySQL
  9. dg修改归档目录 oracle_OracleDG主库丢失归档增量同步
  10. Pytorch state_dict介绍