Tomcat 7.0 servlet 标注配置
2013-07-03 17:45
309 查看
在使用tomcat7.0+eclipse j2ee时,新建Dynamic Web Project时,会让选择是否生成web.xml.无论选择与否,此时新建一个servlet,可以不在web.xml中进行servlet的配置,只需在相应的servlet中进行标注配置即可,而且标注远远比配置web.xml简单。
新建一个Dynamic Web Project,取名servlet。如下图:
![](http://my.csdn.net/uploads/201205/02/1335940727_7910.jpg)
服务器选择Tomcat7.0,之后点击下一步两次进入到如下界面:
![](http://my.csdn.net/uploads/201205/02/1335940694_7581.jpg)
会发现生成web.xml选项默认为未选中,不理会之,继续。点击完成。生成的工程中已经没有了web.xml文件。
![](http://my.csdn.net/uploads/201205/02/1335940657_6567.jpg)
一、如何标注配置Servlet
1、新建一个Servlet,如下:
![](http://my.csdn.net/uploads/201205/02/1335940617_5943.jpg)
不做任何修改,点击完成。
以下是新生成的servlet完整类。
可以发现,在Servlet类名前,已经存在如下标注:
@WebServlet("/HelloWroldServlet"),运行tomcat,在浏览器中输入http://localhost:8080/HelloWroldServlet.
可以发现,未报异常等错误信息。说明该servlet访问是正确的。
2、如何配置初始化参数。
将标注改成:
@WebServlet(name="HelloWorld",urlPatterns={"/HelloWroldServlet","/HelloWorld"},initParams={@WebInitParam(name="id",value="yeh"),@WebInitParam(name="name",value="九天玄烨")})
注意initParams的配置,而后将doGet()方法改成:
再次访问该servlet 即可获得这两个参数的值。其它配置一致,无益为String型,没有什么变换的地方。此处仅为解释一下类型数组的配置。无它。
另看网上有人将WebServlet与WebInitParam分开来进行标注,如此而得到初始化参数,我没有成功。即类似如下:
此种方式我没有成功,看大家有没有什么建议。或者tomcat7.0的版本的细微差别。我的是tomcat7.0.12
WebFilter,WebListener配置类似。
新建一个Dynamic Web Project,取名servlet。如下图:
![](http://my.csdn.net/uploads/201205/02/1335940727_7910.jpg)
服务器选择Tomcat7.0,之后点击下一步两次进入到如下界面:
![](http://my.csdn.net/uploads/201205/02/1335940694_7581.jpg)
会发现生成web.xml选项默认为未选中,不理会之,继续。点击完成。生成的工程中已经没有了web.xml文件。
![](http://my.csdn.net/uploads/201205/02/1335940657_6567.jpg)
一、如何标注配置Servlet
1、新建一个Servlet,如下:
![](http://my.csdn.net/uploads/201205/02/1335940617_5943.jpg)
不做任何修改,点击完成。
以下是新生成的servlet完整类。
packagecn.onlylove.servlet; importjava.io.IOException; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; @WebServlet("/HelloWroldServlet") publicclassHelloWroldServletextendsHttpServlet { privatestaticfinallongserialVersionUID= 1L; protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException { } protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException { } } |
可以发现,在Servlet类名前,已经存在如下标注:
@WebServlet("/HelloWroldServlet"),运行tomcat,在浏览器中输入http://localhost:8080/HelloWroldServlet.
可以发现,未报异常等错误信息。说明该servlet访问是正确的。
比较:相对于web.xml中的配置,需要如下: <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>cn.onlylove.servlet.HelloWroldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWroldServlet</url-pattern> </servlet-mapping> 对于web.xml中的配置,在标注中通通都有配置。上述配置通过标注可以改成如下: @WebServlet(name="HelloWorld",value="HelloWroldServlet") 由于是在对应的类中配置的信息,因而则可以不用在标注中配置class了。 另一个问题,在web.xml中一个servlet可以配置多个servlet-mapping,只要在其中指定相同的servlet-name即可。而在标注中使用value只能指定一个。其实,标注也可以指定多个的,但不再用value,而是用urlPatterns数组。如下配置 @WebServlet(name="HelloWorld",urlPatterns={"/HelloWroldServlet","/HelloWorld"})。如此,通过 http://localhost:8080/servlet/HelloWroldServlet http://localhost:8080/servlet/HelloWorld 两个都可以进入同一个servlet。 当标注与web.xml同时配置时,标注无效。 |
2、如何配置初始化参数。
将标注改成:
@WebServlet(name="HelloWorld",urlPatterns={"/HelloWroldServlet","/HelloWorld"},initParams={@WebInitParam(name="id",value="yeh"),@WebInitParam(name="name",value="九天玄烨")})
注意initParams的配置,而后将doGet()方法改成:
response.setContentType("text/html;charset="UTF-8"");PrintWriter out=response.getWriter(); out.println(this.getInitParameter("id")); out.println(this.getInitParameter("name")); out.flush(); out.close(); |
再次访问该servlet 即可获得这两个参数的值。其它配置一致,无益为String型,没有什么变换的地方。此处仅为解释一下类型数组的配置。无它。
另看网上有人将WebServlet与WebInitParam分开来进行标注,如此而得到初始化参数,我没有成功。即类似如下:
@WebServlet(“hello”) @WebInitParam(name=”id”,value=”yeh”) Public class …… |
此种方式我没有成功,看大家有没有什么建议。或者tomcat7.0的版本的细微差别。我的是tomcat7.0.12
WebFilter,WebListener配置类似。
相关文章推荐
- Tomcat 7.0 servlet 标注配置
- Tomcat 7.0 servlet 标注配置
- Tomcat 7.0 servlet 标注配置
- Tomcat7.0后版本无需在web.xml中配置Servlet信息
- Eclipse3.6+Tomcat7.0配置Servlet开发环境
- Tomcat7.0新特性:支持Servlet3.0注解定义,无需配置web.xml
- Eclipse3.6+Tomcat7.0配置Servlet开发环境
- tomcat7.0使用servlet处理jsp表单(form)的web.xml配置
- tomcat7.0使用servlet处理jsp表单(form)的web.xml配置
- 把JavaEE编写的servlet,配置到tomcat7.0
- Tomcat7.0新特性:支持Servlet3.0注解定义,无需配置web.xml
- tomcat源码解析(五)--两种配置与异步servlet
- Java Servlet学习【1】编写Servlet程序,配置web.xml,使用免安装版tomcat
- windows 版Tomcat 7.0的配置
- Tomcat下的jsp、servlet和javabean的配置实例
- Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
- Tomcat下JSP、Servlet和JavaBean环境的配置
- Tomcat 7.0 JNDI连接池配置
- MyEclipse 7.0中Tomcat配置
- Tomcat6.0下的jsp、servlet和javabean的配置