servlet

1 jsp中写代码的弊端

之前我们在jsp中嵌入了大量的java代码 不符合MVC思想 而且给程序的扩展维护 人员的分工带来很大的困难 前端只懂HTML1daim1而大量的java代码在页面万一前端开发人员小手一抖删掉了一些数据 此时带来的风险太大 而且给程序的可读性差 大量的代码全部混合在页面 造成页面超载 如果出现问题 找错困难 可维护性差

所以要求jsp只做页面显示 不允许写java代码

java代码写在哪里? 写在后台程序中 表现层使用servlet

2 servlet介绍

servlet是一种服务器的应用程序 具有独立于平台和协议的特性 可以生成多态的web页面 它担当客户请求(web浏览器或者其他HTTP客户程序) 和服务器响应(HTTP服务器上的数据库或应用程序)的中间层

JSP是servlet的一种形式 每个JSP页面实际上就是一个servlet实例----JSp页面由servlet引擎换成servlet,servlet负责响应客户请求 也就是说使用JSP实际上还是使用servlet 因为web应用中每个JSP页面都会由servlet容器生成servlet

要求:jsp不允许出现java代码 仅仅做数据显示 servlet主要做业务逻辑的处理

核心:接收客户端的请求 参数的接受 响应

3 servlet的实现方式

Servlet的实现有三种方式

第一种: 实现Servlet接口 实现所有的方法 其中init方法 service方法 destroy方法是其声明周期方法

第二种: 继承GenericServlet

第三种: 继承HttpServlet 重写doGet和doPost方法

4 servlet的生命周期

观察实现servlet接口的方式 观察其声明周期方法执行的过程init,service,destory

当服务器启动的时候 其实并没有调用servlet的生命周期方法 也没有创建爱你servlet对象

当用户第一次访问项目资源的时候 此时会创建servlet对象 并调用init方法进行对象初始化 然后调用service方法提供服务 init只会执行一次 后期用户的每一次访问都会调用service方法进行服务

当服务器正常关闭的时候 会执行servlet的destory方法 进行销毁的操作 销毁的方法也仅仅只执行一次

但是如果在web.xml中配置了Load-on-startup=1的话 在服务器启动的时候就会创建servlet对象并初始化 但是一般不去配置

5servlet核心API介绍

servlet

 

 Servlet核心API其实都是围绕两个核心对象展开的 request response

获取用户的请求参数 接受请求 接受参数

获取用户请求参数的多个值

获取请求方式

获取和创建cookie的值

获取session对象

获取转发器对象继续转发

重定向操作

 

上一篇:Servlet初步学习合集


下一篇:Servlet——HTTP状态 405 - 方法不允许