虽然租了服务器,但是远程连接服务器时你会发现直接写代码真是坑,一卡一卡的,总是慢半拍,好吧,还是在自己的MAC上写代码吧,把本地把代码写好再传到服务器。
现在就来说下我在自己的mac上配置tomcat。
1,给eclipse加上插件支持J2EE。
我以前装的是常规的eclipse,如果想写服务端代码,比如调用HttpServlet之类的必须加上J2EE插件:
http://blog.youkuaiyun.com/q1054261752/article/details/51289884
安装插件注意选用和web,j2ee相关的插件,不要都装了,比如PHP这样的插件就别搞了,加多了会影响eclipse想能,如果你真的不会搞插件,建议你去下载一个J2EE版的eclipse,链接如下:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplersr2
2,MAC上安装TOMCAT。
这个简单:http://www.cnblogs.com/xingxingLove/p/5304390.html
3,Eclipse Tomcat插件:
http://www.eclipsetotale.com/tomcatPlugin.html
插件装好后记得重启eclipse,不然不会出现小猫图标
4,Eclipse中配置tomcat。即使装了插件,你也必须手动配置tomcat
http://www.cnblogs.com/mosese/p/4558648.html
但是我自己碰到个小问题,我下载的是tomcat8.5,但是配置时只显示到7.0,强行配置会出错,这里有两种方案,一就是下载tomcat7.0,而是修改文件暴力安装,具体请看
https://jingyan.baidu.com/article/48a42057f8dfafa92525044d.html
注意,文章中是改成8.0,但是我的只能显示到7.0,所以ServerInfo.properties文件我改的时7.0
5,测试项目
http://www.cnblogs.com/mosese/p/4558776.html
文章采用dynamic web project创建,这种方式最智能化;但是我没有能运行处结果,为啥呢?见
http://blog.youkuaiyun.com/wqjsir/article/details/7169838/
现在你要是把在外面的浏览器中输入localhost:8080/web01_exec/date是有结果的,但是你直接项目--右键--run as server,却在eclipse里面显示404错误,为嘛?因为eclipse默认使用了内置浏览器,而内置浏览器没能访问外部网络,好烦人,得改过来
http://blog.youkuaiyun.com/sinat_33881413/article/details/56016026
注意这个博文修改默认浏览器的步骤:preferences--General--Web Browser--use external web browser--apply--ok
重新run as项目,eclipse自动调用外部浏览器,并显示出正确的结果!
补充1:
在eclipse中装了tomcat的插件,会在eclipse上面的工具栏中出现3个小猫图标,这些图标我们可以直接点击启动tomcat,这种启动方式和我们在tomcat bin目录中直接启动是一样的效果,但我们也知道我run as server也能启动tomcat,这两种启动有何不同?
如果你修改了项目中的代码,你必须run as server才能看到更新后的效果,此时,eclipse中的代码会同步到tomcat/webapps中去,浏览器弹出的正式更新代码后的效果。如果你只是点击小猫图标,那么你在浏览器手动输入url访问的代码还是你修改之前的。这一点,大家可以根据tomcat/webapps/你的项目 中的文件变化来看到,直接启动小猫,项目文件内容不会变,但是run as server,文件(程序)才会变成你修改后的。也有人说我修改代码后没有run as server,但是效果确实更新了,这是因为你之前已经启动了server,这种情况下刷新浏览器是可以看到更新后的效果的。如果之前没启动server,肯定不会出现新效果。
补充2:
刚才项目中有这个注册文件
<servlet>
<servlet-name>DateServlet</servlet-name>
<servlet-class>web.DateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DateServlet</servlet-name>
<url-pattern>/pp</url-pattern>
</servlet-mapping>
<servlet>标签是用来注册一个servlet类的,而 < servlet-mapping >用来给一个已经注册的servlet类给出一个外部访问它的url。我这里说明几点:1:这个url你可以随意写,并不需要和DateServlet.java的目录一直,比如我用/pp来表示
2:注册servlet类时<servlet-name>并不需要一定写成DateServlet,这个名字你也可以随意,我改成ppppp有能运行,那问题出来了,tomcat怎么识别我们要执行DateServlet类呢,其实它是通过<servlet-class>web.DateServlet</servlet-class>来标出,这个小标签给出了具体执行的java类时哪个,而且给出的是完整类名(已经带上包名了),所以这个类名别乱改,不然真报错了。