NO.71 servlet小结、jsp标签和el表达式

1.容器处理异常(了解)

将异常抛给容器,让容器来处理。

2.servlet小结

(1)Servlet基础

1)什么是Servlet?

2)如何开发一个Servlet?

3)什么是Servlet容器?

4)http协议(了解)

a.什么是http协议?

b.特点

c.数据包的结构

d.状态码,消息头

e.get/post请求

5)Servlet是如何运行的?

(2)Servlet核心

1)读取请求参数值

2)处理表单中文参数值乱码问题

3)Servlet输出中文乱码问题

4)转发与重定向

5)Servlet的生命周期

1)什么是Servlet的生命周期?

2)分成哪几个阶段?

a.实例化 (load-on-startup) 单例

b.初始化 (一次,overrid init方法)

c.调用/就绪 (doGet,doPost)

d.销毁

3)相关的接口与类 (Servlet,GenericServlet,HttpServlet)

6)Servlet上下文

7)线程安全问题

8)容器如何处理请求资源路径?

9)如何让一个Servlet处理多种请求?

10)路径问题

(3)状态管理

1)什么是状态管理?

2)如何进行状态管理?

3)Cookie

a.什么是Cookie?

b.工作原理 (set-cookie消息头,cookie消息头)

c.如何添加Cookie?

d.三个问题(编码问题,生存时间问题,路径问题)

e.如何读取Cookie?

f.Cookie的限制

4)Session

a.什么是Session?

b.工作原理

c.如何获得Session对象 (request.getSession)

d.绑订数据

e.Session超时

f.删除Session

(4)数据库访问

dao

(5)过滤器与监听器

1)什么是过滤器?

2)如何写一个过滤器?

3)初始化参数

4)优先级

5)优点(了解)

6)什么是监听器?

7)如何写一个监听器?

(6)案例

员工管理

登录/注册

session验证

验证码

3. jsp

(1)什么是jsp?

.jsp(html + java代码) --->Servlet

(2)如何写jsp?

1)html (css,js): 直接写

2)java代码:

a.java代码片断:  <%  %>

b.jsp表达式:  <%=  %>

c.jsp声明:  <%! 变量或者方法  %>

3)隐含对象

a.什么是隐含对象?

b.为什么可以使用这些隐含对象?

c.有哪些隐含对象?

out,request,response,session,application

pageContext(page上下文):

c1. 容器会为每一个jsp实例创建唯一的一个符合PageContext接口要求的对象。

注: 一个jsp实例对应一个pageContext,另外,只要jsp实例还在,pageContext就在。

c2. 作用

作用1:绑订数据 (setAttribute,getAttribute,removeAttribute

注:可以将pageContext看作是一个“钱包”,绑订到pageContext上面的数据,只有对应的

jsp实例才能访问。

作用2:获得其它隐含对象

exception(了解):只有当page指令的isErrorPage属性值为true时,才能使用。用来获取异常的简洁的描述。

config(了解): ServletConfig

page(不用): jsp实例本身(jsp对应的servlet实例)

4)指令

a.什么是指令?

b.指令的格式  <%@ 指令名  属性=值 %>

c.有哪些指令?

c1. page指令

import属性

pageEncoding属性

contentType属性

errorPage属性(了解):指定一个异常处理页面(专门用来处理其它jsp产生的异常)。

isErrorPage属性(了解):缺省值是false,当值为true时,表示这是一个异常处理页面。可以在该页面当中,使用exception隐含对象。

session属性(了解):缺省值是true,如果值设置为false,则不能够使用session隐含对象了。

c2. incude指令

file属性

c3. taglib指令

导入jsp标签。

5)注释

a.    如果注释的内容有java代码,会执行。

b. <%-- 注释的内容 --%>  如果注释的内容有java代码,不会执行。

(3)执行过程

step1.  jsp转换成Servlet

html-------> service方法,使用out.write输出。

<%  %> ----> service方法  ,照搬。

<%=  %> ---> service方法,使用out.print输出。

<%!  %> ---> 为Servlet增加新的属性和方法。

step2. 调用Servlet

4. jsp标签和el表达式

(1)什么是jsp标签?

jsp标签类似于html标签,用来替换jsp中的java代码。

注:因为直接在jsp文件中写java代码,不利于jsp文件的维护(比如,将包含有大量java代码的jsp交给美工去修改就很不方便),所以,sun公司制订了jsp标签技术规范。使用jsp标签代替java代码之后,jsp文件变得简洁,便于维护。而且便于代码的复用。

(2)什么是el表达式?

是一套运算规则,用于给jsp标签的属性赋值,也可以直接输出。

(3)el表达式的使用

1)访问bean的属性

方式一  ${user.name} :    容器依次从pageContext,request,session,application中查找绑订名为"user"的对象(getAttribute),找到之后,会调用该对象的"getName"方法,然后输出;如果找不到,会输出""。

注:a.依次,指的是先从pageContext上去查找,如果没有,再查找request,如果找到,则不再向下查找了。

b.如果值为null,会转换成""输出。

c.如果要指定查找范围,可以使用pageScope,requestScope,sessionScope,applicationScope。

比如:${requestScope.user.name}。

方式二  ${user['name']}    等价于${user.name}

注:a.[]可以使用绑订名。

b.[]可以使用从0开始的下标,用来读取数组中的某个元素。

2)做一些简单的运算

a. 算术运算  +,-,*,/,%

注: + 只能求和。

b. 关系运算  >,>=,<,<=,==,!=

c. 逻辑运算  && || !

d. empty运算 empty

用来判断集合是否为空,或者是否为一个空字符串。

3)读取请求参数值(了解)

${param.username}等价于request.getParameter("username");

${paramValues.city}等价于request.getParameterValues("city");

(4)jstl(java standard taglib)标签

注(了解):apache开发的一套标签,后来捐献给了sun。

1)如何使用jstl标签。

step1.导包。(jstl.jar)

step2.使用taglib指令,导入要使用的标签。

2)几个核心标签

a. if标签

注:a1. c是命名空间的前缀(别名)。

命名空间(namespace): 为了区分同名的元素而添加的一个限定。

a2. 如果test属性值为true,则执行标签体的内容。test属性可以使用el表达式来计算。

a3. var属性指定一个绑订名,scope属性指定绑订的范围("page","request","session","application")

b.choose标签

注:b1.when表示一个分支,如果test属性值为true,则执行该分支。(可以出现1次或者多次)

b2.otherwise表示例外,可以出现0次或者1次。

c.forEach标签

注:c1.用来遍历集合或者数组。

c2.items属性用来指定要遍历的集合或者数组,可以使用el表达式。

c3.var属性用来指定绑订名(绑订范围是pageContext)。

c4.varStatus属性用来指定绑订名(绑订范围是pageContext),绑订值是一个特殊的对象(由该标签创建,作用是用来获得当前遍历的状态,比如getIndex方法:获得当前被遍历的元素的下标。getCount方法用来获得当前是第几次遍历)    。

3)自定义jsp标签

编程步骤

step1. 写一个java类,继承SimpleTagSupport类。

step2. override doTag方法,在该方法里面,写处理逻辑。

step3. 在.tld文件当中描述标签。

<body-content>的值可以是emtpy,scriptless,JSP

empty:标签没有标签体。

scriptless:标签可以有标签体,但是标签体的内容不能够出现java代码(<%  %>,<%= %>,<%!  %>)。

JSP:标签可以有标签体,标签体的内容可以出现java代码。但是,只有复杂标签技术才支持。

注:复杂标签技术是一种比较老的标签技术。继承自SimpleTagSupport的标签属于简单标签技术。

代码示例:

标签java类
配置文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容

  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,024评论 1 18
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,092评论 0 6
  • 1.什么是JSP (1)jsp全称是Java Server Pages,它和Servlet技术一样都是sun公司定...
    yjaal阅读 3,570评论 5 99
  • 前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入...
    伊豚wall阅读 3,317评论 2 56
  • 复习复习!!!搞起来!!Servlet和JSP是Java EE规范最基本成员,他们是Java Web开发的重点知识...
    JackFrost_fuzhu阅读 2,759评论 1 71