tomcat,servlet知识点

本文介绍了如何下载、安装和配置Tomcat服务器,重点讲解了Web应用、虚拟主机的概念,以及Servlet的基本原理和开发流程。包括了如何创建Servlet,配置web.xml,以及在Eclipse中操作的步骤。
摘要由CSDN通过智能技术生成

========================================

tomcat服务器
========================================
一、服务器相关概念
1、什么是服务器
服务器:分为软件服务器和硬件服务器
硬件服务器:运行在互联网上的、具有静态IP的一台计算机(通常配置比较高)
软件服务器:运行在互联网上的计算机程序(软件),将服务器软件安装在硬件服务器上,才可以对外提供服务。
服务器软件分为很多种:数据库服务器(MySQL,Oracle,SQL Server等),Web服务器(tomcat,jetty,jboss等),邮件服务器,FTP服务器。。。

2、什么Web服务器
Web服务器: 运行在互联网上的计算机程序,专门用于接收客户端(主要指浏览器)的请求,根据请求进行处理,最后给出回应!
比如:打开浏览器,输入"http://www.baidu.com"回车,其实访问的就是百度的服务器,此时会向百度服务器发送一个请求,请求百度的首页,百度服务器会接收并处理这个请求,根据请求给出回应(将百度首页响应给客户端浏览器)

tomcat就是一个Web服务器,特点是:小巧灵活,简单易用,学习成本非常低!

二、Tomcat服务器下载、安装、启动、配置
1、下载tomcat服务器
下载地址: http://tomcat.apache.org
tomcat分为很多版本,有windows版本(解压版和安装版)、linux版本
推荐使用解压版(需要用的时候解压一份,不需要用了直接删除解压的目录即可!)

2、tomcat的安装、启动、配置
2.1.安装tomcat
安装:解压之后就可以使用(安装的路径中最好不要包含中文和空格)

在启动tomcat之前,需要配置(检查)一个JAVA_HOME环境变量,该变量需要指向JDK的安装根目录
变量名:JAVA_HOME
变量值:D:\software\Java\jdk1.8.0_161 (此处换成你安装的JDK的根目录)
由于tomcat服务器是由Java语言开发的,所以运行tomcat需要JDK的支持
JAVA_HOME这个变量就是在告诉tomcat服务器,需要使用哪一个位置上的JDK.

2.1.启动tomcat
启动tomcat: 通过[tomcat安装目录]/bin/startup.bat文件可以启动tomcat服务器;
关闭tomcat: 通过[tomcat安装目录]/bin/shutdown.bat文件可以关闭tomcat服务器;
或者直接点击右上角的叉号

启动tomcat之后,可以打开浏览器,访问: 
	http://localhost:8080
	http://127.0.0.1:8080
	
如果可以访问到tomcat服务器的主页,就说明tomcat安装并且启动成功了!

3.修改tomcat服务器默认端口
如果不修改端口,每次在访问tomcat服务器时,都需要在[主机名/ip地址]的后面加上:8080
如果想在访问时,在主机名或ip地址后面省略端口,可以将端口修改为80(这个端口特殊,可以省略不写!)

修改端口的方法是:
	找到[tomcat安装目录]/conf/server.xml并用文本编辑工具打开这个文件
	找到文件的69行,将Connector标签上的port属性值改为80,保存文件,并重启服务器即可生效!
重启服务器后,就可以通过如下路径访问tomcat服务器:
	http://localhost:80
	http://localhost
	http://127.0.0.1:80
	http://127.0.0.1

三、tomcat服务器的目录结构(了解)
bin: 存放批处理文件的目录(startup.bat、shutdown.bat文件)
conf: 存放tomcat配置文件的目录(server.xml是tomcat核心配置文件)
lib: 存放tomcat服务器在运行时所依赖的jar包的目录
logs: 存在tomcat服务器在运行时产生的日志文件的目录
temp: 存放tomcat服务器在运行时产生的临时文件的目录

work: 存放tomcat服务器在运行期间产生的一些工作文件
	(JSP在第一次被访问时翻译后的Servlet文件、
	session对象序列化后产生的文件等都会放在这个目录下)
webapps: 是Web应用的存放目录,放在这个目录中的Web应用程序,
	可以通过localhost虚拟主机进行访问
	webapps目录是localhost主机默认存放Web应用的目录
	把Web应用放在webapps目录下,就相当于发布到了localhost主机中

四、Web应用和虚拟主机
1、Web应用:
Web应用其实就是一个目录,其中可以包含很多资源文件(html/css/js/图片/jsp/servlet…等)

虚拟主机中不能直接管理Web资源文件(html/css/js/图片/jsp..等)
需要将Web资源文件组织成一个Web应用(目录),将Web应用发布到虚拟主机中运行才可以被虚拟主机所管理

2、虚拟主机:
就是在tomcat服务器中配置的一个站点,在访问时就好像在访问一台真实独立的主机一样
我们将这个站点称之为是,运行在tomcat服务器中的一台虚拟主机
tomcat服务器中可以配置多个站点,每一个站点都是一台虚拟主机。
下面是tomcat默认提供的localhost主机的配置:
<Host name=“localhost” appBase=“webapps”…>
<Host name=“www.baidu123.com” appBase=“baidu”…>
========================================================
1)在服务器硬件上安装了一个tomcat服务器软件
2)在tomcat服务器软件内部可以配置多个站点(虚拟主机),其中tomcat默认自带了一个localhost虚拟主机。
3)localhost虚拟主机默认管理Web应用的目录–webapps,发布到webapps目录下的web应用,也就都发布到了localhost主机中
4)往webapps中发布了一个 jt web应用,其中包含一些Web资源文件
5)web资源文件可以是(html/css/js/图片/servlet/jsp等)

3、Web应用的目录结构
news(目录,Web应用)
|-- 也可以将Web资源文件放在Web应用的根目录下
|-- 其它目录(放在其它目录中的资源文件可以被浏览器直接访问到)
|-- WEB-INF目录(隐私目录,放在这里面的资源文件,不能被浏览器直接访问)
|-- classes目录(Java程序编译后的class文件会放在这个目录下)
|-- lib目录(Web应用所依赖的jar包会放在这个目录下)
|-- web.xml文件(当前Web应用的核心配置文件)

4、如何发布一个Web应用到虚拟主机中
直接将Web应用的目录复制到虚拟主机所管理的目录下即可
例如:将news复制到webapps目录下,由于webapps是localhost主机发布web应用的目录,
所以相当于将news发布到了localhost主机中,可以通过localhost主机进行访问!

========================================

Servlet
========================================
一、什么是Servlet
Servlet 是由SUN公司提供的一门Web资源开发技术(规范,接口)
Servlet是本质上是一个Java程序,但和我们之前接触的Java程序不同的是,
Servlet无法独立运行(Servlet中没有main函数)
需要将Servlet程序放在服务器中,由服务器调用才可以执行!

运行在服务器中的Servlet程序作用是: 对服务器接收的请求进行处理(处理请求)

Servlet3.1的jar包

javax.servlet
javax.servlet-api
3.1.0
provided

Servlet2.5的jar包

javax.servlet
servlet-api
2.5
provided

二、开发Servlet程序
1、开发Servlet程序的步骤
1)写一个类,需要实现一个Servlet接口或者继承Servlet接口的子类
Servlet
|-- GenericServlet 实现了Servlet接口,并实现了其中的方法
|-- HttpServlet 继承了GenericServlet,也实现了其中的方法
在开发时,我们只需要继承HttpServlet,并继承其中的方法即可!

2)在web.xml文件中配置Servlet对外访问的路径,再将Web应用发布到服务器即可!
	如果是Servlet3.0及以上版本, 可以使用注解方式配置Servlet访问路径

2、如何通过Eclipse创建一个Servlet程序

1) Ctrl+N, 会弹出创建窗口, 在输入框中输入 "servlet" 进行搜索, 选中servlet, 点击 "Next"
	接着进入下一界面(其实这里和我们之前创建类几乎一样了, 区别就是这里默认会继承 HttpServlet )
2) 填写包名和类名点击完成即可

3) 创建好的类中有很多不需要的注释和构造方法实现, 删除即可!
	创建的Servlet类的内部保留 doGet 和 doPost 方法即可!	

3、运行Servlet程序
第一种运行方式:
直接在要运行的文件(html/jsp/servlet等)上–>右键–>Run as–>Run On Server,
eclipse会帮我们做如下几件事儿:
1)将Servlet所在的Web项目(CGB-Servlet-01)发布到服务器中
2)再启动tomcat服务器
3)最后打开浏览器,在地址栏输入路径去访问这个Servlet
Eclipse默认用内置浏览器去访问Servlet,但是这个内置浏览器有bug,最好是使用本地的浏览器去测试!

第二种运行方式: 可以自己手动将项目发布到服务器、启动服务器、打开浏览器输入地址进行访问!

4、Servlet在web.xml文件中的配置
全限定类名(全类名): 包名.类名 或者 包名.接口名
------------------------------------------

HelloWorld
cn.tedu.HelloWorld


HelloWorld
/HelloWorld

------------------------------------------
1)每创建一个Servlet,eclipse会帮我们生成至少8行配置信息
这8行配置信息由一个Servlet标签和一个servlet-mapping标签组成
这两个标签中的标签中的内容一致,决定了它俩是一组配置
2)标签中配置的当前Servlet类的全类名(包名.类名)
将来服务器根据访问路径找到这个全类名,再利用反射+全类名可以获取当前Servlet类的实例
3)标签中配置了外界该通过什么路径来访问当前Servlet。
也就是说,这里配置什么路径,外界就得通过什么路径来访问这个Servlet!

注意事项1: 如果不知道什么原因,tomcat服务器启动失败了,可以将Eclipse创建的Server删除,
	再重新创建一份(删除Server同时,也将左侧的Servers项目从工作空间中删除!)

注意事项2: 在将tomcat和Eclipse整合之后,tomcat默认开启了热部署功能:
	在修改了代码后,不用重新发布,也不需要重启服务器,就可以运行最新的效果!
	(如果是创建了新的Servlet类,或者修改了web.xml文件,则需要重启服务器,才会生效!)

5、创建Servlet3.0或以上版本的项目
在Servlet3.0的项目中, 可以通过注解方式配置Servlet相关信息
------------------------------------------
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet{}
------------------------------------------
在@WebServlet这个注解内部所配置的内容就是(xml方式)url-pattern中配置的访问路径
服务器通过扫描注解定位到当前这个Servlet,获取该类的全路径,
通过全路径从硬盘上加载这个类到内存中,获取该类的字节码对象,再利用反射+字节码对象创建该类的实例,然后通过HelloWorld类的对象实例再调用其中的方法!

代码示例:
------------------------------------------
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;
	//Http: GET和POST
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置服务器发送数据以及浏览器接收数据的编码
		response.setContentType( "text/html;charset=utf-8" );
		//向浏览器响应数据
		response.getWriter().write( "世界, 你好!" );
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值