html绑定servelet详解,超通俗易懂的Servlet入门教程

不怕千万人阻挡,就怕自己投降。

文章目录

概念:运行在服务器端的小程序

servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现servlet接口,复写方法。所以servlet就是实现了Servlet接口的类。

01.Servlet快速入门

1.创建javaEE项目

2.定义一个类,实现servlet接口

public class servletDemo1 implements servlet

3.实现接口中的抽象方法

4.配置Servlet,在xml中配置。demo1 servlet-name>cn.itcast.web. servlet.ServletDemo1demo1 servlet-name>/demo1

执行原理:

1,当服务器接受到客户端浏览器的请求后,会解析请求uRL路径,获取访问的servlet的资源路径2.查找web.xml文件,足否有对应的标签体内容。

3.如果有,则在找到对应的全类名

4. tomcat会将字节码文件加载进内存,并且创建其对象

5,调用其方法。

servlet中的生命周期方法∶

1.被创建:执行init方法,只执行一次

对象被创建后再执行Servlet方法。

servlet什么时候被创建?

默认情况下,第一次被访问时,servlet被创建。可以配置其执行servlet的创建时机。

在标签下配置

1,第一次被访问时,创建

的值为负数。

2.在服务器启动时,创建

的值为0或正整数。

Servlet的init方法,只执行一次,说明一个servlet在内存中只存在一个对象,Servlet是单例的。

多个用户同时访问时,可能存在线程安全问题。

解决∶尽量不要在servlet中定义成员变量。即使定义了成员变量,也不要对修改值。

2.提供服务:执行service方法,执行多次。

每次访问Servlet时,Service方法都会被调用一次。

3.被销毁:执行destroy方法,只执行一次。

servlet被销毁时执行,服务器关闭时,Servlet被销毁。

只有服务器正常关闭时,才会执行destroy方法。

destroy方法在servlet被销毁之前执行,一般用于释放资源。02.Servlet3.0注解配置

java6支持Serlet3.0.

java8支持Serlet4.0.

好处:支持注解配置。

可以不需要web.xml。

步骤:

1.创建JavaEE项目,选择Servelt3.0以上的,可以不创建web.xml。

2.定义一个类,实现Servlet接口。

3.复写方法。

4.在类上使用@WebServlet注解,进行配置。

因为注解是加在类上的,所以不需要关心类名,只需要关心资源路径。@WebServlet(urlPatterns="/demo")//可以配置多个路径public class ServletDemo implement Servlet{}

或者@WebServlet("/demo")//可以配置多个路径public class ServletDemo implement Servlet{}

IDEA与tomcat的相关配置

1.IDEA会为每一个tomcat部署的项目单独建立一份配置文件.

查看控制台的log : Using CATALINA_BASE:“c: \users\fay.Intelli]Idea2018.1\system\tomcatl_itcast"

2.工作空间项目和 tomcat部署的web项目。

tomcat真正访问的是"“tomcat部署的web项目”",“tomcat部署的web项目"对应着”"工作空间项目”的web目录下的所有资源。

WEB-INF目录下的资源不能被浏览器直接访问。03.GenericServlet&HttpServlet(Serlvet的体系结构)

GenericServlet是Servlet的子类(子);

HttpServlet是GenericServlet的子类(孙);

问题提出:有时候我们只需要重写Servlet的service方法。然而我们继承Servlet类必须实现Servlet的所有抽象方法。这样就与我们意愿相左。有什么解决办法呢?

【解决办法】:GenericServlet为Servlet的子类,并且已经(空)实现了Servlet的4个方法,只有service方法没有实现。

因此我们可以写一个类,继承GenericServlet抽象类。实现service方法即可。

将来我们在定义自己的serlvet类时,可以继承抽象类GenericServlet即可,如果需要使用到其他方法,重些该方法即可。

可以看出,此时代码书写已经很方便,但是我们以后开发并不使用这种方式。

那我们使用哪种方式呢?

【HttpServlet】:为什么要使用这个类呢?

那我们得问自己,我们实现service方法干嘛呢?

我们在写service方法体时,需要判断前端给后台的请求方式,并根据其获取数据。每次都需要判断,有没有一种方式,可以简洁的达到效果呢?

HttpServlet抽象类,帮我们把这些事情都做好了,我们只需要重写HttpServlet对应得方法即可。

如:doGet(){//重写部分};doPost(){//重些部分};

因此我们将来需要屏蔽请求方式的处理逻辑,继承HttpServlet就显得格外好用。

HttpSerlvet:对http协议的一种封装,简化操作。

因此我们以后开发:就不再定义类继承GenericServlet实现service方法。而是定义类继承HttpServlet重写doGet(),或doPost()方法。

Servlet的urlpartten配置

因为urlpattten是一个数组,所以可以为其配置多个资源路径@WebServlet({"/d4","dd4","ff"})public class ServletDemo extends HttpServlet{}

一个servlet可以设置多个访问路径。

路径的定义规则1./xxx2./xxx/xxx(多层路径)(/xxx/*)

3.*.do04.HTTP

概念:Hyper Text Transfer Protocol超文本协议。

传输协议:定义了,客户端和服务器端通信超时,发送数据的格式。

请求和响应一一对应。

无状态:每次请求之间相互独立,不能交互数据。

历史版本:

1.0:每一次请求响应都会建立新的连接(http1.0)

1.1:复用连接(http1.1)。

请求消息数据格式:

1.请求行

请求方式 请求url 请求协议/版本

GET /index.html HTTP/1.1

HTTP协议有7种请求方式。

GET:

(1.请求参数在请求行中,在url后。

(2.请求的url的长度有限制。

(3.不安全

POST:

(1.请求参数在请求体中。

(2.请求的url的长度没有限制。

(3.相对安全

2.请求头

请求头名称:请求头值

常见的请求头:</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值