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

  • 网站推广新模式—如何运用博客推广(网站的推广方案)

    网站推广新模式—如何运用博客推广(网站的推广方案)

  • 小红书笔记可以屏蔽某人吗(小红书笔记可以删除吗)

    小红书笔记可以屏蔽某人吗(小红书笔记可以删除吗)

  • 华为荣耀9x初次充电要求(荣耀9x初始密码是多少)

    华为荣耀9x初次充电要求(荣耀9x初始密码是多少)

  • 电脑版WPS表格斜框线怎么设置(电脑wps表格斜线制作)

    电脑版WPS表格斜框线怎么设置(电脑wps表格斜线制作)

  • 11的屏幕多大(苹果13的屏幕尺寸多大)

    11的屏幕多大(苹果13的屏幕尺寸多大)

  • 拼多多能看到好友的浏览记录吗(拼多多能看到好友的收货地址么)

    拼多多能看到好友的浏览记录吗(拼多多能看到好友的收货地址么)

  • 为什么弹幕一会有一会没有(为什么有些弹幕会停留一会)

    为什么弹幕一会有一会没有(为什么有些弹幕会停留一会)

  • 微信有主题皮肤吗(微信主题皮肤下载)

    微信有主题皮肤吗(微信主题皮肤下载)

  • oppo手机强制分屏(oppo怎么强行分屏)

    oppo手机强制分屏(oppo怎么强行分屏)

  • win7重装几个小时(重装一个win7系统多少钱)

    win7重装几个小时(重装一个win7系统多少钱)

  • 微信动态视频怎么发到朋友圈(微信动态视频怎么拍)

    微信动态视频怎么发到朋友圈(微信动态视频怎么拍)

  • uhd610相当于什么显卡(uhd610多少钱)

    uhd610相当于什么显卡(uhd610多少钱)

  • 监控摄像头能保存多久(监控摄像头能保持多久的视频)

    监控摄像头能保存多久(监控摄像头能保持多久的视频)

  • 在计算器上ce是什么键(在计算器上ce是什么键ac是什么键)

    在计算器上ce是什么键(在计算器上ce是什么键ac是什么键)

  • 闲鱼可以分期购买吗(闲鱼能否分期)

    闲鱼可以分期购买吗(闲鱼能否分期)

  • 快手怎么加入粉丝团(快手怎么加入粉丝团群聊)

    快手怎么加入粉丝团(快手怎么加入粉丝团群聊)

  • iphone11pro怎么设置时间(iphone11pro怎么设置动态壁纸)

    iphone11pro怎么设置时间(iphone11pro怎么设置动态壁纸)

  • 荣耀20怎么开启breeno(荣耀20怎么开启两个系统)

    荣耀20怎么开启breeno(荣耀20怎么开启两个系统)

  • 饿了么可以点外省的吗(饿了么可以点外卖自取吗)

    饿了么可以点外省的吗(饿了么可以点外卖自取吗)

  • 找回删掉的公众号(怎么找回删掉的公众号)

    找回删掉的公众号(怎么找回删掉的公众号)

  • 调制解调器怎么重启(调制解调器怎么打开)

    调制解调器怎么重启(调制解调器怎么打开)

  • 联想3c服务是什么(联想3c服务中心什么意思)

    联想3c服务是什么(联想3c服务中心什么意思)

  • 设计制图用i5还是i7(设计制图用i5还是i5好)

    设计制图用i5还是i7(设计制图用i5还是i5好)

  • xr能用动态壁纸吗(xr能不能用动态壁纸)

    xr能用动态壁纸吗(xr能不能用动态壁纸)

  • 微信听语音黑屏(微信听语音黑屏是怎么回事)

    微信听语音黑屏(微信听语音黑屏是怎么回事)

  • 从环绕山峰的小径最高点看到的拉瓦莱多三峰山,意大利 (© AWL Images/Danita Delimont)(环绕着山的是什么歌)

    从环绕山峰的小径最高点看到的拉瓦莱多三峰山,意大利 (© AWL Images/Danita Delimont)(环绕着山的是什么歌)

  • 增值税申报表出口退税
  • 公司更换营业执照需要多久
  • 2023年印花税如何计算
  • 酒类产品的税率
  • 所得税交多了怎么办
  • 贴现的费用怎么入账
  • 银行汇票多余金额会计分录
  • 固定资产的净值等于
  • 股票质押式回购交易业务
  • 一般纳税人抵扣小规模期间的专票怎么解决
  • 假的手撕票已经入账了怎么办?
  • 税控盘证书密码一天可以输几次
  • 美国边境管理体制
  • 车间设备折旧计入哪个科目
  • 迁出注销类别怎么写
  • 经营用的固定资产
  • 增值税做账做错怎么处理
  • 进项发票认证抵扣时间有限制吗
  • 销售东西的物流叫什么
  • 预交土地增值税怎么计算的
  • 充值会员卡送的营销秘诀
  • 计提劳务派遣人员社保收到发票后没有付款的会计分录
  • uniapp h5发布
  • 显示器有必要买240hz吗
  • php反射获取方法参数
  • js监听事件和处理事件
  • 深究Python中的asyncio库-shield函数
  • 拍卖收入个人所得税
  • 房地产开发企业成本核算方法
  • 月初领票是不是要等到报完税才可以领
  • 更正申报季度企业所得税
  • sql server 使用
  • 收据十万大写金额填写样本
  • 怎么打印银行对账单
  • 企业所得税研发费用加计扣除例题
  • 用于员工福利的专票可以抵扣吗
  • 私车公用协议可以过户吗
  • 画完图不给钱怎么办
  • 金税盘发票认证怎么操作流程
  • 公司收不到的账款怎么办
  • 技术咨询费属于什么类别
  • 公司原股东转让全部股权误把认缴金额写成转让金额
  • 私营公司固定资产怎么查
  • 职工福利费的核算内容
  • mysql5.7卸载重装
  • windows主进程rundll32总是用麦克风
  • 深度技术win11
  • 免费获取windows8.1
  • linux连接ssr
  • centos8 php7.4
  • linux如何拨号
  • 在Mac OS Yosemite 系统中如何发送超大邮件附件
  • icloud怎么加密码
  • macos 网速慢
  • 怎么在mac上查找iphone
  • linux中安装软件可使用哪些方式
  • unity动画调速度
  • javascript 数组操作
  • node·js
  • 搭建安卓开发环境必须的工具
  • unity3d物体移动代码
  • ssh自动输入密码登录
  • nodejs fs.open
  • AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
  • windows下为啥没有观看电视的软件
  • javascript核心技术
  • 在javascript中如果不指明对象直接调用
  • jQuery实现ajax的叠加和停止(终止ajax请求)
  • jquery源码解析
  • python画足球
  • jquery foreach循环
  • 江西国税发票查询官网
  • 税务工作创新
  • 税务局党支部党员大会会议记录
  • 中山市地方税务局官网
  • 商铺转让费怎么开票项目
  • 复印店开什么发票
  • 保险机构如何代收车船税
  • 税收筹划与避税的性质相同
  • 服务承诺口号八个字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设