Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Tomcat常见问题与简单的Servlet开发

Tomcat常见问题与简单的Servlet开发

作者头像
端碗吹水
发布于 2020-09-23 03:16:03
发布于 2020-09-23 03:16:03
8250
举报

Tomcat常见问题

当我们在Eclipse上开发web工程时,工程部署到Tomcat上了,所以修改文件的源码时,Eclipse会自动将更改后的文件重新部署到Tomcat上,但是如果你做出修改的内容仍然在浏览器中看不到,那么可以使用以下几种常用的解决方法:

1. 右键点击部署的工程,选择清理模块文件夹:

右键点击Tomcat,选择Clean,清理Tomcat的工程目录:

  1. 右键点击Tomcat,选择Restart重新启动:
  1. 点击stop停止Tomcat服务器,并删除部署的工程,然后再重新部署工程运行:
  1. 检查以下几个细节:

ip地址是否有写错

端口是否有写错或者是否通行

工程名称有没有访问错误

请求页面的名称是否有写错

  1. 清理Tomcat的工作环境:

删除Tomcat中部署的所有工程,只运行目前的工程。

还是不行就删除整个Tomcat,重新下载一个

  1. 如果是在启动服务器时报错,要查看控制台打印的日志信息,找出错误来源,学会分析日志信息对于解决错误很有帮助:
  1. 查看Eclipse中的server目录下的文件是否正常,有没有缺失:

思维导图:

关于创建web工程时的一些问题:

在Eclipse中创建Dynamic Web Porject(动态web工程)时,会让我们选择以下几个配置:

1. 上图中的工程名称不用多解释,关于运行服务器则不一定要选择Tomcat,可以使用其他的web服务器:

我们选择Tomcat并不是说针对Tomcat这个服务器去开发,开发后的工程并不是只能应用于这个服务器,Tomcat只是作为一个运行我们开发工程的载体,在Tomcat上开发的工程完全可以在其他的支持Java的服务器中运行。

我们使用Tomcat作为运行服务器是为了导入Tomcat的jar包类库,每个支持Java的web服务器都实现了Java所定制的接口规范,我们开发web工程的时候需要借助这些接口来进行开发,就像使用JDBC连接数据库一样,需要导入JDBC的jar包,通过它根据接口规范所实现的操作类去开发连接数据库的模块,这也是Java面向接口编程普遍的应用之一。

  1. 动态web模块版本需要视服务器的版本而选择,因为不同版本的web服务器支持的动态web模块版本不一样,这里以Tomcat为例,Tomcat8.0以上的版本才可以支持3.1的web模块版本,那么如何得知当前使用的web服务器版本支持什么版本的web模块?这个可以在官方的文档上查看到,同样的以Tomcat为例:

选择一个版本点击进去:

在工程创建时的点击Configuration(配置)右边的按钮,可以在里面勾选一些Project Facets,并且能选择不同的版本:

Project Facets可以理解为:“项目的特性”。Project Facets的作用特性:

  • facet 定义了 java ee 项目的特性和要求
  • 为项目添加 EAR facet 会自动添加 web.xml (deployment descriptor file) ,并重新设置classpath
  • 项目创建时至少已经有一个 facet,开发人员可以按需添加其他 facet
  • 有的 facet 会依赖其他 facet
  • 有的 facet 可能和其他 facet 互斥
  • facet 可以设置版本

下面用实际例子来演示一下Project Facets的作用:

例如我现在有一个普通的Java工程:

右键点击此工程的属性,进入属性界面后点击Project Facets,可以看到这个工程勾选了哪些Project Facets:

可以看到只勾选了Java,这是被默认选中的配置,因为这是一个最简单的java项目,如果想把这个java项目变成一个web项目,勾选其中的Dynamic Web Module并点击Apply即可:

此时查看工程目录可以看到多了一个WebContent目录:

重新打开Project Facets面板框,会发现JavaScript选项框也被选中了:

从这个例子应该可以很轻易地明白Project Facets的作用。

Servlet开发

介绍如何开发servlet之前,先介绍一下什么是servlet:

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

所以Servlet就是一个接收用户请求,处理完请求后生成动态Web内容的一个Java程序。是一个简单的Java类,这个类中写的是处理用户请求的代码,因为web服务器都是以http协议来进行通信的,所以开发基于http协议的Servlet需要继承一个叫做HttpServlet的类,并且要实现它里面的一个方法,这个方法用来处理用户的请求。

示意图:

除了需要继承一个父类,我们还需要配置Servlet的web访问映射,需要给它起一个别名,在浏览器中只需要访问这个别名就可以访问到这个Servlet类。有两种配置方式:一种是通过web.xml文件进行配置,一种是通过注解来配置。首先介绍通过xml来配置,因为注解相对于xml来说要简单一些,至于为什么要有一个别名:

  1. 在创建web工程的时候勾选创建web.xml文件:

2. 创建一个Java类,继承于HttpServlet,并重写父类的doGet方法,并在方法中写上一句打印语句:

3. 打开web.xml文件,删除一些内容:

  1. 增加以下配置信息:

简单解释一下这段配置信息的意义:

5. 配置完之后,将工程部署到Tomcat中,并启动Tomcat服务器,然后在浏览器中访问以下地址:

http://localhost:8080/myweb/hello

打开后会发现控制台打印了一段消息:

这是因为这个Servlet被访问了,所以方法中的代码也就会执行了。

从浏览器访问Servlet的过程:

Tomcat服务器接收到浏览器的访问时,会先去webapps这个目录下找到该访问的目标Servlet所在的工程目录,然后在此工程目录下找到WEB-INF目录,询问此目录下的web.xml文件,会在此文件中先寻找到<url-pattern>标签所声明的内容,再找到与此标签相对应的<servlet-class>标签里声明的Servlet操作类。寻找到后就会去classes目录下找到这个Servlet操作类,接着就会实例化此操作类的对象,然后调用此类中的doGet方法,就会执行此方法里面的代码。

所以最后会在控制台打印一段消息,每次访问Servlet都是这样的一个流程,这只是最简单Servlet访问流程,还有更复杂的。

以上是通过web.xml去配置Servlet的web访问,下面介绍一下使用注解来配置,但是要注意的是注解的配置方式是Servlet3.0才有的特性:

1.创建web工程,这次不需要勾选创建web.xml文件了,然后同样的创建一个Java类,继承于HttpServlet,并重写父类的doGet方法,在方法中写上一句打印语句:

  1. 配置注解,在类上声明@WebServlet() 注解,并在注解的小括号里上此Servlet类的web访问名称:

可以看到通过注解的方式来配置,比web.xml不知道高到哪里去了,一个注解就搞定了,要简单很多,所以xml渐渐地比较少使用了,只不过一些老工程可能是使用xml文件配置的,所以了解一下xml的配置方式还是有必要的,免得到时候遇到了抓瞎。

3. 配置完之后,同样的将工程部署到Tomcat中,并启动Tomcat服务器,然后在浏览器中访问以下地址:

http://localhost:8080/myweb/hello

打开后也会发现控制台打印了一段消息:

你访问几次就会打印多少句:

通过数组,注解能一次性配置多个别名,而xml文件需要写好几个标签:

通过以上的几个别名都可以访问这个Servlet:

控制台:

甚至可以加上任意后缀:

访问它时依旧是个Servlet:

控制台:

每次修改Servlet的别名后记得重启Tomcat服务器,不然不会生效的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/11/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Tomcat入门
1、JavaWeb概念 Java web,是用java技术来解决相关web互联网领域的技术的总称。web包括:web服务器和web客户端两部分。 java在最早web客户端的应用有java applet程序,不过这种技术在很久之前就已经被淘汰了。java在服务器端的应用非常丰富, 比如Servlet,jsp和第三方框架等等。java技术对web领域的发展注入了强大的动力 简单的说,就是使用java语言实现浏览器可以访问的程序内容。称之为Java Web。 javaweb开发是基于请求和响应的:
互联网金融打杂
2018/04/03
1.9K0
Tomcat入门
Web阶段:第七章:Tomcat服务器
JavaWeb的概念 **什么是JavaWeb?** JavaWeb指的是使用java语言编写所有的能够让浏览器访问的程序的总称。我们叫javaWeb。 a)什么是请求 请求是指客户端给服务器发送数据
Java廖志伟
2022/09/28
6310
Web阶段:第七章:Tomcat服务器
Tomcat服务器
sun公司定义了这么多标准,其它公司的人都可以来去根据我这些标准来做JavaEE程序
木瓜煲鸡脚
2019/08/13
1.3K0
Tomcat服务器
Tomcat服务器
不论是我们一开始做的java桌面程序、控制台程序以及socket gui界面程序(这个我还没学),都是服从Javase规范的。接下来我们要学习的将是Javaweb程序,服从javaee规范。 目前的软件有两种,一是C/S(客户端—服务器)模式,向像我们常用的QQ这一类的软件,这类软件要求我们必须下载客户端,而且还随着服务器的迭代而升级。另外一种就是B/S(浏览器–服务器)模式,比如你现在浏览的CSDN我的博客,也就是大多数的网站都是这种模式的,所以我们只需要有一个浏览器就行了。而且有一个和C/S程序相反的优点,就是我们不必在服务器升级之后升级浏览器了。 Javaweb的程序就是B/S结构的。
roobtyan
2019/02/21
1.7K0
Web编程-Tomcat&Servlet
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/12/11
4680
Tomcat & Servlet的学习
web相关概念回顾: 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如: html,css,JavaScript 2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器 * 如:servlet/jsp,php,asp.
Rochester
2020/09/01
3610
2.Android网络编程-web介绍以及Tomcat安装使用
CS:Client/Server 客户端和服务器,这种软件往往需要安装。比如QQ、迅雷、播放器。
诺谦
2020/02/18
6960
2.Android网络编程-web介绍以及Tomcat安装使用
Ubuntu 18.04从零开始配置JDK+Tomcat+IDEA环境到使用IDEA开发Web应用和Servlet
搞了一下午才在Ubuntu 18.04下把JDK+Tomcat+IDEA环境配置好,故此将整个过程记录一下以防日后需要。
星哥玩云
2022/07/28
6390
Ubuntu 18.04从零开始配置JDK+Tomcat+IDEA环境到使用IDEA开发Web应用和Servlet
Java知识:(3)Tomcat
压缩版:window(rar,zip) linux(tar,tar.gz)学习时候使用
py3study
2020/01/08
5880
Java知识:(3)Tomcat
tomcat6.0下找不到jasper-runtime.jar
今天有点需求,需要用jasper-runtime.jar包。但是我在我的\apache-tomcat-6.0.16\lib目录下,怎么也找不到这个jar包。结果上网百度了一下。Tomcat6.0之前的版本以Tomcat5.5.20 压缩版为例,这个jasper-runtime.jar在Tomcat5.5.20\common\lib下就自带有的。但是在Tomcat6.0版本后lib包的位置调整了,现在只有lib在跟目录下。jasper-runtime.jar和jasper-compiler-jdt.jar、j
闵开慧
2018/03/30
2.1K0
Tomcat Servlet编程基础
之前一直使用的是Apache服务器,对于Tomcat的工作方式反而不那么习惯。给我一个Java web程序源码我都不晓得他应该怎么连接到Tomcat上。于是趁着无聊的时候看了个J2EE的Servlet教程,终于对怎么把java部署到Tomcat上、以及Tomcat的基本工作流程有了简要的认识。当然,这里仅仅指的是简单的Servlet程序的部署方法,不过这点方法从理论上讲已经具备了写一个简单web 应用的能力了。
mythsman
2022/11/14
2500
Tomcat笔记
1、JavaWeb的概念: JavaWeb是指,所有通过Java语言编写可以通过浏览器访问的程序的总称。 JavaWeb是基于请求和响应来开发的。 请求:是指客户端给服务器发送数据,叫请求Request 响应:是指服务器给客户端回传数据,叫响Response 请求和响应是成对出现的,有请求就有响应
技术交流
2022/11/18
2950
Tomcat笔记
JavaWeb day5 Tomcat配置及用idea创建Maven-Tomcat项目
Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
小小程序员
2023/02/24
8070
JavaWeb day5 Tomcat配置及用idea创建Maven-Tomcat项目
JavaWeb day5 Tomcat配置及idea创建Maven-Tomcat项目
Web服务器是一个应用程序(==软件==),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
小小程序员
2023/02/17
1.1K0
JavaWeb day5 Tomcat配置及idea创建Maven-Tomcat项目
Tomcat配置虚拟目录并发布web应用
文章目录 1. 什么是 Web应用? 2. 配置Web应用虚拟目录 1. 在`server.xml` 文件中配置虚拟目录 2. 在自定义xml文件中配置虚拟目录 3. 配置Web应用默认页面 1. 什么是 Web应用? 在Web服务器上运行的 Web资源都是以 Web应用形式呈现的,所谓 Web应用就是多个Web资源的集合,Web应用通常也称为Web应用程序或 Web工程。一个 Web应用由多个Web资源或其他文件组成,其中包括 html文件,css文件、js文件,动态 Web页面、java程序、支持ja
兮动人
2021/06/11
1.9K0
Tomcat配置虚拟目录并发布web应用
Servlet系列(一) Servlet理论+实践入门
  在web服务器软件中,可以部署web项目,让用户通过浏览器访问这些项目,故也称为web容器。   web服务器可以帮我们处理繁琐的应用层协议,将报文中有用的信息提取并封装到对象中,方便程序员使用。
地鼠窝里有个Gopher
2022/10/30
4170
javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response
- Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件" - web资源的分类: - 静态的web资源: " 内容是一成不变的" - 动态的web资源: " 内容有可能在不同的时间或者不同的人访问的时候会发生改变的" - web技术分类 - 静态的web技术
海仔
2019/08/26
1K0
MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
我们选择8.0: http://tomcat.apache.org/download-80.cgi
Java架构师必看
2021/03/22
8320
Tomcat就是这么简单
什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。 ---- 为什么我们需要用到Tomcat 如果你学过h
Java3y
2018/03/15
1.5K0
Tomcat就是这么简单
java学习与应用(4.4)--Tomcat、servlet等
常用的web服务器软件:webLogic(oracle),webSphere(IBM),JBOSS(JBOSS公司)(以上三种支持所有JavaEE规范,企业版共13项规范),Tomcat(Apache基金,支持少量JavaEE规范) Tomcat:下载,解压使用。其中webapps存放网页,work存放运行数据,bin存放执行文件(shutdown.bat可关闭)。没有配置JAVA_HOME可能不能启动startup.bat。logs中存放日志信息记录一些错误等。netstat -ano查看端口使用的PID。conf配置目录的server.xml定义了tomcat的端口使用。 将代码打包为war包,放置到webapps下,会自动解压缩,和自动删除。server.xml的host标签下,定义Context自闭和标签中,定义docBase项目路径和path虚拟目录的属性便于访问。 常用的热部署并防止修改错误server.xml内容:方式为:conf下Catania下localhost下创建任意名称的xml文件,写入Context标签和属性,替换server.xml中的路径部署。 ROOT为项目根目录,WEB_INF为动态项目目录(web.xml为核心配置文件,classes目录存放字节码,lib存放jar包),其他为静态目录文件。 run->configuration ->Tomcat Server ->local->Application server中将tomcat集成到idea中。Java Enerprise -> Web Application,create server.xml勾选。等等配置。 idea直接修改可以使用热部署,不用重启服务器,进行代码调试,文件创建。idea也可以修改虚拟路径,方便使用。
嘘、小点声
2020/02/23
4390
相关推荐
Tomcat入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档