位置: 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中如何创建一个对象)

  • 创业+故事+网:一名创业者对投资人的控诉(创业故事网)

    创业+故事+网:一名创业者对投资人的控诉(创业故事网)

  • 苹果手机怎么设置百分比电量(苹果手机怎么设置铃声来电铃声)

    苹果手机怎么设置百分比电量(苹果手机怎么设置铃声来电铃声)

  • switch连接wifi失败

    switch连接wifi失败

  • 小米mI4lte是啥型号(小米4mi4lte)

    小米mI4lte是啥型号(小米4mi4lte)

  • 手机充不进电小米(手机充不进电小米9)

    手机充不进电小米(手机充不进电小米9)

  • oppo手机的降温功能在哪里面(oppo手机的降温功能在哪里)

    oppo手机的降温功能在哪里面(oppo手机的降温功能在哪里)

  • c头文件有哪些(c头文件的作用)

    c头文件有哪些(c头文件的作用)

  • 淘宝4心要多少单(淘宝4心能上多少宝贝)

    淘宝4心要多少单(淘宝4心能上多少宝贝)

  • 黄钻过期后自定义的空间背景会消失吗(黄钻过期了还能置顶吗)

    黄钻过期后自定义的空间背景会消失吗(黄钻过期了还能置顶吗)

  • 小天才电话手表怎么下载作业帮(小天才电话手表怎么玩游戏)

    小天才电话手表怎么下载作业帮(小天才电话手表怎么玩游戏)

  • qq消息多久之内可以撤回(qq消息多久内可以撤回)

    qq消息多久之内可以撤回(qq消息多久内可以撤回)

  • 华硕笔记本电脑拔下充电器立即关机(华硕笔记本电脑开机黑屏没反应)

    华硕笔记本电脑拔下充电器立即关机(华硕笔记本电脑开机黑屏没反应)

  • 苹果11来电闪光灯怎么设置(苹果11来电闪光灯设置了也不闪)

    苹果11来电闪光灯怎么设置(苹果11来电闪光灯设置了也不闪)

  • 滴滴预付款是什么意思(滴滴预付款什么时候能到账)

    滴滴预付款是什么意思(滴滴预付款什么时候能到账)

  • 一加7t是2k屏吗(一加7有2k屏吗)

    一加7t是2k屏吗(一加7有2k屏吗)

  • 手机怎么远程控制手机(手机怎么远程控制汽车打火)

    手机怎么远程控制手机(手机怎么远程控制汽车打火)

  • 拼多多申请退款平台处理一般需要多久(拼多多申请退款成功了,货不退可以吗)

    拼多多申请退款平台处理一般需要多久(拼多多申请退款成功了,货不退可以吗)

  • 光纤有信号但不能上网(光纤无信号的解决办法)

    光纤有信号但不能上网(光纤无信号的解决办法)

  • 苹果手机自动续费的要在哪里关闭(苹果手机自动续费怎么申请退款)

    苹果手机自动续费的要在哪里关闭(苹果手机自动续费怎么申请退款)

  • 小米手环3如何接电话(小米手环3如何绑定手机)

    小米手环3如何接电话(小米手环3如何绑定手机)

  • ios怎么切换地区(ios怎么切换地区看tiktok)

    ios怎么切换地区(ios怎么切换地区看tiktok)

  • win11系统打不出中文只显示字母该怎么办呢?(win11系统打不出顿号)

    win11系统打不出中文只显示字母该怎么办呢?(win11系统打不出顿号)

  • Tesla AI day中感知部分的详细解析(一)——Transformer在图像领域的应用(特斯拉 ai day)

    Tesla AI day中感知部分的详细解析(一)——Transformer在图像领域的应用(特斯拉 ai day)

  • 增值税价外费用开票内容
  • 固定资产更新改造资本化条件
  • 企业所得税季度申报
  • 小规模首次申请发票张数
  • 固定资产清理哪方登记增加
  • 酒类许可证过期了去哪里换证
  • 工程结算扣罚款怎么开票
  • 当期亏损如何计提所得税
  • 小规模开普票多少税点
  • 天猫最新提现技术
  • 暂估跨年取得发票怎么办
  • 个人投资者取得现金红利的过程不用支付利息税
  • 开房屋租金发票需要带什么资料
  • 销售自己使用过的物品
  • 其他应收款账户期初借方余额为35400
  • 转让房地产未完工项目增值税发票如何处理?
  • 短期借款在房地产怎么算
  • 预付的固定资产没有收到发票怎么入账
  • 将自产产品赠送他人
  • 接受长期股权投资的条件
  • 收到上个月的发票怎么做分录
  • 技术服务费发票税率是多少
  • 营改增后加工行业的税率是多少?
  • 免税企业土地税怎么交
  • 移动电子发票怎么发送到邮箱
  • 股息红利是否交个人所得税
  • 研发支出资本化的条件
  • 审计报告可以不披露上年数吗
  • 赊销方式何时确认收入呢
  • 纳税人证明是完税证明吗
  • 无偿提供服务需要交增值税吗
  • 职工教育经费取得证件之后补助多少钱
  • 总工会拨付工会经费
  • 财务人员工资计入什么费用?
  • 合同终止后发生的效果包括
  • 未开票收入如何记账
  • 外贸收汇怎么处理
  • 什么是冻结账户的情形
  • deepin怎么删除账户
  • 外贸企业进项税额转出
  • 房地产企业所得税预提成本10%
  • 喝咖啡的好处和坏处 女性
  • php floor()
  • 192.168.2.1 路
  • 阿里云搭建hexo
  • 权益工具与金融负债的转换
  • yii2实现根据时间搜索的方法
  • 3d点云处理算法
  • 不征税收入的账务处理
  • 企业所得税申报表在哪里打印
  • 填写蓝字专用发票信息
  • DedeCMS V5.7 SP2前台文件上传漏洞
  • 上市公司收购其他股票
  • 汇算清缴需要做账吗
  • 销售费用工资是什么科目
  • 购入无形资产属于资产吗
  • 商业保险的养老保险可靠吗
  • 其它综合收益包括
  • 实收资本相关认定
  • 毛利和净利的区别大白话
  • windows u盘制作
  • 丢失acui16.dll
  • dotnetfx35有什么用
  • mac系统有txt吗
  • imac 迅雷
  • linuxserver docker
  • Mac系统修复怎么进入
  • win7系统禁用网络后如何开启
  • win10 右下角
  • win10桌面图片预览
  • 新装win8系统卡顿严重,虚拟内存为0
  • js实现倒计时60s
  • 关于extjs4如何获取grid修改后的数据的问题
  • jquery左滑切换
  • vue 瀑布流
  • node.js开发实战详解
  • 魔兽世界全部开发成本
  • 用js实现类的方法
  • 小规模开票税金怎么算
  • 公司租房的房产税应计入哪个科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设