servlet学习

layout: java
title: java web–servlet学习
tags:

  • servlet
  • web
    categories:
  • 前端
    date: 2019-08-22 22:44:37

接上篇,学习servlet基础。

servlet是什么

java servlet是运行在web服务器上的应用程序,实现动态页面的创建,作为来自web浏览器和其他http客户端请求和http服务器上的数据库或者应用程序之间的中间层
http请求和响应
                    http请求和响应过程

servlet架构

  • 架构
    架构
  • tomcat与servlet
    tomcat
  • 这里可以知道,tomcat将浏览器发过来的http请求(http request)文本接收并解析,封装成httpServlet类型的request对象
  • tomcat服务器同时将要响应的信息封装成httpResponse类型的response对象,通过设置response的相关属性就可以控制输出到浏览器的内容,再将response交给tomcat,tomcat就会将其转换成要响应的文本格式返回给浏览器

servlet任务

  • 读取客户端发送的显式数据,包括html表单,或者是applet或者用户定义程序的表单
  • 读取客户端发送的隐式http请求,包括cookies等
  • 处理数据并获得结果,可能会访问数据库调用web服务
  • 发送显式的数据到客户端,可能是文档、图片等
  • 发送隐式的http响应到客户端

java servlet包

java servlet是运行在带有servlet解释器的web服务器(我用的是tomcat)上的java类。
通常需要import javax.servlet.*来导入包。
java servlet API 是servlet容器(tomcat为例)和servlet之间的接口,定义了各种servlet方法,和一些对象,其中主要是servletRequest和servletResponse对象比较重要。

编写servlet

编写servlet有两种方法:

  • 直接编写servlet类,实现相应的方法
    这个方法需要编写完整的java类,比较复杂,而且容易出错。故我们采用第二种方法。
  • 用IDE(我的是idea)新建myServlet
    新建myServlet,默认会实现doGet()和doPost()方法,也可以根据自己的需要,实现其他方法,诸如:init()、service()、destory()

另外,要实现与jsp的交互,必须要配置web.xml文件,写入servlet、servlet-mapping等标签,除此之外,也可以在servlet类的添加注释(annoation),例如: @WebServlet(urlPatterns = "/signin", name = "signin"),这样就可以不用配置web.xml文件

详解servlet原理

1. servlet生命周期

  • servlet的生命周期始于servlet服务器启动时或者第一次请求该servlet,此时调用init()方法,初始化出一个servlet对象
  • servlet处理所有的客户端请求,执行service()方法
  • 服务器关闭,执行destory()方法,servlet被销毁

2. servlet的service()方法
这里有个问题,我们在编写servlet时,只写了doPost()和doGet()方法,并没有写service()方法,那么servlet是如何执行service()方法的呢?
public的service()方法,这是对外的公有方法,这里做了一个ServletRequest到httpServletRequest的转型

内部的protected的方法,根据请求的方法method不同,调用不同的响应方式:

也就是说,service()方法一般情况下我们是不需要重写的,它已经包括的所有的推理机,我们只要重写相应需要的方法就行了,比如说doPost()、doGet(),这也是idea默认给我们重写的两个方法。
3. servlet重要的对象
servlet为我们创建了几个内置对象:

  • servletCopnfig
  • servletContext
  • httpServletRequest
  • httpServletResponse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值