目录:
1.Tomcat安装启动以及诊断
2.Serlevt基础概述以及开发入门
3.建webo项目

学习目标

学会配置tomcat,及清楚其作用。

一、Toncat是干什么的:

Toncat是Apache组织的Jakart项目中的一个重要子项目。它是由Sun公司推荐运行Servlet和JSP的容器(引擎)其源代码是完全公开的。Tomcat不仅支持Web服务器的基本功能,还提供数据库连接池等许多通用组件功能。
因此大多数用它作为运行运行Servlet和JSP的平台。

二、安装步骤和启动

1.Tomcat

官网地址:https://tomcat.apache.org/

eclipse EE文件包:链接:https://pan.baidu.com/s/1H0NSh1v4i06xLHyuJE_ksg
提取码:mvo7

二、配置步骤

1.eclipse集成tomcat




选择安装包



到这个步骤时一定要点击这两个地方,箭头处一定要牢记,当你在浏览器搜索的时候一定要正确填写端口号。

三、新建一个webo项目,访问动态页面


webo概述:在webo服务器运行的webo应用形式呈现,所谓Webo就是多个资源的集合,Webo应用通常也称Webo工程。
输入FirstServlet - ->Next - ->Next



3.新建servlet





第二种方式创建servlet2建在这个位置如图

打开网页也是正常的

到这里我们的配置完成了安装以上步骤你就可以完美的安装的Tomcat。

Servlet基础

**Servlet概述以及开发入门
Servlet概述:Servlet时使用java语言编写在运行在服务器端的程序。Servlet主要用来处理客户端传递html请求,并返回一个反响,请求的有doget/doPost()等方法。
一、什么是servlet?
web访问流程图:
编写第一个servlet
二、servlet的生命周期
1.servlet的生命周期
2.servlet的特征
三、ServletConfig接口
四、ServletContext接口简介

创建javaee的web项目
在使用servlet之前我们需要先创建一个javaee的web项目,一个web项目通常包含下面一些文件:
src
web
WEB-INF
lib
classes
index.jsp

src:存放java源代码
web:存放静态资源和动态资源
WEB-INF:该目录下的所有文件无法从浏览器中直接访问
lib:存放相关的jar包
classes:存放编译后的class文件
index.jsp:web项目中默认访问的首页
servlet的语法跟JavaSE是一样的并且能够使用JavaSE中的API,要想创建一个servlet并使用的话可以分为以下几个步骤:

1.创建一个javaee的web项目
编写一个Java类,实现javax.servlet.Servlet接口,并重写该接口中的抽象方法
在web.xml文件中配置该servlet(如果使用注解方式的话,无需配置web.xml)
将该web项目部署到tomcat中并启动

编写第一个servlet
创建一个web项目可以在创建项目时关联tomcat,这样eclipse会把相关的servlet-api.jar包拷贝到项目中,在项目创建一个Java类实现servlet接口并重写里面的方法。

package cn.itcase;import java.io.IOException;import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class FirstServlet implements Servlet {@Overridepublic void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {System.out.println("Hello Servlet");}@Overridepublic void destroy() {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic String getServletInfo() {return null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {}}
<!-- 创建一个servlet实例 --><servlet><!-- 给servlet取一个名字,该名字需与servlet-mapping中的servlet-name一致 --><servlet-name>firstServlet</servlet-name><!-- servlet的包名+类名 --><servlet-class>cn.itcase.FirstServlet</servlet-class></servlet><!-- 给servlet一个可以访问的URI地址 --><servlet-mapping><!-- servlet的名字,与 servlet中的servlet-name一致--><servlet-name>firstServlet</servlet-name><!-- URI地址:http://locahost:9999/FirstServlet/hello --><url-pattern>/hello</url-pattern></servlet-mapping>

之后将该web项目部署到tomcat中,启动成功后访问:http://locahost:8080/07-01-servlet/hello

可以看到eclipse控制台中打印出了Hello Servlet
通过上面示例可以看出,servlet的需要部署在tomcat中才能运行,有时tomcat也被称为是servlet的容器。

二、servlet的生命周期
1.servlet的生命周期
Servlet 生命周期指的是,Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服
务的执行,及最终 Servlet 对象被销毁的整个过程。
servlet生命周期图:

web访问流程图:


如上图所示,服务器端程序其实就是实现了servlet接口的程序,servlet的主要作用其实就是处理和响应客户端的请求。

编写第一个servlet

三、ServletConfig接口
ServletConfig接口简介

在 Servlet 接口的 init()方法中有一个参数 ServletConfig,这个参数类型是个接口,里面是一些 在 web.xml 中对当前 Servlet类的配置信息。Servlet 规范将Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。在tomcat调用 init()方法时,首先会将 web.xml 中当前 Servlet 类的配置信息封装为一个对象。这个对象的类型实现了 ServletConfig 接口, Web 容器会将这个对象传递给init()方法中的 ServletConfig 参数。

ServletConfig中的方法

getInitParameter(): 获取指定名称的初始化参数值。例如从下面的servlet中调用
getInitParameter(“userName”);方法会返回字符串"monkey1024"。
getInitParameterNames():获取当前 Servlet 所有的初始化参数名称。其返回值为枚举类型
Enumeration。
getServletName():获取当前 Servlet 的中指定的 Servlet名称。如下面中的 ServletName
为"configServlet"。
getServletContext():获取到当前 Servlet 的上下文对象
ServletContext,这是个非常重要的对象,将在下面详细介绍。

四、ServletContext接口简介

ServletContext接口简介
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象包含Web应用中所有 Servlet 在 Web 容器中的一些数据信息。ServletContext随着Web应用的启动而创建,随着 Web 应用的关闭而销毁。一个 Web 应用只有一个ServletContext 对象。
ServletContext中不仅包含了 web.xml 文件中的配置信息,还包含了当前应用中所有Servlet可以共享的数据。可以这么说, ServeltContext 可以代表整个应用,所以ServletContext有另外一个名称:application。

ServletContext中常用方法

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext()方法获得ServletContext对象。

String getInitParameter ():获取 web.xml 文 件 的 中 指 定 名 称 的上下文参数值 。
Enumeration getInitParameterNames():获取 web.xml
文件的中的所有的上下文参数名称。其返回值为枚举类型 Enumeration。
void setAttribute(String name, Object object):在 ServletContext
的公共数据空间中,也称为域属性空间,放入数据。这些数据对于
Web应用来说,是全局性的,与整个应用的生命周期相同。当然,放入其中的数据是有名称的,通过名称来访问该数据。
Object getAttribute(String name):从 ServletContext 的域属性空间中获取指定名称的数据。
void removeAttribute(String name):从 ServletContext 的域属性空间中删除指定名称的数据。
String getRealPath(String path):获取当前 Web 应用中指定文件或目录在本地文件系统中的路径。
String getContextPath():获取当前应用在 Web 容器中的名称。

五、总结

本章节主要介绍了java Servlet 的基本知识以及其接口和类的用法。通过本章学习,读者可以掌握Servlet接口以及其实现类的使用。Servlet技术在javaWeb开发中非常重要,读者应该熟练地掌握Severlet相关技术。

java web第三章 Day3 2020080605018相关推荐

  1. Java学习 第三章 数组(三)排序算法

    ** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...

  2. 《啊哈算法》的Java现实 | 第三章:枚举!很暴力

    <啊哈算法>的Java现实 | 第一章:排序. <啊哈算法>的Java现实 | 第二章:栈.队列.链表. <啊哈算法>的Java现实 | 第三章:枚举!很暴力. & ...

  3. 深入理解java虚拟机gc_jvm GC收集器与内存分配(深入理解java虚拟机第三章)

    jvm GC收集器与内存分配(深入理解java虚拟机第三章) 本篇是<深入理解java虚拟机第三章>的笔记记录. 一 为什么要关注GC和内存分配? 需要排查各种内存溢出.内存泄漏问题时,或 ...

  4. Java算法--第三章--排序(14)概述

    Java算法–第三章–排序(14)概述 排序算法的总结: 一.基础排序-----算法评估等级:O(n²) 1.冒泡 谁大谁上,每一轮都把最大的顶到天花板效率太低O(n2)–掌握swap 2.选择排序, ...

  5. 【无标题】Java面向对象第三章知识总结

    1.运算符 *,/,%,++x(--x)表示在使用x之前,先使x的值增(减)1,x++(x--)表示在使用x之后,使x的值增(减)1. 2.运算结果由计算过程中精度的高低决定,结果与精度最高的相同. ...

  6. Java学习 第三章 数组(一)一维数组

    第三章 数组 3-1 数组的概述 数组:多个相同类型数据按一定的顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 数组相关概念: 数组名.下标(索引.角标).元素.数组的长 ...

  7. JAVA学习 第三章作业

    1.程序填空题: 定义一个抽象类Person,其中有一个公共的抽象方法showInfo().然后定义此抽象类的一个子类Student,包括的成员变量有姓名.学号.班级和年龄,且此类中包括两个构造方法. ...

  8. java web 开发——第一章jsp简介

    目录 前言 1.1 JSP的概念? 1.2 安装和配置JSP运行环境 1.2.1 下载tomcat9.0 1.2.2 下载安装jdk并配置jdk环境 1.2.3 测试tomcat是否安装成功 1.3 ...

  9. VS Code 遇上 Java丨第三章:项目创建与管理

    读不在三更五鼓,功只怕一曝十寒. 创建项目 使用快捷键 Ctrl+Shift+E 进入资源管理器面板,选择 Java Projects 分类,点击分类工具栏中的「Create Java Project ...

最新文章

  1. SpringBoot线程池的创建、@Async配置步骤及注意事项
  2. React中如何优雅的捕捉事件错误
  3. java文件正确编写格式_java Srpingboot框架书写mapper代码的正确格式
  4. push_back和emplace_back的区别
  5. AJAX的安全性及AJAX安全隐患
  6. 【算法设计与分析】Dijskra算法代码:Java版
  7. jquery each函数 break和continue功能
  8. centos光盘修复引导_Centos6 系统修复grub
  9. plsql command window create function
  10. 无刷直流电机四象限matlab pudn,一种无刷直流电机四象限PWM调制方式的分析和设计...
  11. UI设计新手制作MBE风格图标的思路是什么
  12. Flutter中,解决按下返回键将应用挂起到后台,并不会退出的问题
  13. mysql平然_分享 | 36张不可思议的数学知识动图,让你对数学怦然心动!!
  14. 基于局域网网络编程实现开发板显示相册以及视频和音乐
  15. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ② ( 压缩 png、jpg 图片 | 使用 pngcrush 压缩工具压缩 png 图片 )
  16. layui自定义新增tab页方法
  17. acm新手小白必看系列之(5)——枚举进阶例题精讲
  18. mysql 去除微秒_mysql的微秒补丁 - sihanjishu的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  19. 洒扫庭除,恭候佳朋 ——知象光电欢迎广大来宾莅临TCT展会知象展位
  20. 亲,你的浏览器过时了,请立即更换Chrome浏览器。

热门文章

  1. 数据库作业16:第七章: 数据库设计
  2. Wish卖家福利:PayPal通过WorldFirst提现0费率!
  3. 抛出异常和捕获异常_多捕获和最终重新抛出的异常处理
  4. 绩效辅导面谈中的STAR法则和SPIN
  5. Chrome浏览器设置网站前自动加https
  6. 2021-2027全球与中国IEC入口滤波器市场现状及未来发展趋势
  7. SpringFramework核心技术一(IOC:ApplicationContext的附加功能)
  8. 谷歌地图商家数据采集
  9. matlab中的motion,matlab-ego-motion 基于 实现的自身运动估计仿真程序。通过对视频图 分析,快速 摄像机 的 263万源代码下载- www.pudn.com...
  10. CBOW(Continuous Bag-of-Words)模型原理