关于web程序的发布

关于web程序的发布

必须依赖于IDE集成Tomcat吗,能不能手动发布?

我将Tomcat的lib直接拿到Java工程中使用了,但是写好后,发现没有web.xml。

请问web.xml是IDE按照Tomcat识别规则自动生成的文件吗。

如果手动发布web程序,是不是要自己按照建立一个web.xml和相应的目录结构,最后打包成JAR包并放到webapps目录下?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
好帮手慕小脸 2020-09-04 14:20:19

同学你好,

1、这里建议同学使用eclipse自动创建目录结构是一种推测,是为了确定同学手动创建的目录并不会对此产生影响

2、问一下同学代码在eclipse中启动时,是可以正确访问的吗?如果是,建议重新创建个项目再试试。

祝学习愉快~

  • 提问者 易萧 #1
    在Eclipse中创建并启动的项目是正确访问的,并且手动启动Tomcat然后访问也是能够正确访问的,配置的是Tomcat9。 然后我把webapps下面的项目目录移动到Tomcat10的webapps下面,停止Tomcat9,启动Tomcat10,再以同样的url访问,就是404。 我用Eclipse创建和手动创建项目都重复试验很多次了,但凡不是由Eclipse生成出来的,即便原样移植,也是404。
    2020-09-04 14:47:45
  • 提问者 易萧 #2
    补充一句,Tomcat10的其它官方提供的项目是可以正常访问的,比如那个example项目,这说明Tomcat10本身没有问题。
    2020-09-04 14:49:40
  • 好帮手慕小脸 回复 提问者 易萧 #3
    同学你好,同学所描述的情况老师这边测试运行是可以的,建议同学重新下载tomcat10试试。 祝学习愉快~
    2020-09-04 16:55:50
好帮手慕小脸 2020-09-03 15:07:22

同学你好,建议同学使用eclipse自动创建目录结构,注:不要手动创建

然后在按照之前描述的步骤去查看并运行访问

祝学习愉快~

  • 提问者 易萧 #1
    不是吧,生产工作中当然不会憨憨地去手动创建,但至少应该了解到底和Eclipse去创建的有什么区别吧,为什么可以正常运行的项目目录原样拷贝的到另一个Tomcat上,却又是404
    2020-09-04 10:47:41
易萧 提问者 2020-09-03 11:18:27

以下是我手动创建的目录结构,除了class是编译的之外,其它文件也是手动编写。

其中,JavaWebDemo是我的项目目录。http://img1.sycdn.imooc.com//climg/5f505fd509c45a3607960569.jpg

http://img1.sycdn.imooc.com//climg/5f50600e097ef06205990327.jpg

http://img1.sycdn.imooc.com//climg/5f506024097b5dd505990327.jpg

http://img1.sycdn.imooc.com//climg/5f506038094a13c805990327.jpg

以下是xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
 	<display-name>JavaWebDemo</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>first</servlet-name>
		<servlet-class>com.yixiao.servlet.FirstServlet<servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>first</servlet-name>
		<url-pattern>/theUrlName</url-pattern>
	</servlet-mapping>
</web-app>


好帮手慕小脸 2020-09-02 10:14:41

同学你好,

1、出现404是访问路径找不到,同学是将页面放在WEB-INF目录下了吗?如果是,WEB-INF是安全目录下,是不可以直接通过浏览器地址去访问的,建议同学将jsp直接放置在WebContext下。

2、打成war包放在webapps目录下。

注:打成war包的好处安全且不会缺少目录,并且只管理好一个发布文件就可以

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 易萧 #1
    页面的位置没有变,在WEB-INF外面的,也就是项目的根目录。 在没有WEB-INF时能够进入index.html,有了WEB-INF后反而404了。 WEB-INF里面装的是web.xml和classes文件夹,classes文件夹里面是课程中写的Java文件编译的class文件。 使用Eclipse发布到Tomcat9的项目,它生成的项目目录结构总是没问题的吧,但是我原封不动复制到Tomcat10里面并且切换Tomcat10后,同样的url,也是404。
    2020-09-03 11:02:26
  • 提问者 易萧 #2
    老师可以看下我发的项目目录
    2020-09-03 11:20:15
好帮手慕小脸 2020-09-01 16:01:00

同学你好,

1、是可以手动发布的 

2、创建工程时,是否勾选了如下这里呢?

http://img1.sycdn.imooc.com//climg/5f50873c0969e59104180261.jpg

如果没有就不会创建web.xml,这里同学可以选择重新创建时,勾选上述图中红框位置处。

3、不是自动生成的哟

4、是打包成war包后,在放入webapps目录下

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 易萧 #1
    为什么要使用war包呢。 我查看了一下webapps文件夹内的其它各个web应用,并且查询了web项目部署的目录结构,是吻合的。 大概是这样的: WebProject{ Web资源(HTML,JSP,XML,CSS,JS,图片等等) WEB-INF{ classes{ Java包和.class文件 } lib{ Jar包 } web.xml } } 但是我按照同样的目录结构手动创建一个web项目时,一旦有WEB-INF文件夹,就会出现404找不到资源,而如果只有一个index.html是可以默认访问的,这是为什么? 我在电脑上装了版本9和版本10的Tomcat,其中版本9是因为装Eclipse时,发现最高只有9.0版本,于是才安装的。 按照视频中的流程成功运行后,我又把Tomcat 9中的FirstServlet项目直接拷贝到Tomcat 10中,结果又出现了404。 意思是404并非是目录结构的问题,那么,到底是什么在影响和控制它发布? 网上说直接把web项目送到webapps下就可以了。 难道这符合Web部署项目目录结构的整个布鲁不是web项目吗? 或者说,还有什么东西是需要配置的吗?
    2020-09-01 20:03:24
  • 提问者 易萧 #2
    肯定是有办法用最原始的方式去部署一个web项目的吧?
    2020-09-01 20:10:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师