什么是servlet?servlet有什么用?
servlet概述
什么是servlet,servlet有什么用?
servlet是java编写的服务器端的程序,运行在web服务器中
作用:
- 接收用户端发来的请求
- 调用其他java程序来处理请求
- 将处理结果,返回到服务器中
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请求
请求包括:
请求行:包括http请求方式,请求资源名称,请求版本
请求头:主机请求地址,客户端环境信息,以键值对形式传递
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 浏览器与服务器之间连接的类型
请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递,多个用&链接,服务器接收到后再解析 例如:username=admin&userpwd=123
两种http请求方式
get方式
超链接访问,默认为get请求
form提交,不指定method,默认为get方式
post方式
form提交,指定method=post
两种的方式的区别
- get请求主要从服务器获取信息;post主要是是向服务提交的信息
- get请求在通过URL提交数据,数据在URL可以看到;post请求放置在请求体中提交
- get请求提交的数据大小受限制一般1kb(不同浏览器可能不同);post请求不受限制
HttpServletRequst
是ServletRequest的子接口;比ServletRequest多了一些针对http协议的方法;在Servlet中,用HttpServletRequest来表示请求;HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。
HttpServletRequst的一些方法
- getMethod()得到客户机请求方式
- getScheme()请求协议
- getRemoteAddr()返回发出请求的客户机的IP地址
- getServerName()服务器名(ip或域名)
- getServerPort()服务器端口
获取请求的参数的方法
- getParameter(name) — String 通过name获得值
- getParameterValues — String[ ] 通过name获得多值
http响应
一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。
状态码:
- 200:请求成功
- 302:请求重定向
- 400:语义有误,当前请求无法被服务器理解或请求参数有误
- 404:请求资源不存在,通常是路径写错了或者服务器资源删除了
- 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有什么用?相关推荐
- Tomcat服务器启动错误之Offending class: javax/servlet/Servlet.class
引子 最近在基于Wex5项目开发中,遇到使用过程中与Tomcat功能有关的错误提示, 如题所示.最终的解决方法就是删除掉项目上与tomcat冲突的jar包. org.apache.catalina.l ...
- 异常处理记录: 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 ...
- ClassCastException: com.gao5805123.servlet.ServletDemo cannot be cast to javax.servlet.Servlet
ClassCastException: com.gao5805123.servlet.ServletDemo cannot be cast to javax.servlet.Servlet **异常信 ...
- javaweb项目,配置servlet后报错:java.lang.ClassCastException: cannot be cast to class javax.servlet.Servlet
使用maven创建javaweb项目,通过添加依赖的方式来添加servlet-api,版本4.0.1,如下 <dependency><groupId>javax.servlet ...
- 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, ...
- 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 ...
- 启动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 ...
- 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 ...
- IDEA中出现XXXis not assignable to ‘javax.servlet.Servlet,jakarta.
一.分析原因 这个问题主要是servlet包的问题,在tomcat10以后Servlet就出现在了jakarta文件下 所以说在web.xml中就会起冲突,报错 XXX' is not assigna ...
- XXX is not assignable to javax.servlet.Servlet
XXX is not assignable to javax.servlet.Servlet 表示XXX不能被指定为一个javax.servlet.Servlet 我的错误原因是忘记extends H ...
最新文章
- 一文概览主要语义分割网络:FCN,SegNet,U-Net...
- 降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)
- 30+个必知的《人工智能》会议清单
- 【练习】不同排序算法执行时间比较
- phpmyadmin修改mysql数据库_用phpMyAdmin修改mysql数据库密码
- python实现栈,实现push(),pop(),top(),getMin()方法
- 组件Refs(操作DOM的2⃣️两种方法)
- 2-7 SpringBoot常用注解讲解
- React Native windows环境安装遇到的坑
- css布局方式_收藏!40 个 CSS 布局技巧
- poj2441状态压缩dp基础
- Java-Hashmap
- mysql 是如何利用索引的_10 分钟搞明白 MySQL 是如何利用索引的!
- 【二分图】洛谷P2055假期的宿舍
- jQ+jQ UI制作的一个简单的二级可多选穿梭框
- 英伟达显卡老版本驱动下载网址
- php 控制usb打印,usb口打印机的指令打印和驱动打印
- 腾讯汤道生:安全是产业数字化的底座
- 一本关于互联网与职场的湿暗后厨,和99元人民币的关系
- AUTOCAD2012安装失败解决方法
热门文章
- oracle基础语法(二)ORACLE查询
- access链接 mysql数据库教程_JDBC连接ACCESS数据库的三种方法
- 偏微分方程数值解法pdf_天生一对,硬核微分方程与深度学习的联姻之路
- 上海嵌联自控供应车流量统计系统
- windows服务器虚拟机 全屏,虚拟机安装Windowsxp系统后无法全屏的解决方法
- JetbrainsCrack-3.1-release-enc.jar 下载
- 用友U8总账对账不平问题总结
- 惠普M1005打印机驱动-LaserJet提供下载
- 刷机工具-fastboot
- DB2远程链接数据库编目命令代码