servlet3.0新特性_查看Servlet 3.0的新增功能

servlet3.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

servlet3.0新特性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android(2)-----Fragment //(第七周后的知识)

1、Fragmentandroid.app.Fragment版本&#xff1a;//v4版本是为了由3.0向下兼容到1.6&#xff0c;改那个Fragment文件里的import android.support.v4.app.Fragment;换成 import android.app.Fragment;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01…

延迟加载是一种代码气味

您见过那些具有许多属性的巨大物体吗&#xff1f; 这些域对象由于不希望从数据库检索太多信息而在其中使用延迟加载&#xff1f; 我敢打赌你有这种令人怀疑的快乐。 今天&#xff0c;我想与大家分享我对它们的印象- 使用延迟加载应该被视为一种代码味道&#xff01; 让我解释…

c#时间函数

我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间&#xff1a;如&#xff1a;日期&#xff08;2008-09-04&#xff09;、时间&#xff08;12&#xff1a;12&#xff1a;12&#xff09;、日期时间&#xff08;2008-09-04 12&…

gbk编码在线转换工具_TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具

本文要推荐的[TOOLFK]在线汉字/字母/人民币/简繁体转换工具,提供简繁体在线转换、人民币大写转换、字母大小写互转、汉字转拼音在线日常使用工具。網站名稱&#xff1a;ToolFk網站鏈結&#xff1a;https://www.toolfk.com/工具链接&#xff1a;https://www.toolfk.com/tool-onl…

hive的metatable学习

一、存储Hive版本的元数据表&#xff08;VERSION&#xff09; &#xfffc; &#xfffc; 二、Hive数据库相关的元数据表&#xff08;DBS、DATABASE_PARAMS&#xff09; DBS --存储Hive中所有数据库的基本信息 &#xfffc; &#xfffc; DATABASE_PARAMS --该表存储数据库的相…

clickhouse官方文档_clickhouse分析:结合grafana和metabase完成监控和数据分析

点击上方蓝字关注我们“ 关于clickhouse的监控和可视化界面&#xff0c;想必刚接触到ch的人是一头雾水&#xff0c;大厂往往会给ch集群定制各种监控和可视化分析&#xff0c;普通用户就需要我们自己寻求现成的开源工具&#xff0c;在一些常见的开源工具上&#xff0c;我们可以较…

hazelcast_带弹簧的Hazelcast分布式执行

hazelcastExecutorService功能是Java 5附带的&#xff0c;位于java.util.concurrent包中。 它扩展了Executor接口&#xff0c;并提供了线程池功能来执行异步简短任务。 建议使用Java Executor服务类型来查看基本的ExecutorService实现。 ThreadPoolExecutor也是ExecutorServic…

OpenCV测试程序

#include<opencv2\opencv.hpp> using namespace cv; int main() {Mat picture imread("1.jpg");//图片必须添加到工程目下//也就是和test.cpp文件放在一个文件夹下&#xff01;&#xff01;&#xff01;imshow("测试程序", picture);waitKey(201509…

Java中的do-while循环——通过示例学习Java编程(11)

作者&#xff1a;CHAITANYA SINGH 来源&#xff1a;https://www.koofun.com/pro/kfpostsdetail?kfpostsid22&cid0 在上一篇教程中&#xff0c;我们讨论了while循环。在本教程中&#xff0c;我们将讨论java中的do-while循环。do-while循环类似于while循环&#xff0c;但是它…

centos7离线安装mysql_Centos7离线安装metasploit详细教程

最近需在内网服务器搭建安全工具环境&#xff0c;苦于内网服务器无法访问互联网&#xff0c;需要很多依赖包比较麻烦&#xff0c;尤其metasploit无互联网安装特别麻烦&#xff0c;而且网上metasploit的安装教程均是在线一键安装教程&#xff0c;对于无法访问互联网的服务器进行…

净资产的结构

Netty的包装结构很棒。 每个程序员都应该研究它。 每个系统都应该模仿它&#xff1b; 每个项目经理都应将其打印出来&#xff0c;拍在墙上&#xff0c;然后对开发人员说&#xff1a;“那样。” Netty是一个“……用于快速开发可维护的高性能协议服务器和客户端的异步事件驱动…

常用的HTTP响应头

响应头 说明 示例 状态 Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时 Accept-Patch 指定服务器所支持的文档补丁格式 Accept-Patch: text/example;charsetutf-8 固定 Accept-Ranges 服务器所支持的内容范围 …

iframe嵌入页面白屏_封闭在家学网页制作!为页面嵌入PDF文件——零基础自学网页制作

在页面中嵌入PDF文件在上一篇《在html页面中嵌入其他页面的方法——零基础自学网页制作》(结尾见目录)中我们学习了如何在页面中嵌入其他页面的操作。今天我们来嵌入一个pdf文件。其实使用示例代码如下&#xff1a;页面效果如下&#xff1a;考虑到pdf的版权问题就不给大家上传云…

ITK读取RGB图像像素值

/*这个程序接收输入参数作为文件路径&#xff0c; 读取指定的图片数据&#xff08;RGB&#xff09;&#xff0c; 并显示指定位置的像素值。&#xff08;这里是[0,0]位置&#xff09; */ #include "itkImage.h" #include "itkRGBPixel.h" #include "…

微小宝公众号排行榜_排行榜 | 山西省高校、高职中专微信公众号周数据排行榜...

戳上面的蓝字关注我们哦&#xff01;《山西教育》杂志社公众号“山西教育杂志”微信号shanxi_jiaoyu山西教育杂志社山西教育山西省高校微信公众号2020年周数据分析11月22日至11月28日WCI指数 通过微信公众号推送文章的传播度、覆盖度及公号的成熟度和影响力&#xff0c;来反映微…

二阶段冲刺第七天

站立会议时间&#xff1a;5.15 站立会议地点&#xff1a; 站立会议内容&#xff1a; 王建宁&#xff1a; 昨天把管理员界面上的listview添加了点击事件&#xff0c;点击进去可以填写维修信息&#xff0c;也可以对维修信息进行更改 今天制作管理员界面&#xff0c;长按对反馈信息…

垃圾收集算法,垃圾收集器_为什么我不能关闭垃圾收集器?

垃圾收集算法,垃圾收集器让我们开始快速回顾一下我作为Java开发人员的职业生涯的早期。 我想消除正在进行的测试中的垃圾回收&#xff08;GC&#xff09;暂停。 瞧&#xff0c;当我发现无法完成时&#xff0c;我很生气。 那时&#xff0c;我把问题留在了“设计错误”中&#xf…

串口 驱动 热敏打印机_热敏纸标签打印不出来文字 是因为……

点击↑箭头处“蓝色字”&#xff0c;关注我们哦&#xff01;&#xff01;Hello&#xff0c;各位纸友们好呀&#xff01;我是小冠~随着生活的需要&#xff0c;热敏纸标签在生活中也成了必不可少一个部分&#xff01;那么&#xff0c;为什么有的热敏纸标签有的时候会打印不出来文…

四级英语day14

1. instance /ˈɪnstəns/ n.例子 vt.举…为例2. formal /ˈfɔːməl/ a.①形式上的②正式的3. casual /ˈkʒuəl/ a.①漫不经心的②非正式的③临时的4. cause /kɔːz/ n.①原因②理由③事业 vt.引起5. foundation /faunˈdeɪʃən/ n.①地基②建立③根据6. generous…

JDK 9已完成功能!

今天的马克莱因霍尔德 &#xff08; Mark Reinhold&#xff09;消息JDK 9已完成功能完善-现在该降级了 &#xff0c; 它宣布JDK 9的“总体功能集已冻结”。 甲骨文Java平台小组的首席架构师Reinhold补充说&#xff1a;“极不可能将任何进一步的JEP定向到该发行版。” 与该消息类…