servlet概述

什么是servlet,servlet有什么用?

servlet是java编写的服务器端的程序,运行在web服务器中

作用:

  1. 接收用户端发来的请求
  2. 调用其他java程序来处理请求
  3. 将处理结果,返回到服务器中

servlet的生命周期

实例化-初始化-服务-消亡

1.第一次访问servlet或启动服务器时创建servlet 的实例

2.init() 只调用一次,servlet实例创建后立即执行,用于执行一些servlet初始化操作

@Overridepublic void init() throws ServletException {super.init();}

3.service方法 多次调用;每次请求都调用service方法,根据请求方式调用doGet()或doPost()方法。

@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {super.service(req, res);}

4.只调用一次,服务器关闭时,执行一些操作

@Overridepublic void destroy() {super.destroy();}

http协议

http协议 超文本传输协议, 用于定义客户端浏览器和服务器之间交换数据的过程,基于TCP/IP通信协议来传输数据;属于应用层(简洁快速,适用于分布式超媒体信息系统)

http请求

客户端连接上服务器后,向服务器端请求了web资源,就是向服务器端发送了http请求

请求包括:

  1. 请求行:包括http请求方式,请求资源名称,请求版本

  2. 请求头:主机请求地址,客户端环境信息,以键值对形式传递

    Host: 127.0.0.1:8088     请求的主机地址
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 浏览器能够处理的内容类型
    Accept-Encoding: gzip, deflate, br     浏览器能够处理的压缩编码
    Accept-Language: zh-CN,zh;q=0.9     浏览器当前设置的语言
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36   使用的浏览器和操作平台信息
    Connection: keep-alive    浏览器与服务器之间连接的类型
    
  3. 请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递,多个用&链接,服务器接收到后再解析 例如:username=admin&userpwd=123

两种http请求方式

  1. get方式

    超链接访问,默认为get请求

    form提交,不指定method,默认为get方式

  2. post方式

    form提交,指定method=post

两种的方式的区别

  1. get请求主要从服务器获取信息;post主要是是向服务提交的信息
  2. get请求在通过URL提交数据,数据在URL可以看到;post请求放置在请求体中提交
  3. get请求提交的数据大小受限制一般1kb(不同浏览器可能不同);post请求不受限制

HttpServletRequst

是ServletRequest的子接口;比ServletRequest多了一些针对http协议的方法;在Servlet中,用HttpServletRequest来表示请求;HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。

HttpServletRequst的一些方法

  1. getMethod()得到客户机请求方式
  2. getScheme()请求协议
  3. getRemoteAddr()返回发出请求的客户机的IP地址
  4. getServerName()服务器名(ip或域名)
  5. getServerPort()服务器端口

获取请求的参数的方法

  1. getParameter(name) — String 通过name获得值
  2. getParameterValues — String[ ] 通过name获得多值

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。

状态码:

  1. 200:请求成功
  2. 302:请求重定向
  3. 400:语义有误,当前请求无法被服务器理解或请求参数有误
  4. 404:请求资源不存在,通常是路径写错了或者服务器资源删除了
  5. 500:服务内部错误(代码异常)

HttpServletResponse

HttpServletResponse是ServletResponse的子接口 。

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表响应的HttpServletResponse对象。HttpServletResponse对象代表响应

向浏览器动态生成网页内容

​ 用getWriter()获得一个PrintWriter字符输出流输出数据response会默认以ISO8859-1将需要输出到浏览器的字符进行解码,如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

​ response.setContetnType(“text/html;charset=utf-8”);方法可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码

创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

什么是servlet?servlet有什么用?相关推荐

  1. Tomcat服务器启动错误之Offending class: javax/servlet/Servlet.class

    引子 最近在基于Wex5项目开发中,遇到使用过程中与Tomcat功能有关的错误提示, 如题所示.最终的解决方法就是删除掉项目上与tomcat冲突的jar包. org.apache.catalina.l ...

  2. 异常处理记录: Servlet class X is not a javax.servlet.Servlet

    异常处理记录: Servlet class X is not a javax.servlet.Servlet 参考文章: (1)异常处理记录: Servlet class X is not a jav ...

  3. ClassCastException: com.gao5805123.servlet.ServletDemo cannot be cast to javax.servlet.Servlet

    ClassCastException: com.gao5805123.servlet.ServletDemo cannot be cast to javax.servlet.Servlet **异常信 ...

  4. javaweb项目,配置servlet后报错:java.lang.ClassCastException: cannot be cast to class javax.servlet.Servlet

    使用maven创建javaweb项目,通过添加依赖的方式来添加servlet-api,版本4.0.1,如下 <dependency><groupId>javax.servlet ...

  5. Spark jar not loaded. Offending class: javax/servlet/Servlet.class

    相关软件版本 Spark1.4.1 ,Hadoop2.6,Scala2.10.5,intelliJ IDEA2014,JDK1.8,Tomcat7 机器及服务: windows7 :包含JDK1.8, ...

  6. jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

    1.错误原因 信息: validateJarFile(/opt/tomcat/webapps/CMP/WEB-INF/lib/servlet-api.jar) - jar not loaded. Se ...

  7. 启动Tomcat报错- jar not loaded. Offending class: javax/servlet/Servlet.class

    完整错误信息: - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servle ...

  8. org.springframework.web.servlet.DispatcherServlet‘ is not assignable to javax.servlet.Servlet

    SpringMVC web.xml文件配置 报错:org.springframework.web.servlet.DispatcherServlet' is not assignable to jav ...

  9. IDEA中出现XXXis not assignable to ‘javax.servlet.Servlet,jakarta.

    一.分析原因 这个问题主要是servlet包的问题,在tomcat10以后Servlet就出现在了jakarta文件下 所以说在web.xml中就会起冲突,报错 XXX' is not assigna ...

  10. XXX is not assignable to javax.servlet.Servlet

    XXX is not assignable to javax.servlet.Servlet 表示XXX不能被指定为一个javax.servlet.Servlet 我的错误原因是忘记extends H ...

最新文章

  1. 一文概览主要语义分割网络:FCN,SegNet,U-Net...
  2. 降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)
  3. 30+个必知的《人工智能》会议清单
  4. 【练习】不同排序算法执行时间比较
  5. phpmyadmin修改mysql数据库_用phpMyAdmin修改mysql数据库密码
  6. python实现栈,实现push(),pop(),top(),getMin()方法
  7. 组件Refs(操作DOM的2⃣️两种方法)
  8. 2-7 SpringBoot常用注解讲解
  9. React Native windows环境安装遇到的坑
  10. css布局方式_收藏!40 个 CSS 布局技巧
  11. poj2441状态压缩dp基础
  12. Java-Hashmap
  13. mysql 是如何利用索引的_10 分钟搞明白 MySQL 是如何利用索引的!
  14. 【二分图】洛谷P2055假期的宿舍
  15. jQ+jQ UI制作的一个简单的二级可多选穿梭框
  16. 英伟达显卡老版本驱动下载网址
  17. php 控制usb打印,usb口打印机的指令打印和驱动打印
  18. 腾讯汤道生:安全是产业数字化的底座
  19. 一本关于互联网与职场的湿暗后厨,和99元人民币的关系
  20. AUTOCAD2012安装失败解决方法

热门文章

  1. oracle基础语法(二)ORACLE查询
  2. access链接 mysql数据库教程_JDBC连接ACCESS数据库的三种方法
  3. 偏微分方程数值解法pdf_天生一对,硬核微分方程与深度学习的联姻之路
  4. 上海嵌联自控供应车流量统计系统
  5. windows服务器虚拟机 全屏,虚拟机安装Windowsxp系统后无法全屏的解决方法
  6. JetbrainsCrack-3.1-release-enc.jar 下载
  7. 用友U8总账对账不平问题总结
  8. 惠普M1005打印机驱动-LaserJet提供下载
  9. 刷机工具-fastboot
  10. DB2远程链接数据库编目命令代码