Servlet chapter 3
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相关推荐
- SSM Chapter 12 SpringMVC扩展和SSM框架整合
SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...
- SSH Chapter 04 Hibernate 入门
SSH Chapter 04 Hibernate入门 笔记 Hibernate 知识体系图: 本章目标: 理解类和表的映射关系 掌握单表的增删改 掌握按主键查询 理解持久化对象的状态及其转换 技术内容 ...
- SSM Chapter 05 Spring 核心概念
SSM Chapter 05 Spring 核心概念 笔记 本章目标: 理解Spring IoC的原理 掌握Spring IoC的配置 理解Spring AOP的原理 掌握Spring AOP的配置 ...
- JavaWeb开发中,servlet的url-pattern的映射规则
原文出处:http://www.cnblogs.com/mailingfeng/archive/2012/04/05/2432687.html Servlet和filter是J2EE开发中常用的技术, ...
- 一个较丰满的servlet web server,由简化的conector、HttpProcessor、bootstrap 和简单servelt处理器构成(1代码清单)...
代码结构: 该目录未能显示项目根下的webroot文件夹,此文件夹存放servlet程序员编译的servlet.class文件和静态资源. BootStrap package sub.startup; ...
- 在tomcat下配置mysql的数据库连接池及Servlet
这几天在tomcat下配置mysql的数据库连接池,再使用servlet进行数据访问.碰到不少问题,百度查了不少资料,不是很完整,试了很久,总算调通了.记录下来,供大家参考. Tomcat和MySQL ...
- Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常
我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...
- JavaEE学习笔记之Servlet
同一用户的不同页面的共享数据 1.1 cookie技术 1.2 sendRedirect()转向 1.3 隐藏表单 1.4 session技术 ###session技术: 当用户打开浏览器,访问某个网 ...
- 【JavaWeb】servlet与http请求协议
Servlet: 概念: server applet (服务端小程序)运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则. 将我我们自定义一个 ...
- 使用最新版(2020)IntelliJ IDEA 创建Servlet项目
一:选择左上端的File,创建Project,选择创建Web Application 项目: 注:不勾选Create web.xml 二:设置项目名称:helloworld,并创建一个Servlet( ...
最新文章
- 结构体的两种声明方式:堆上和栈上以及在双链表的应用
- 多重影分身:一套代码如何生成多个小程序?
- lua学习笔记之元表和元方法
- 世界32条谣言,你被骗了多少?
- K折交叉验证和pipeline
- java Date days_Java中的LocalDate plusDays()方法
- React.js开发生态系统概览 [译-转]
- LeetCode 404. Sum of Left Leaves
- SSM框架之Spring MVC(二)常用注解说明
- 【SAP】各模块常用的Tcode
- 2019年互联网企业软件测试面试题(常考)
- 区块链简介与PMD投资方式
- S32K144之SDK版:FTM定时器(测试打印系统信息)
- 密码算法测试向量——Cipher MAC SM4
- jpress-项目升级
- 理想主义者与现实主义者的差别
- android 打电话流程,Android 打电话 流程
- mysql 函数 人民币大写_PHP人民币转大写函数
- 盘点美国最出人意料的20种高薪职业
- java与C++中文字符的问题
热门文章
- 处理Easyui的Datagrid无法及时刷新问题
- 如何进行正确的EDM邮件营销
- CVPR2013感兴趣的文章整理
- 拓端tecdat|R语言实现绘制Sankey桑基图(河流图、分流图)流程数据可视化
- 双向链表的插入删除和遍历
- 星星评价控件android开发_Android自定义View,评分星星控件(RatingBar)
- java sha加密算法_Java加密 消息摘要算法SHA实现详解
- mysql数据库 安装后 闪_MySQL数据库:第十五章:MySQL安装到最后一步未响应MySQL Server Instance Configuration Wizard...
- pycharm添加conda虚拟环境
- Python实现对给定的列表中连续数字的寻找