范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

javaWeb之tomcat和servlet

  关注我,带你了解java
  老话说得好,要想学好javaWeb,必须先学会tomcat和servlet!
  大家好,我是冰冰,因工作原因最近一个月没更新作品,和大家说声抱歉!
  前段时间总结了MySQL的知识,接下来几天就总结一下javaWeb的知识!
  一、tomcat的介绍和安装
  1. tomcat介绍
  Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,Tomcat是一种类似于IIS、Apache Http的Web服务端程序,由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。也就是Web容器。
  由于 Tomcat 是由 Java 语言实现的,因此需要运行在 Java 虚拟机上,所以使用前要先安装 JDK,以提供运行环境
  Tomcat 实现了几个 Java EE 规范,包括 Java Servlet、Java Server Pages(JSP)、Java Expression Language 和 Java WebSocket 等。在下载好 Tomcat 后,可以在它的 lib 目录中看到相关的 Java EE 规范 API 源码的引用
  Tomcat 实现的几个 Java EE 规范中,有一个很重要的规范Servlet,通过它我们可以运行自己编写的 Servlet 应用程序处理动态请求,即实现动态页面
  Tomcat 的 Connector 组件实现了 HTTP 请求的解析,可以把 Tomcat 看作是一个 HTTP 服务器,Tomcat 可以通过 Connector 组件接收 HTTP 请求并解析,然后把解析后的信息交给 Servlet 处理:
  (1) 对于静态资源(html/css/js 等)请求:Tomcat 提供默认的 Servlet 来处理响应
  (2) 对于动态请求:可以映射到自己编写的 Servlet 应用程序来处理
  2. tomcat下载和安装
  这里以 Tomcat 8 为例,
  注意: 由于 Tomcat 运行在 Java 虚拟机上,因此在安装 Tomcat 之前要先下载好 JDK
  进入tomcat官网:https://tomcat.apache.org/
  下载Tomcat 8
  选择 zip 压缩包,下载后解压即可
  打开 Tomcat 文件夹,进入 bin 目录,双击 startup.bat 就可以运行 Tomcat 服务器
  注意: 由于 CMD 默认的编码方式是 GBK,而 Tomcat 的默认编码方式是 UTF-8,因此在双击 startup.bat 启动 Tomcat 时,CMD 上显示的会是乱码。但该问题可以不处理,因为并不需要通过 CMD 来查看 Tomcat 的启动状况及其它情况,可以使用其它方式。
  这时我们打开浏览器,输入localhost:8080/ 可打开tomcat官网,说明tomcat配置成功。
  二、servlet介绍
  1. servlet是什么
  说完tomcat,就不得不说servlet,因为Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
  Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
  Java Servlet 通常情况下与使用 CGI(公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:
  1.性能明显更好。
  2.Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  3.Servlet 是独立于平台的,因为它们是用 Java 编写的。
  4.服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  5.Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
  2. servlet是做什么的?
  读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  处理数据并生成结果。这个过程可能需要访问数据库,调用 Web 服务。
  发送显式的数据到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
  3.servlet的生命周期
  Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
  Servlet 初始化后调用 init () 方法。
  Servlet 调用 service() 方法来处理客户端的请求。
  Servlet 销毁前调用 destroy() 方法。
  Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
  4. 核心接口和类
  4.1 Servlet的接口:javax.servlet.Servlet
  4.2 GenericServlet
  是一个抽象类,该类为Servlet接口提供了部分实现,它并没有实现HTTP请求处理。
  4.3 HttpServlet
  是GenericServlet的子类,它继承了GenericServlet的所有方法,并且为HTTP请求中的POST、GET等类型提供了具体的操作方法。
  通常情况下,编写的Servlet类都继承自HttpServlet,在开发中使用的具体的Servlet对象就是HttpServlet对象。HttpServlet的常用方法及其说明如下表所示。
  4.4 ServletContext接口
  Servlet 容器启动时,会为每个 Web 应用(webapps 下的每个目录都是一个 Web 应用)创建一个唯一的 ServletContext 对象,该对象一般被称为"Servlet 上下文"。ServletContext 对象的生命周期从 Servlet 容器启动时开始,到容器关闭或应用被卸载时结束。Web 应用中的所有 Servlet 共享同一个 ServletContext 对象,不同 Servlet 之间可以通过 ServletContext 对象实现数据通讯,因此 ServletContext 对象也被称为 Context 域对象
  ServletContext 的官方文档介绍:
  定义 servlet 用来与其 servlet 容器通信的一组方法,例如,获取文件的MIME类型、分派请求或写入日志文件。
  每个Java虚拟机的每个"web应用程序"都有一个上下文。("web应用程序"是一个 servlet 和内容的集合,安装在服务器URL命名空间的特定子集下,如/catalog,可能通过.war文件安装。)
  在 web 应用程序的部署描述符中标记为"分布式"的情况下,每个虚拟机都有一个上下文实例。在这种情况下,上下文不能用作共享全局信息的位置(因为信息不是真正的全局的)。需要使用外部资源用作共享全局信息的载体,如数据库。
  ServletContext 对象包含在 ServletConfig 对象中,当 servlet 初始化时,Web服务器将向该对象(ServletConfig)提供可用的 servlet。
  获得 ServletContext 对象4种方式
  (1)通过 GenericServlet 提供的 getServletContext() 方法
  ServletContext servletContext = this.getServletContext();
  (2)通过 ServletConfig 提供的 getServletContext() 方法
  ServletContext servletContext = this.getServletConfig().getServletContext();
  (3)通过 HttpSession 提供的 getServletContext() 方法
  ServletContext servletContext = req.getSession().getServletContext();
  (4)通过 HttpServletRequest 提供的 getServletContext() 方法
  ServletContext servletContext = req.getServletContext();
  4.5 HttpServletRequest接口和HttpServletResponse接口
  HttpServletRequest请求转发
  一种在服务器内部的资源跳转方式。即访问某个资源后跳转到下一个资源继续访问。
  //使用请求转发
  req.getRequestDispatcher("/下一个资源路径").forward(req, resp);
  转发特点:
  1、浏览器地址栏路径不发生变化
  2、只能转发到当前服务器内部资源中。
  3、转发是一次请求。浏览器请求一次,访问多个资源。
  HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据。同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息。下表是接口HttpServletRequest的常用方法。
  HttpServletResponse重定向
  重定向(Redirect)也是一种资源跳转的方式。就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
  重定向(redirect)告诉浏览器的信息:
  1、告诉浏览器重定向:状态码302
  2、告诉浏览器B资源的路径: 响应头location:其他资源的路径
  代码:
  // 第一种代码实现
  //1. 设置状态码为302
  response.setStatus(302);
  //2.设置响应头location,响应头location的值为/day15/responseDemo2response.setHeader("location","/day15/responseDemo2");
  // 第二种简单上述代码实现
  // 简单的重定向方法response.sendRedirect("/day15/responseDemo2");
  重定向的特点:
  1、地址栏发生变化。
  2、重定向可以访问其他站点(服务器)的资源。
  3、重定向是两次请求。不能使用 request 对象来共享数据。
  在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。设置响应的类型可以使用setContentType()方法。发送字符数据,可以使用getWriter()返回一个对象。下表是接口HttpServletResponse的常用方法。
  星辰大海,永不止步
  END

男子腹部痒,医生用镊子夹出16只阴虱!原来阴虱有4个传播途径王先生今年30出头,前阵子疫情反复好不容易解了封,他就和家人商量一起出去旅游,打算放松放松,也缓解一下长期不出门的憋闷。出去玩了一圈回到家,王先生的身体就开始不对劲,腹部的瘙痒感越中国QBZ95突击步枪在所有突击步枪中性能算得上好吗?总的来说是算得上好啊,要说最好那确实有待商榷,但是说声好没啥问题,而且武器的研发装备要看战术需求。巷战没人选拉大栓吧?开阔地200米对射没人选冲锋枪吧?这都是一个道理。对于pla来中国智商税重灾区,榨干上千万家长钱包,商家套路太深了随着人们消费水平的提高,商家们开始将目光瞄准教育和育儿领域。资本抓住一切要从娃娃抓起这句话,大肆制造迷局和焦虑,目的就是榨干家长们的钱包。娃娃的枕头被子鞋子奶粉,就连最纯净的水也被北京国安新帅做出英明决定,恭喜张玉宁,恭喜张稀哲,可以安心了北京时间9月5日,中国足球传来最新消息,国内媒体体坛周报曝出猛料,国安新帅坚持地面传控风格,称尽力踢出有控制力的足球,这样的情况对于处在低谷中的北京国安来说,无疑是个积极的信号。体啥情况?中国游泳名将怀孕四个月住酒店,遭暴力威胁出门腿劈断近日,一位曾经在大众视线里消失很久的前游泳国家队名将,却因为住酒店再酒店男性工作人员的暴力威胁而再次上了热搜。值得一提的是,在受到男性工作暴力威胁时,这名游泳名将还怀着四个月的身孕美国重返月球运载火箭超土星五号,中国长征九号将会更大这两天,全世界都在关注美国的重返月球发射任务,根据8月19日美国宇航局(NASA)发布的消息,载人登月计划的首次无人飞行测试阿尔特弥斯1号任务将于8月29日开始。目前,测试用的猎户我们也应该保护中国的脊梁我们也应该保护中国的脊梁为了国家利益老百姓利益而敢于仗义执言的敢于挺身而出的敢于为民请命的人作者冰粒2022。8。26自古以来,中国就有天下为公的人,有舍身取义凛然正气的人,有穷且美国在德克萨斯州发现了1亿多年前的古恐龙脚印美国在德克萨斯州发现了1亿多年前的古恐龙脚印美国当地时间2022年8月26日外媒消息报道称,德克萨斯州西北部的恐龙谷州立公园发现了多条属于高棘龙的足迹,因为大范围的干旱导致流经德克拯救者Y70美图赏析纤薄身姿下的炸裂能量在大家的刻板印象里,电竞手机差不多都是那种较为夸张炫酷的,比如拯救者Y90,整体造型就特别刚猛,狂战士一般。但最近,拯救者Y70的到来让人家眼前一亮,它的造型纤薄多姿,简约大气的设据传下一代AppleWatch将拥有新的(PRODUCT)RED红色机型备货充足据被称为ShrimpApplePro的泄密者称,AppleWatchSeries8将带来新的红色即可,且预计不会出现延迟上市的情况。在今天早些时候的一条推文中,ShrimpAppl九阳KX28V195空气炸锅烤箱测评,整体评价如何呢?小编终于种草了九阳空气炸烤箱,首先说它的颜值,它整个配色是偏米白色的一个设计,米色它介于驼色和白色之间,它比白色多了几分高贵和温暖。从容量和功能上看28L大容量,融合了烤箱空气炸锅
光遇新手入门指南1首先经过测试,国际服的安卓和苹果是可以一起玩的,这两个平台的玩家可以相互添加好友,并且在地图中也可以看到各自的身影。2既然国际服才用了互通的规则,那么国服自然也应该互通,但是受到正式服4名英雄调整,中路唯一T0紧急降温,孙悟空和张飞加强!12月21日,正式服迎来了一次更新,调整了4名英雄。张飞被动专精降低伤害输出比例3035被动力量进阶进阶条件5000额外生命4000额外生命解读自从辅惩流退出历史舞台后,张飞出专精鸿星尔克x王者荣耀联名枫叶鞋杀疯了!一鞋难求!近期,火遍潮流圈的枫叶鞋杀疯了,各种被刷屏,小编发现众多明星和潮人均在上脚,成为一众潮人与明星最热单品。此次这双枫叶鞋是鸿星尔克再度携手王者荣耀联名共创,取自王者荣耀热门英雄的人物荣耀平板V8Pro官宣搭载天玑8100处理器,12月26日发布IT之家12月20日消息,荣耀全场景新品发布会官宣将于12月26日1930举行,届时将带来荣耀80GT荣耀80直屏版以及首款搭载MaigcOS7。0的荣耀平板V8Pro。今天荣耀官梅西发长文感恩夺冠没有失败就没有成功梅西发长文,令人动容,梅西发长文感恩夺冠没有失败就没有成功,从CBA看奥密克戎毒性现在各种消息,各种专家发话,给出的结论却大相径庭。作为CBA球迷我们看看CBA的情况来总结一下。现在各队都集中在浙江一个地方比赛,所以,可以很好的比较一下疫情的情况。首先,各队大部欢呼侃球曼城VS利物浦今天聊聊曼城与利物浦的这场英联杯的比赛,今天比赛不多这两支球队还是老对手,这场比赛备受关注。视频加载中上述观点只是欢呼对本场比赛的一些想法!朋友们可以把您对这场比赛的看法发布在评论本以为是烂片,上线就夺飙升榜第一,释小龙又把动作片拍成了爆款提到娱乐圈中的功夫明星,你的脑海中第一时间想到的是谁?李连杰成龙甄子丹吴京?遗憾的这些人都已经老去,小鲜肉的行列中,是否有新起之秀?5岁出演笑林小子的释小龙,我觉得你可以了解一下。坚韧不止,SHOCK傲江湖!卡西欧天猫超品日限时福利等你冲!从最初以创造一款摔不坏的手表为目标,到如今持续破界新生,与时尚潮流运动艺术音乐等领域碰撞融合,GSHOCK以实力诠释坚韧不止,以进化突破桎梏!时间跨越40年,GSHOCK不改坚韧信两个穴位,针对发热和咽干咽痛有奇效阳了后,发热和咽干咽痛成为主要症状,其实人体中就有两个退热和缓解咽喉肿痛的穴位,他们是少商商阳。少商穴商阳穴放血有防治嗓子疼感冒咳嗽发烧的功效,所以当嗓子不舒服时尝试放血,每次放血电解质水喝了防阳?电解质水应该在什么时候喝才有效电解质平衡与健康因为防疫指导中提到了电解质水这个词汇,最近抢购电解质饮料产品的风潮此起彼伏。简单解释相关内容1电解质是人体所需的营养成分,帮助维持体液