位置: IT常识 - 正文

day11-Servlet01

编辑:rootadmin
==Servlet01== 官方api文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html Servlet和Tomcat的关系:一句话,Tomcat支持Servlet Servlet是跟Tomcat关联在一起的,换而言之, ... Servlet01

推荐整理分享day11-Servlet01,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

官方api文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html

Servlet和Tomcat的关系:一句话,Tomcat支持Servlet

Servlet是跟Tomcat关联在一起的,换而言之,Tomcat是哪个版本,就对应哪个版本的Servlet

1.为什么需要Servlet?

需求:请用你现有的html,css,javascript,开发网站,比如可以让用户留言/购物/支付,你能搞定吗?

这就需要引入我们的动态网页(能和用户交互)技术===>Servlet

我们对之前的JavaWeb技术体系图进一步地细化:

Tomcat的web服务拿到一个请求后:

如果web服务发现是该请求是和java相关的,或者说是一个Servlet(动态请求,比如说可能会去操作数据库),那么Tomcat会去寻找Servlet,Servlet又去调用java程序,进行数据库操作

如果Tomcat的web服务发现请求的是一个静态资源,比如html,图片等,就直接拿到该资源,然后返回,不会和java程序或者数据库发生关系

因此我们说Tomcat其实是有两个功能的:一是充当Servlet的容器;二是充当普通的web服务

只支撑静态资源返回的还有apache,如果是一个静态资源的网站,不需要和数据库进行交互,其实完全可以使用Apache来作为web服务,或者只使用一个Nginx就可以了

2.什么是Servlet?

什么是Servlet

Servlet在开发动态WEB工程中得到了广泛地应用,掌握好Servlet非常重要,Servlet是SpringMVC的基础

Servlet(java服务器小程序),它的特点有:

它是由服务器调用和执行的

即由tomcat解析和执行的

它是用java语言编写的,本质就是Java类

它是按照Servlet规范开发的(接口),Servlet本质就是一套接口规范

除了Tomcat可以去解析Servlet,weblogic也可以支持 Servlet,即只要按照规范去开发接口,就可以支持Servlet,类似于jdbc的接口规范

功能强大,几乎完成所有的网站功能

3.Servlet基本使用3.1Servlet开发方式说明Servlet3.0前使用web.xml,Servlet3.0版本以后(包括3.0)支持注解,同时支持web.xml配置如何查看Servlet版本Servlet的讲解只是为了知道Servlet的使用原理(原生的Servlet在项目中使用很少)不管使用哪种方式,本质都一样3.2快速入门-手动开发Servletday11-Servlet01

例子

需求说明:

开发一个HelloServlet当浏览器访问http://localhost:8080/web应用名/helloServlet时,后台输出“hi HelloServlet”

思路:

编写类HelloServlet去实现Servlet接口

实现service方法,处理请求,并响应数据

在web.xml中去配置Servlet程序的访问地址

首先创建web工程,配置好Tomcat

添加servlet-api.jar(在你安装的tomcat/lib下)到工程,因为servlet.jar不是jdk自带的,要引入才可以使用

在idea项目的web/WEB-INF下创建一个lib目录,将servlet-api.jar拷贝进去,然后右击jar包,点击add as library,在弹出的窗口中点击ok即可

在src包下面创建HelloServlet.java,并实现Servlet接口

package com.li.servlet;import javax.servlet.*;import java.io.IOException;/** * 1.开发一个servlet,需要实现Servlet接口 * 2.实现Servlet接口的方法:一共有5个 */public class HelloServlet implements Servlet { /** * 1.初始化 Servlet * 2.当创建HelloServlet实例时,会调用init方法 * 3.该方法只会被调用一次 * * @param servletConfig * @throws ServletException */ @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init() 被调用"); } /** * 返回ServletConfig对象 也就是返回Servlet的配置 * * @return */ @Override public ServletConfig getServletConfig() { return null; } /** * 1.service方法处理浏览器的请求(包括get/post) * 2.当浏览器每次请求Servlet时,就会调用一次server方法 * 3.当Tomcat调用该方法时,会把http请求的数据封装成 实现了ServletRequest接口 的request对象 * 4.通过servletRequest对象,就可以得到用户提交的数据 * 5.servletResponse对象可以用于返回数据给Tomcat-->浏览器 * * @param servletRequest * @param servletResponse * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("hi HelloServlet~"); } /** * 返回servlet的信息,使用较少 * * @return */ @Override public String getServletInfo() { return null; } /** * 1.该方法是在servlet被销毁时,被tomcat调用 * 2.只会调用一次 */ @Override public void destroy() { }}

实现了接口之后,在web.xml配置HelloServlet,即给HelloServlet提供对外的访问地址

目的是为了告诉Tomcat服务器,HelloServlet在哪里

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--web.xml文件主要用来配置该web应用使用到的Servlet--> <!--配置HelloServlet--> <!--解读: 1.servlet-name:给Servlet取名(任意),该名字唯一 2.servlet-class:Servlet的类的全路径,Tomcat在反射生成该Servlet类实例时需要使用 3.servlet-mapping里的servlet-name要和上面的servlet-name保持一致 4.url-pattern:这个就是该Servlet访问的url的配置(路径) 5.这时我们应该这样访问Servlet:http://localhost:8080/web应用名/helloServlet 5.url-pattern的取名也是随意的(注意加上斜杠) --> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.li.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/helloServlet</url-pattern> </servlet-mapping></web-app>

设置 快捷键ctrl+/ 可以在当前位置注释,而不是在行

访问HelloServlet(记得要reploy或者restart)

可以自己配置快捷键启动

浏览器访问:

后台输出:可以看到init方法只调用了一次,而每次访问都会调用server方法

4.浏览器调用Servlet流程分析

本文链接地址:https://www.jiuchutong.com/zhishi/310364.html 转载请保留说明!

上一篇:WordPress提示Briefly unavailable for scheduled maintenance解决办法(wordpress提示插件)

下一篇:使用Python创建简单的HTTP服务器(python中如何创建一个对象)

  • OPPO Find X3是曲面屏吗(oppofindx3是曲面屏还是平面屏)

    OPPO Find X3是曲面屏吗(oppofindx3是曲面屏还是平面屏)

  • 华为nova5字体怎么改(华为nova字体怎么改)

    华为nova5字体怎么改(华为nova字体怎么改)

  • 苹果x和苹果11区别(苹果x和苹果11哪个好 知乎)

    苹果x和苹果11区别(苹果x和苹果11哪个好 知乎)

  • 荣耀9x深色模式怎么打开(荣耀九深色模式)

    荣耀9x深色模式怎么打开(荣耀九深色模式)

  • 携程如何查火车票订单(携程如何查火车票)

    携程如何查火车票订单(携程如何查火车票)

  • 腾讯视频能扫码登录吗(腾讯视频能扫码登录会员吗)

    腾讯视频能扫码登录吗(腾讯视频能扫码登录会员吗)

  • 微信三个拥抱代表什么(微信三个拥抱代表什么意思)

    微信三个拥抱代表什么(微信三个拥抱代表什么意思)

  • 电脑的根号怎么输入(电脑的根号怎么表示)

    电脑的根号怎么输入(电脑的根号怎么表示)

  • 抖音三百多播放量正常吗(抖音三百多播放量没有赞)

    抖音三百多播放量正常吗(抖音三百多播放量没有赞)

  • 如何才能让微信不封号(如何才能让微信不限额)

    如何才能让微信不封号(如何才能让微信不限额)

  • 主板电池放电要多久(主板电池放电要充满吗)

    主板电池放电要多久(主板电池放电要充满吗)

  • 怎样删除空白页wps(怎样删除空白页的页眉和页脚)

    怎样删除空白页wps(怎样删除空白页的页眉和页脚)

  • 什么是黑金电池(黑金电池和石墨烯电池哪个好)

    什么是黑金电池(黑金电池和石墨烯电池哪个好)

  • a1491是ipad几(平板a1491是ipad几代?)

    a1491是ipad几(平板a1491是ipad几代?)

  • 为什么微信老是环境异常封号(为什么微信老是显示储存已满)

    为什么微信老是环境异常封号(为什么微信老是显示储存已满)

  • 台式电脑开不了机,风扇转一下就停了(台式电脑开不了机)

    台式电脑开不了机,风扇转一下就停了(台式电脑开不了机)

  • 支付宝寻人功能在哪(支付宝寻人启事在哪里)

    支付宝寻人功能在哪(支付宝寻人启事在哪里)

  • c盘被压缩无法开机(c盘被压缩无法解压)

    c盘被压缩无法开机(c盘被压缩无法解压)

  • 魅族pop一代和二代的区别(魅族pop和pop2)

    魅族pop一代和二代的区别(魅族pop和pop2)

  • oppo手机没有超级截屏吗(oppo手机没有超级截屏吗怎么弄)

    oppo手机没有超级截屏吗(oppo手机没有超级截屏吗怎么弄)

  • 荣耀30s支持人脸识别吗(荣耀30s支持人脸解锁吗)

    荣耀30s支持人脸识别吗(荣耀30s支持人脸解锁吗)

  • 苹果手表series5和nike区别(苹果手表series5是什么意思)

    苹果手表series5和nike区别(苹果手表series5是什么意思)

  • vivoy93怎么设置返回键(vivoy93怎么设置小屏)

    vivoy93怎么设置返回键(vivoy93怎么设置小屏)

  • bs机什么意思(二手bs机什么意思)

    bs机什么意思(二手bs机什么意思)

  • 为什么微信摇一摇都是假人(为什么微信摇一摇不能摇了)

    为什么微信摇一摇都是假人(为什么微信摇一摇不能摇了)

  • 图书管理系统的需求分析和项目介绍(图书管理系统的软件结构图)

    图书管理系统的需求分析和项目介绍(图书管理系统的软件结构图)

  • Vite4+Pinia2+vue-router4+ElmentPlus搭建Vue3项目(组件、图标等按需引入)[保姆级]

    Vite4+Pinia2+vue-router4+ElmentPlus搭建Vue3项目(组件、图标等按需引入)[保姆级]

  • 仓储服务费税率2021
  • 流转税解释
  • 电子承兑提示付款
  • 公司的软件服务包括哪些
  • 增值税发票记账联要盖章吗
  • 资产负债表中的货币资金怎么算
  • 公章更换后需要到工商局备案么
  • 增值税建筑业税率几次调整
  • 对外投资企业利润回国意愿的政策建议
  • 冲回资产减值准备
  • 个体户公司需要交哪些税
  • 咨询费 税
  • 建筑企业的职工由于不服管理违反规章制度
  • 房地产开发企业预收款预缴增值税
  • 合伙人未出资能成为合伙人吗
  • 替票是什么和发票的区别
  • 分步法所分的成本计算步骤应是实际的生产步骤
  • 合营企业之间为什么不构成关联方
  • 专票的六位开票代码指的是什么
  • 营改增后城建税怎么算
  • 评估的房产如何入账
  • 工程分配协议书范本
  • win11操作中心怎么关闭
  • 利润分配怎么核算
  • 退休返聘人员的优点
  • 海关进口增值税专用缴款书
  • typecho安装插件
  • 隐藏资源管理器窗口
  • 传递优化的作用
  • 想要探究的问题
  • 公允价值变动损益借贷方向
  • 超支福利费按什么计提
  • php pulsar
  • php时间函数代码
  • 什么是收付实现制?什么是权责发生制?
  • 收到的国家电网电话
  • php连接redis集群
  • 帝国cms视频教程
  • 公积金计提按当月计算吗
  • 物业费税目
  • 社保基数填错了 多扣多钱可以退款吗
  • 织梦怎么采集文章
  • 目前功能最强大的手机
  • 公司没有车加油费怎么报
  • 确认预计负债的三个条件
  • 只收加工费
  • 预充值发票可以报销吗
  • 记账软件多少钱一套
  • 用友t3建账行业性质怎么选
  • 企业专项资金购买固定资产
  • 内含增长率的推导
  • 工程的挂靠取得收入怎么做账?
  • 零余额帐户如何转出
  • 将税后利润首先用于增加投资
  • 库存周转率中销量怎么算
  • 发票遗失重开需要收费吗?
  • 转账支票填写样本图片
  • 总公司与分公司的关系
  • 其他应付款在借方表示什么
  • 总账和明细账的保管期限
  • 公司的应付账款
  • mysql 优化口诀
  • sql语句压缩
  • 阿里云安装
  • linux修改时间格式
  • Win10预览版镜像
  • win7系统网速太慢怎么办
  • 学会这8个技巧让你做出的菜味道更好
  • linux免安装软件
  • opencli
  • web在线编辑excel
  • media and
  • shell字符串截取加替换
  • dos常用命令详细讲解
  • framelayout布局
  • jQuery中的select操作详解
  • 详解node HTTP请求客户端 - Request
  • 编写shell脚本,批量建立用户
  • python怎么爬
  • 你不需要知道我是谁,祖国知道我
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设