Eclipse中使用Servlet

来源:互联网 发布:管家婆财务统计软件 编辑:程序博客网 时间:2024/06/06 07:14

在Eclipse中使用Servlet来充当jsp的数据处理是非常方便的,但是在eclipse中使用servlet会遇到一些问题,下面就来一一解决。


1.资源目录存放问题


在eclipse中一键创建servlet文件是非常方便的,但是应该注意servlet的路径,eclipse对于java资源都是进行统一存放的,一律放在Java Resources里面,初始化工程时,会提示你存放资源的根目录,默认是src当然你也可以自己修改。


那么如何建立一个servlet容器呢?其实很简单,直接右键工程-NEW-servlet就可以了。在新建servlet的时候,eclipse会提示你选择或者新建一个包用来存放servlet,这一项操作建议必须进行,因为这样会非常清晰的显示出servlet的组织结构,不会与其他组件混在一起,建议servlet包的命名要见名知义,不要起没有实际含义的名字,比如说ABC,123456,fjkd这些名字,可以起servlet_XXX这样的名字,方便自己去识别包的类型。


2.新建servlet时的默认设置


在用eclipse新建servlet容器时,在其默认生成的文件中会有这么一句话,(J是我起的servlet容器名字,),@WebServlet("/xxx"),这一句是什么意思呢?




在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。换句话说,如果你不想在web.xml中配置servlet信息,那么你就可以在@WebServlet注解中修改它的属性。

下面是@WebServlet的属性列表。


属性名类型描述nameString指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。valueString[]该属性等价于 urlPatterns 属性。两个属性不能同时使用。urlPatternsString[]指定一组 Servlet 的 URL 匹配模式。等价于<url-pattern>标签。loadOnStartupint指定 Servlet 的加载顺序,等价于 <load-on-startup>标签。initParamsWebInitParam[]指定一组 Servlet 初始化参数,等价于<init-param>标签。asyncSupportedboolean声明 Servlet 是否支持异步操作模式,等价于<async-supported> 标签。descriptionString该 Servlet 的描述信息,等价于 <description>标签。displayNameString该 Servlet 的显示名,通常配合工具使用,等价于 <display-name>标签。

下面是具体的例子:




注意:如果已经配置了web.xml中的servlet容器信息,你的servlet文件中依然有这句代码,那么你的服务器解释程序会报错的。



3.web.xml的配置


注意:这一步不是必须的,如果你已经配置了@WebServlet中配置了信息,那么请不要进行这步操作。


<servlet>元素是配置Servlet所用的元素。

<servlet-mapping>元素在Servlet和URL样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问你的servlet。


具体的配置如下:

<servlet>  <servlet-name>ServletName</servlet-name>     <servlet-class>xxxpackage.xxxServlet</servlet-class>   <!--Servlet的类-->  <init-param>                                     <!--初始化一个变量,可看成全局变量,可省略-->    <param-name>参数名称</param-name>              <!--变量名称-->    <param-value>参数值</param-value>              <!--变量值-->  </init-param></servlet><servlet-mapping>  <servlet-name>ServletName</servlet-name>                 <url-pattern>/aaa/xxx</url-pattern>                   <!--映射的url路径 --></servlet-mapping>


缺省Servlet


1.如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。


2.凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。


3.在<tomcat的安装目录>\conf\web.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。


当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。





原创粉丝点击