如何用myeclipse创建servlet并进行部署

转自:http://zhgw01.blog.163.com/blog/static/1041481220073354118999/

 

 

如果不用myeclipse,则写一个servlet,编译,把class放到WEB-INF的classes下面,再修改web.xml,很麻烦


别人给的步骤:

 1.创建一个“web project”,假设名字为A。

  2.右键单击“src”,————>new ————>servlet,假设名字是B。

  3.myeclipse会自动给你生成一些代码,这些代码就可以编译成一个完整的servlet了。值得一提的是myeclipse会同时提供给你一个 web.xml。这个样子就不用用户自己配置了。但是,最好要对这个web.xml的语句比较熟悉。不然自己不会配置。

  4.deploy项目

  点击 deploy 按钮(用红线画了的按钮就是 deploy 按钮), 在弹出的窗口中点击Add, deploy项目。

  5. 启动Tomcat服务器。

  6.在浏览器中输入,http://localhost/A/servlet/B ,就可以看见结果了。

       以上的所有步骤都在http://blog.csdn.net/jojoaric/archive/2006/10/17/1338763.aspx 有提及。但是这个帖子没有说明怎么创建servlet,只是说了怎么创建jsp。其实两者只是在创建位置上不同。前者是在A/src下,后者是在A/webroot下。就是这个细微差别迷惑了我好几天,真是会者不难,难者不会啊!


下面另一个人对web.xml进行一些解释(参见http://fanqiang.chinaunix.net/app/web/2006-04-29/4122.shtml ):

 

3.1 分配名称
为了提供初始化参数,对servlet或JSP页面定义一个定制URL或分配一个安全角色,必须首先给servlet或JSP页面一个名称。可通过 servlet元素分配一个名称。最常见的格式包括servlet-name和servlet-class子元素(在web-app元素内),如下所示:

Test
moreservlets.TestServlet//注moreservlets通常为包名

这表示位于WEB-INF/classes/moreservlets/TestServlet的servlet已经得到了注册名Test。给 servlet一个名称具有两个主要的含义。首先,初始化参数、定制的URL模式以及其他定制通过此注册名而不是类名引用此servlet。其次,可在 URL而不是类名中使用此名称。因此,利用刚才给出的定义,URL http://host/webAppPrefix/servlet/Test 可用于 http://host/webAppPrefix/servlet/moreservlets.TestServlet 的场所。

此web.xml文件使用servlet-name和servlet-class元素将名称Test与TestServlet.class相关联。


3.2 定义定制的URL
大多数服务器具有一个缺省的serlvet URL:
http://host/webAppPrefix/servlet/packageName.ServletName 。虽然在开发中使用这个URL很方便,但是我们常常会希望另一个URL用于部署。例如,可能会需要一个出现在Web应用顶层的URL(如,http://host/webAppPrefix/Anyname ),并且在此URL中没有servlet项。位于顶层的URL简化了相对URL的使用。此外,对许多开发人员来说,顶层URL看上去比更长更麻烦的缺省URL更简短。
事实上,有时需要使用定制的URL。比如,你可能想关闭缺省URL映射,以便更好地强制实施安全限制或防止用户意外地访问无初始化参数的servlet。如果你禁止了缺省的URL,那么你怎样访问servlet呢?这时只有使用定制的URL了。
为了分配一个定制的URL,可使用servlet-mapping元素及其servlet-name和url-pattern子元素。Servlet- name元素提供了一个任意名称,可利用此名称引用相应的servlet;url-pattern描述了相对于Web应用的根目录的URL。url- pattern元素的值必须以斜杠(/)起始。
下面给出一个简单的web.xml摘录,它允许使用URL http://host/webAppPrefix/UrlTest 而不是http://host/webAppPrefix/servlet/Test 或
http://host/webAppPrefix/servlet/moreservlets.TestServlet 。请注意,仍然需要XML头、DOCTYPE声明以及web-app封闭元素。此外,可回忆一下,XML元素出现地次序不是随意的。特别是,需要把所有servlet元素放在所有servlet-mapping元素之前。

Test
moreservlets.TestServlet



Test
/UrlTest

URL模式还可以包含通配符。例如,下面的小程序指示服务器发送所有以Web应用的URL前缀开始,以..asp结束的请求到名为BashMS的servlet。

BashMS
msUtils.ASPTranslator



BashMS
/*.asp


web.xml中url-pattern值得相对主目录(一般是host+项目名)的相对路径,这里的servlet-name必须同上面的servlet-class配对的servlet-name一致,因为它是通过servlet的别名指定相对路径。

 

 

你可能感兴趣的:(Java)