欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

查看Servlet 3.0的新增功能

发布时间:2023/12/3 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 查看Servlet 3.0的新增功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

随着JEE6规范上市,在企业应用程序领域中如何开发应用程序方面发生了一些重大变化。 在本文中,我将介绍有关Web应用程序开发的一些更改。

首先,请告别web.xml部署描述符(至少是其中的一部分)。 好吧,它并不是不赞成使用,但是随着注释的使用及其使用的增加,新规范允许我们使用注释来定义我们的配置,尽管诸如欢迎文件列表,上下文参数等仍然需要去做。在您的web.xml中。 可用的注释有;

  • @WebServlet
  • @WebFilter
  • @WebInitParam
  • @WebListener
  • @MultipartConfig

在本文中,我将检查@WebServlet和@WebFilter批注。 让我们看看在web.xml时代通常如何映射servlet。

<servlet><servlet-name>myservlet</servlet-name><servlet-class>com.example.MyServlet</servlet-class></servlet><servlet-mapping><servlet-name>myservlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>

使用Servlet 3.0规范,现在配置Servlet就像注释扩展HttpServlet的类一样容易。 让我们看一下它的样子;

@WebServlet('/student') public class StudentServlet extends HttpServlet{/*** */private static final long serialVersionUID = 2276157893425171437L;@Overrideprotected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)throws ServletException, IOException {StringBuilder response = new StringBuilder(500);response.append('<html><body>').append('Registered Student : ').append(arg0.getParameter('txtName')).append('</body></html>');arg1.getOutputStream().write(response.toString().getBytes());arg1.getOutputStream().flush();arg1.getOutputStream().close();} }

您只需要@WebServlet批注。 为了使它起作用,该类应该驻留在WEB-INF / classes文件夹中,或者驻留在WEB-INF / lib文件夹中的jar中。 接下来,让我们看看如何配置带有注释的过滤器。

package com.blog.example.servlettest;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter;@WebFilter('/student') public class StudentFilter implements Filter{@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {if(arg0.getParameter('txtName')==null || arg0.getParameter('txtName').isEmpty()){arg1.getWriter().append('Invalid name supplied');arg1.getWriter().flush();arg1.getWriter().close(); }else{arg2.doFilter(arg0, arg1);}}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}

再次非常容易。 仅作为注释即可通知它为过滤器。 请注意,这里我们实现了Filter接口。 该urlPatterns应该可用。 根据规范,同时使用两者都是非法的。

在接下来的几周中,我将介绍JEE6提供的其他新注释,并结合使用它们的完整示例进行总结。 JEE6是否取代Spring框架本身并不是一个问题,但是我相信我们将会看到两者之间的激烈竞争。 注释vs xml的争论已或多或少地解决了,每个人都倾向于拥有自己的立场。 我相信这两个方面的知识对应用程序都会有所帮助。

您可以下载并运行我已在此处上传的示例示例。 如果您使用的是JBoss-AS7 ,则只需在独立模式下运行应用程序服务器,然后执行mvn软件包jboss-as:deploy并将浏览器指向http:// localhost:{port} /servlet3.0

今天就是这样。 感谢您的阅读,如果您有任何意见或改进建议,请留下评论。

祝你有美好的一天!

参考:在My My Journey Through IT博客上,从我们的JCG合作伙伴 Dinuka Arseculeratne中了解Servlet 3.0的新增功能 。

翻译自: https://www.javacodegeeks.com/2012/12/checking-out-what-is-new-with-servlet-3-0.html

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的查看Servlet 3.0的新增功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。