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

  • 抖音语音直播怎么开(抖音语音直播怎么关播)

    抖音语音直播怎么开(抖音语音直播怎么关播)

  • 微信群视频最多可以多少人(微信群视频最多能开多少人)

    微信群视频最多可以多少人(微信群视频最多能开多少人)

  • 淘宝无法给卖家发信息(淘宝卖家不支持退货怎么办)

    淘宝无法给卖家发信息(淘宝卖家不支持退货怎么办)

  • 支付宝乘车码一直无效(支付宝乘车码一小时内换乘)

    支付宝乘车码一直无效(支付宝乘车码一小时内换乘)

  • 文件含有违规内容怎么下载(文件含有违规内容 已自动拦截)

    文件含有违规内容怎么下载(文件含有违规内容 已自动拦截)

  • 电视1+8g内存够用吗(电视内存1+8的内存够用吗)

    电视1+8g内存够用吗(电视内存1+8的内存够用吗)

  • bogon是什么设备(bog是啥)

    bogon是什么设备(bog是啥)

  • 华为p40在哪插卡(华为p40在哪插卡视频)

    华为p40在哪插卡(华为p40在哪插卡视频)

  • 大王卡能打电话吗(大王卡能打电话用吗)

    大王卡能打电话吗(大王卡能打电话用吗)

  • amd显卡驱动安装不了(amd显卡驱动安装失败192)

    amd显卡驱动安装不了(amd显卡驱动安装失败192)

  • 千牛被限制登录是什么意思(千牛被限制登录了订单钱款还能下来吗)

    千牛被限制登录是什么意思(千牛被限制登录了订单钱款还能下来吗)

  • 芒果tv签到21天领会员怎么没有了(芒果tv签到21天领完的会员怎么用)

    芒果tv签到21天领会员怎么没有了(芒果tv签到21天领完的会员怎么用)

  • 微信面容登录怎么设置(微信用面容解锁)

    微信面容登录怎么设置(微信用面容解锁)

  • 荣耀play3支持nfc吗(荣耀play3支持电信卡吗)

    荣耀play3支持nfc吗(荣耀play3支持电信卡吗)

  • 怎么判断耳机孔坏没坏(怎么判断耳机孔有没有异物)

    怎么判断耳机孔坏没坏(怎么判断耳机孔有没有异物)

  • 显示器显示不全有黑边(显示器显示不全屏幕)

    显示器显示不全有黑边(显示器显示不全屏幕)

  • i3i5区别(i3 i5 区别)

    i3i5区别(i3 i5 区别)

  • 卖家没发货可以直接退款吗(卖家没发货可以退运费险吗)

    卖家没发货可以直接退款吗(卖家没发货可以退运费险吗)

  • 华为mate30pro国内上市时间(华为mate30pro手机国内价格)

    华为mate30pro国内上市时间(华为mate30pro手机国内价格)

  • 无法访问互联网什么意思(无法访问互联网wifi 怎么办)

    无法访问互联网什么意思(无法访问互联网wifi 怎么办)

  • qq安全中心修改资料在哪(qq安全中心修改密保手机)

    qq安全中心修改资料在哪(qq安全中心修改密保手机)

  • win1020H2打开第三方软件模糊的解决方法(win10打开第二个桌面快捷键)

    win1020H2打开第三方软件模糊的解决方法(win10打开第二个桌面快捷键)

  • 前端实战|React18项目启动——pc端极客园项目前置准备(前端实战培训)

    前端实战|React18项目启动——pc端极客园项目前置准备(前端实战培训)

  • 既简易计税又一般计税的进项专票可以抵扣吗
  • 申报未抄税
  • 车间设备折旧费属于制造费用吗
  • 当月减少的固定资产当月停止折旧
  • 餐饮业税务申报
  • 企业出现亏损的原因有哪些
  • 建设期利息对当年的借款如何计息?
  • 个人所得税补缴不补会怎样
  • 企业所得税连续3年亏损预警自查报告
  • 银行收取的利息要交税吗
  • 计入在建的工资会计科目
  • 材料成本和加工费含税吗
  • 专用发票扣税
  • 过路费是地税还是国税
  • 印花税应税凭证填是还是否
  • 国税和地税要怎么合并
  • 公司账户流水要交税吗
  • 货代免税是否需要每年备案
  • 何为风险报酬?
  • 销售库存商品结转的相关存货跌价准备冲减资产减值损失
  • 待认证进项税额转出会计分录
  • 股权转让受让方要交个人所得税吗
  • 退付手续费怎么操作
  • 企业收到财政资金
  • 污水处理费该谁交
  • win11时间不对
  • 系统安装的步骤
  • 天猫收取的三大费用
  • 哪些发票可以作为替代发票
  • 税后讲课费的个税由谁承担
  • 向农户收购农产品怎么打款
  • 新准则委托代建 不得管理费
  • 企业购买银行理财
  • php实现验证码
  • easyui表格分页
  • 工业企业应付账款周转率多少合适
  • gpt指标
  • cmd 过滤命令
  • create命令属于什么语句
  • python魔法方法详解
  • macps字体怎么导入
  • 旅行社怎样进行营销
  • 劳务费发票 个税
  • php框架是干什么的
  • 固定资产报废计入资产处置损益吗
  • 商业会计与财务会计的相同
  • 公司油票发票信息怎么查
  • 印花税申报怎么更正采集处理
  • 个人所得税10月份申报期
  • 银行开户费属于现金流量表的哪一类
  • 买水果送水果这样营销可以吗
  • 质量赔偿金
  • 现金流量表每月要报吗
  • 补付预付账款账务处理分录
  • 存货周转次数下降的原因
  • 以前年度不合规发票如何调年报
  • 只有进项发票没有销售发票这种怎么做账
  • 销售商品未开票
  • 小企业会计准则会计科目表
  • 销项发票怎么导出的是压缩包怎么打开
  • 日记账的建账工作
  • sqlserver导出数据库及表结构
  • win8.1运行Java程序网页出现空白等问题如何解决
  • ubuntu20设置wifi
  • system idle process是什么进程(CPU的空闲率)
  • 惠普装xp系统
  • win8系统崩溃无法开机
  • 命令提示符操作方法
  • 电脑windows8怎么样
  • 微软首席科学家薪水
  • linux 运行二进制文件
  • cortana win10
  • 如何开启金山毒霸
  • 电脑系统win8怎么样
  • linux yw命令
  • js let语句
  • 绝对给力的超经典
  • echarts图表
  • javascrip语言
  • 面向对象的三大特征
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设