Java-Servlet的讲解

大家好,我是IT修真院深圳分院的学员,一枚正直善良的JAVA程序员。

1.背景介绍

Servlet(ServerApplet)是JavaServlet的简称,一般称为小服务程序或服务连接器,是一个用Java编写的服务器端程序。

主要功能在于处理请求和发送响应、交互式地浏览和修改数据,生成动态Web内容,甚至可以说Servlet是为了解决实现动态页面而衍生的程序。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,

人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。

2.知识剖析

Servlet的四个主要内置对象

ServletConfig对象

ServletContext对象

request对象

Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。同时也会向服务器或者浏览器定义自己需要的返回的东西。

response对象

Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。

Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。

3.常见问题

1.servlet的生命周期是怎么样的?

2.Servlet与JSP的异同

4.解决方案

1.servlet的生命周期是怎么样的?

Servlet生命周期分为三个阶段:

1,初始化阶段调用init()方法

2,响应客户请求阶段  调用service()方法

3,终止阶段  调用destroy()方法

初始化阶段

1,Servlet容器启动时自动装载某些Servlet

-loadon-startup-1-loadon-startup-

2,在Servlet容器启动后,客户首次向Servlet发送请求的时候

3,Servlet类文件被更新后,重新装载Servlet



2.Servlet与JSP的区别是什么?

Servlet与JSP有许多相似之处,都可以生成动态网页。

背景:

Servlet体系是基于B/S架构开发web应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种web应用方案的。

当大量的B/S架构程序开发出来以后出现了很多问题:首先servlet类有大量冗余代码,其次是开发Servlet的没法做到有精美的页面效果。

所以sun提出将服务端代码添加在已经设计好的静态页面上,经过JSP容器对JSP文件进行自动解析并转换成Servlet类来交给web服务器运行。

创建方式:

Servlet都是由JAVA程序代码构成,用于流程控制和事务处理,通过Servlet来生成动态网页很不直观。

而JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.

编译:

JSP修改后可以立即看到结果,不需要编译;

而Servelt缺需要编译。

转换:

JSP是动态网页开发技术,是运行在服务器端的脚本语言,而Servlet是web服务器端编程技术。

所以JSP运行时就是转换为Servlet,也就是java程序来执行。

优缺点:

JSP的优点是擅长于网页制作,生成动态页面比较直观,缺点是不容易跟踪与排错。

Servlet是纯Java语言,擅长于处理流程和业务逻辑,缺点是生成动态网页不直观。

5.编码实战

这是因为Tomcat7以及之前的编码方式都是iso8859-1,tomcat8以后默认编码格式开始改为utf-8;

这时候我们需要在页面进行设置,添加下列代码使得页面的编码方式变成utf-8.

<%@ pagecontentType="text/html;charset=UTF-8" language="java" %>

<%@ page language="java"import="java.util.*" pageEncoding="UTF-8" %>

就可以将页面的获取内容改为UTF8,显示正常的数据。

但是在我们向服务器提交信息的时候,返回的信息依然会是iso8859-1,

这就需要我们在后台进行处理。这里就不仔细讲了,也不是什么很麻烦的事情。

6.扩展思考

1、为什么创建的servlet是继承自httpServlet,而不是直接实现Servlet接口?

2、servlet的生命周期中,可以看出,执行的是service方法,为什么我们就只需要写doGet和doPost方法呢?

7.参考文献

链接:http://www.cnblogs.com/whgk/p/6399262.html

作者:一杯凉茶

链接:https://baike.baidu.com/item/Response%E5%AF%B9%E8%B1%A1/7465134?fr=aladdin

作者:百度百科

8.更多讨论

jsp中的内置对象在servlet中对应的是什么?

servlet有九大内置对象,其中对应的关系如下:

1、out 来源于Java.io.Writer类,它用于发送输出流到客户端。

2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。

3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。

4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。

5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。

6、application 来源于javax.servlet.ServletContext。

7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。

8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。

9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。

2.关于程序Servlet的乱码关系?

spring早就已经做好了对应的处理,只需要在程序中加入z:

3.Tomcat与Servlet

PPT链接:戳这里看PPT

腾讯视频:腾讯视频

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

直接点击此链接:http://www.jnshu.com/login/1/10985551

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