Servlet学习(一)

一.HTTP协议

浏览器 ----------------------------------------->服务器

请求 http协议(包含:1.请求行2.请求头3.空行4.请求实体)

url

浏览器<-------------------------------------------服务器

响应html+css+js+data数据

特点:

1.无连接:每次只处理一个请求, 服务器处理完客户的请求后把结果响应给客户端,收到客户端的应答后就断开连接。

2.无状态:对于事务处理没有记忆能力,如果后面的处理需要前面的信息就需要重新传。

1.交互流程

步骤1.

客户端与服务器建立通道

步骤2.

浏览器发起请求遵循http协议

步骤3.

服务器收到请求后进行处理,然后遵循http协议响应浏览器

步骤4.

关闭客户端和服务端的连接(http1.1后不会立即关闭(可持续连接))

2.http请求格式

结构

1).请求行

2).请求头

3).空行

4).请求实体

3.http请求方式

1).Get:方式请求:没有请求实体请求数据拼接以?号的形式拼接在地址栏ur后面,不适合大量数据的传输,不安全,相对在效率上比较快。

2).Post:适用于数据量大,安全要求比较高,效率比较慢

4.http响应

状态行

消息报头

空行

响应正文

二.服务器介绍与安装

1.介绍

代码:是业务处理的规则,先声明后执行

服务器:可以根据浏览器的请求自动调用并执行对应的业务逻辑处理代码的应用程序(狭义),广 义来说,只转载了服务器应用程序的主机电脑也可以称之为服务器主机。

服务器特点:其实就代码编写的应用程序

可以解析浏览器发起的请求信息

可以根据请求信息调用并执行对应的代码处理请求

三.servlet概念与使用流程

1.概念:

本质是一个Java的类

狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器

2.servlet使用流程

创建包(com.bjsxt.servlet)

在包中创建一个实现了HttpServlet的java类

HttpServletRequest---------->请求

HttpServletResponse-------->响应

覆写servlet方法,在方法中声明请求处理规则

在web.xml文件中配置servlet

将web项目中webroot下的所有内容复制到服务器的webapps

目录中的新建的文件夹中(每一个项目都需要创建新的文件夹)

6.启动服务器

7.浏览器输入localhost:8080/project/s

3.localhost:8080/project/s

localhost 服务器ip

8080 端口号

localhost:8080 根据ip和端口号可以找到对应服务器同时服务器

会去webapps下查找处理此次请求的代码

project/s: url数据,服务器根据url找到对应的servlet执行;去项目

中的web.xml文件中去匹配

四.配置servlet

配置方式一:

<url-pattern>/别名</url-pattern>

注意:"/"是必须声明的,别名不能是中文

此配置方式可以配置多个

配置方式二:模糊查询

<url-pattern>*.后缀名</url-pattern>

注意:

*表示任意个数的任意字符

所有以指定的后缀名结尾的请求都会调用该servlet进行处理

作用:

进行模块化开发的划分

配置方式三:拦截所有请求

<url-pattern>/*</url-pattern>

注意:

会拦截所有类型请求,包括静态资源的所有请求(css.js.图片等)和jsp请求

配置方式四:

<url-pattern>/one/*</url-pattern>

注意:

会拦截处理所有Servlet的别名以one开头的路径的请求

注意:

1.一个Servlet可以配置多个url-pattern

不同的Servlet不允许配置相同的url-pattern。如果配置了在服务器启动的时候就会报错。

2.服务器启动的时候就会将部署的项目中的web.xml文件加载进内存。

为什么Servlet只会创建一个

因为servlet是单例的,在并发访问的情况下会开启子线程调用其service方法,资源是共享的,如果创建多个servlet会占用大量的内存。

五.servlet生命周期

⦁ Servlet的生命周期

⦁ 请求说出Servlet的生命周期

从第一次调用到服务器结束

⦁ init方法,service方法,destory方法的调用时机

1. init方法:servlet被初始化创建的时候调用

2. service方法:处理请求的时候

3. destory方法:servlet被销毁的时候

当服务器关闭的时候销毁servlet,触发destory方法的执行

⦁ doGet和doPost和Service方法的区别

六.请简述doGet、doPost和service方法的区别

1. doGet (HttpServletRequest req, HttpServletResponse resp)

特点:处理get方式的请求

2. doPost (HttpServletRequest req, HttpServletResponse resp)

特点:处理post方式的请求

3. service(HttpServletRequest req, HttpServletResponse resp)

特点:无论是什么类型的请求方式,服务器都会优先执行service方法。

⦁ 什么情况下会出现405异常

servlet中没有声明service方法,会根据请求方式调用对应的方法进行请 求处理,如果在servlet中没有声明对应的请求处理方法,则会报405错误

七.doGet和doPost和service方法调用的本质

tomcat服务器其实只认识service方法,如果我们自己声明的servlet中没有覆写service方法,则会执行HttpServlet中的service方法,而HttpServlet中的service方法会根据请求方法调用对应的doXX( )方法执行请求处理。

八.Servlet常见异常总结

⦁ 请说明404的原因。

1. 资源未找到

2. 原因一:在请求地址中的servlet的别名书写错误

3. 原因二:虚拟项目名称拼写错误

⦁ 请说明500错误的原因

1. 错误一:Java.lang.ClassNotFoundException:

com. bjsxt. servlet . ServletMothod

解决:在web. xml中校验servlet类的全限定路径是否拼写错误。

2. 错误二:因为service方法体的代码执行错误导致

解决:根据错误提示对service方法体中的代码进行错误更改。

⦁ 请求说明405的原因

⦁ 请求方式不支持

原因:请求方式和servlet中的方法不匹配所造成的。

解决:

尽量使用service 方法迸行清求迯理,并且不要再service 方法中凋用父类中的service

编辑于 2019-05-05

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

推荐阅读更多精彩内容