how2j.cn

步骤 1 : 先运行,看到效果,再学习   
步骤 2 : 模仿和排错   
步骤 3 : 说明   
步骤 4 : 新建Dynamic Web Project   
步骤 5 : Servlet类   
步骤 6 : 解决HttpServlet找不到问题   
步骤 7 : 刷新项目   
步骤 8 : web.xml   
步骤 9 : 通过Eclipse启动Tomcat-Run On Server   
步骤 10 : 通过Eclipse启动Tomcat-服务器选择Tomcat v7.0 Server   
步骤 11 : 通过Eclipse启动Tomcat-指定Tomcat服务器地址   
步骤 12 : 通过Eclipse启动Tomcat-部署   
步骤 13 : 测试   
步骤 14 : 关闭Eclipse中的Tomcat   
步骤 15 : Eclipse中启动Tomcat问题-端口   
步骤 16 : 需要注意的几点   
步骤 17 : 右上角可运行项目   

步骤 1 :

先运行,看到效果,再学习

edit
老规矩,先下载右上角的可运行项目 j2ee.rar,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。

推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
本知识点采用动态Web项目-Dynamic Web Project的方式把 Java project+独立Tomcat的Hello Servlet 重新做一遍。
步骤 4 :

新建Dynamic Web Project

edit
新建Dynamic Web Project
File->New->Other->Web->Dynamic Web Project
新建Dynamic Web Project
创建 HelloServlet
注意:eclipse创建的时候会自带一个包名j2ee,不要使用这个包名,让包名置空
Servlet类
import java.io.IOException; import java.util.Date; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response){ try { response.getWriter().println("<h1>Hello Servlet!</h1>"); response.getWriter().println(new Date().toLocaleString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
步骤 6 :

解决HttpServlet找不到问题

edit
默认的Dynamic Web Project并不会导入servlet-api.jar,所以Servlet会出现编译错误。
在右上角下载servlet-api.jar,并复制到e:/project/j2ee/WebContent/WEB-INF/lib 目录下
解决HttpServlet找不到问题
复制好之后,右键点击项目,刷新即可。 这个动作,会导致当前项目的build path->Libraries里的 Web App Libraries 自动加上这个servlet-api.jar包,这样HelloServlet就编译通过了。
刷新项目
在WEB-INF目录中创建 web.xml
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
 
</web-app>
步骤 9 :

通过Eclipse启动Tomcat-Run On Server

edit
接下来就是在eclipse中配置Tomcat并启动,这个需要好几个步骤完成。
首先右键项目 -> Run As -> Run on Server
通过Eclipse启动Tomcat-Run On Server
步骤 10 :

通过Eclipse启动Tomcat-服务器选择Tomcat v7.0 Server

edit
这里选中Tomcat v7.0 Server, 如果你使用的是更高版本的eclipse,这里还可以看到Tomcat v9.0 Server.
本知识点使用Tomcat 为例进行讲解,其他版本的Tomcat使用类似的操作。
通过Eclipse启动Tomcat-服务器选择Tomcat v7.0 Server
步骤 11 :

通过Eclipse启动Tomcat-指定Tomcat服务器地址

edit
然后指定Tomcat目录所在位置,这里使用的位置是:
D:\tomcat7-8080-eclipse,这个位置的Tomcat 在右上角可以下载。
表示版本是7的tomcat,端口号是8080.

注意: 右上角的tomcat7-8080-eclipse.rar是可以确保能够在eclipse中配置的,有时候tomcat被人为自定义修改之后,就不再能够在Eclipse中使用,请使用右上角确保可以运行的tomcat7,绕开不必要的麻烦。

注意: 不要使用纯净版 Tomcat,因为我对其进行了修改,有可能会导致在eclipse中启动失败。
通过Eclipse启动Tomcat-指定Tomcat服务器地址
步骤 12 :

通过Eclipse启动Tomcat-部署

edit
然后就是下一步,把当前项目作为 "j2ee" 部署在tomcat中。
通过Eclipse启动Tomcat-部署
部署成功之后,访问地址:

http://127.0.0.1:8080/j2ee/hello


需要注意的是,因为在上一步部署的时候,使用的是j2ee这个配置,所以这里访问的时候有路径名称j2ee,与 前面的独立Tomcat部署方式不一样,那个没有j2ee这个路径

http://127.0.0.1/hello
测试
步骤 14 :

关闭Eclipse中的Tomcat

edit
以Eclipse的方式启动Tomcat,其实就是一个普通的Java 进程,只需要在Console 面板关闭即可
关闭Eclipse中的Tomcat
步骤 15 :

Eclipse中启动Tomcat问题-端口

edit
启动的时候,如果出现这个错误窗口,就表示端口8080和8089被占用了。 请使用端口排查教程找出端口被哪个程序占用了:
端口被占用
Eclipse中启动Tomcat问题-端口
步骤 16 :

需要注意的几点

edit
1. 类文件会被输出到build里,而不是WEB-INF/classes目录下
2. 当有类或者配置文件变化时,会自动重启,无需手动重启Tomcat. 但是不稳定,当很许多类改动,新加了jar包,新增加了配置文件等等,都有可能导致自动重启失效,所以最好还是手动重启,确保重启成功。
3. WebContent会被整个复制到 E:\project\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\j2ee 这个位置下面去,Eclipse中启动的tomcat其实是访问的这个位置。所以当WebContent里的内容比较多的时候,就会花较长时间复制。
4. 因为第3条的原因,第1条在build里生成的类和配置文件,也会被复制到第3条所说的位置
步骤 17 :

右上角可运行项目

edit
如果自己实在搞不出来,可以试试右上角的可运行项目j2ee.rar


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2019-01-31 搞了半个下午,总算弄出来了
老实人
关于 J2EE-Servlet-创建 的提问
嘻嘻







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-01-24 好吧 MAC os上的eclipse-ee 成功运行动态web中一些小问题和跳过的坑
阿兔
关于 J2EE-Servlet-创建 的提问



折腾了一整天,又是重装tomcat又是重装ee的。。。最后搞着搞着最后重启解决了。问题并没有那么复杂。。。想哭。 基本思路还是按站长的来,mac下手动部署j2ee前面有我的回答讲步骤。。。运行动态web时跳过的坑如下: 1.8080和8009端口占用 查找和杀死进程 一般是还开着终端的tomcat ,把tomcat退出去就行。还不行就在终端运行lsof i-:8080 会出现 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME eclipse 388 yuqian 80u IPv6 0x2b406f70b410ab3b 0t0 TCP localhost:49443->localhost:http-alt (CLOSE_WAIT) 杀死端口就好啦 用kill PID 注意不要kill 8080!!! 要kill 388!!! kill错了心很累 同理8009啦 完了之后console会输出一长串红色日志,就对了 2.一些莫名其妙的超时和404问题 。。。忠告就是不要在你的浏览器里用http://localhost:8080/j2eemiao/hello,根本连不上的,因为你是在Eclipse里面启动的tomcat 啊!之前都是在终端里开的tomcat然后浏览器里访问。。。最后一怒之下把电脑重启了,然后重新运行我的项目j2eemiao,然后eclipse里自己弹出浏览器窗口就成功了。 运行成功的截图差不多就是这样啦。 虽然自己能摸索出来在mac上怎么部署项目怎么做动态有点开心,但是思考了一下花费的精力。。。宛如一个智障。。。至于还碰到过一些没有next的小问题啦。。。删除一下tomcatserver就能搞定实在不行重装呗。。。

							

							


1 个答案

阿兔 答案时间:2019-01-25
补充一下,在eclipse里不删除root目录也能访问http://localhost:8080/hello 而不是带项目名j2ee 的方法 首先进入Web Project Settings,在右侧的输入框Context root 中把路径从/j2ee设成/。再进入server窗口,找不到server的可以通过Window菜单》Show View》Other点选server就出来了。然后选选择Modules页签,把j2ee项目路径从/j2ee改成/就好啦。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-01-24 超时报错是怎么回事呀
2018-12-05 又是404,我发现我的classes里没东西,怎么解决。。按步骤走的
2018-11-14 报错404 找不到原因
2018-11-14 运行报错404 找不到原因
2018-11-12 步骤十一没有出现选择服务器路径
2018-11-12 为啥步骤十一没有出现选择服务器路径这步?
2018-10-11 请问动态项目和前几节中创建的项目区别在哪,何以称之为“动态”?
2018-10-11 想请问下, 动态项目和前几节的区别在哪里, 为何称之为动态?
2018-09-10 myeclipse 找不到Dynamic Web Project,用Web Project代替可以么?
2018-08-11 Date().toLocaleString()过时,有能替代的吗
2018-06-26 运行下载的项目没毛病,但是自己一建项目就出错,完全按照步骤来的,报了500
2018-06-19 server.xml的路径问题
2018-05-19 关于运行项目失败问题
2018-04-30 站长大人,请问如果是用startup来启动的话,servlet.xml中context要怎么改啊?
2018-04-27 为什么步骤10完成的我的猫就启动了?
2018-04-23 serve as server 无法选择tomcat版本
2018-04-18 原文件报404
2018-04-01 我的也是404 求大佬解释一下啊 搞了一天 有点搞不动了
2018-04-01 访问不了 http:127.0.0.1:8080这个网页 是不是在elipse启动的tomcat不能访问 还是说我的错了
2018-03-30 run as 报错
2018-03-27 有错误
2018-03-06 404表示找不到资源
2018-01-04 为什么要使用Dynamic Web Project创建项目,能不能用普通的Web Project?
2017-12-08 选择run as server时出现the selection can't run on any server
2017-12-06 动态创建web项目和上一节创建web有什么不同?为什么要这么做呢?
2017-10-31 步骤8.run on server出错
2017-10-31 为什么第四步创建Servlet时不写包名呢?
2017-10-10 导包后,编译依然不通过
2017-10-09 idea如何创建这个动态项目
2017-10-05 哪个J2EE压缩包缺东西吧,运行不起来啊
2017-09-19 界面异常
2017-09-18 出现404界面.
2017-09-18 为什么我的HelloServlet类里面的代码和你所给的不一样呢,所以环境配置成功了之后,显示也不是Hello Servlet!
2017-09-08 run on server 中没有Tomcat
2017-09-08 通过Eclipse启动Tomcat-Run On Server 出现错误
2017-09-08 步骤问题
2017-08-16 web.xml的疑惑
2017-08-14 项目导入eclipse之后出现了乱码问题
2017-08-09 运行动态web项目
2017-07-30 大佬你的Eclipse好像只能用jdk1.7我的是1.8用不了...




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 J2EE-Servlet-创建 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 984886441
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图