在eclipse创建web项目的问题总结

eclipse快捷键:

1、alt+shift+r 可以查找在同一个类中相同的变量
2、ctrl+shift+r可以搜索类名称

一、关于eclipse创建web项目servlet不能初始化的问题

同事用tomcat来管理自己写的一些应用程序,然后通过sevlet来初始化。由于对web开发好几个没写了,当初也没学好,所以当时我看到如下配置,只申明servlet,没有mapping,所以抱着怀疑的态度自己也试试。自己建了一个web工程,当时选Dynamic web module version的时候是3.0,写好servlet然后在web.xml里配置了如下信息,接着启动tomcat,可是并没有发现执行初始化我的servlet的init方法,在这里折腾了半天。后面才发现Dynamic web module version =3.0在启动tomcat时不初始化web.xml。

<servlet>
        <servlet-name>initService</servlet-name>
        <servlet-class>com.test.MyServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

解决办法:

Dynamic web module version =3.0在web.xml里配置  <load-on-startup>1</load-on-startup>不启作用,只能在servlet的Java代码里设置相关的参数。

1、创建web工程时选Dynamic web module version =2.5

2、工程的classpath要指对目录

3、对当前工程右键-->properties-->project Facets看到如下信息


二、关于servlet中的init方法中调用死循环的问题

我的项目中有一个接口是给外部调用的,该接口是一个servlet类,其配置与普通的servlet配置是一样的,这就没什么说的了,另一个接口是通过httpclient的方式定时的调外部接口,我当时是这样配置的:

1.在webl.xml里配置servlet,启动优先级为1,覆写了servlet的init方法,在init方法中调用service的死循环方法,当web容器启动时初始化该servlet的init方法。

2.该servlet调用一个service中的一个方法,该方法是一个死循环,在死循环里调用一个sleep()方法来实现定时调用外部接口,可是由于servlet调用的service的方法是个死循环,所以所以导致servlet的init方法一直不能结束,导致web容器也不能正常启动完成。此时在外部访问另一个servlet服务,一直访问不到。

3.解决办法:在需要调度的servlet中使用线程池,通过线程池配置定时执行,问题可以得到解决。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值