当前位置: 首页 > news >正文

中山小榄网站企业系统管理平台

中山小榄网站,企业系统管理平台,最新的国外新闻10条,深圳论坛网站设计哪家公司好上周#xff0c;我与某人谈论了Grails 2中对Servlet 3.0异步功能的新支持#xff0c;并意识到我对可用功能并不了解。 所以我想我会尝试一下并分享一些例子。 该文档对这个主题有些了解#xff0c;因此首先介绍一些背景信息。 在3.0规范中进行异步工作的主要方式是javax.ser… 上周我与某人谈论了Grails 2中对Servlet 3.0异步功能的新支持并意识到我对可用功能并不了解。 所以我想我会尝试一下并分享一些例子。 该文档对这个主题有些了解因此首先介绍一些背景信息。 在3.0规范中进行异步工作的主要方式是javax.servlet.ServletRequest类中的新startAsync方法。 这将返回javax.servlet.AsyncContext接口的实例该实例具有生命周期方法例如dispatch和complete 为您提供了对请求和响应的挂钩并允许您注册javax.servlet.AsyncListener 。 您调用传入Runnable的start方法来执行异步工作。 使用这种方法可以释放服务器资源而不是进行阻塞这可以提高可伸缩性因为您可以处理更多的并发请求。 为了使用此功能处理请求的servlet必须支持异步并且过滤器链中所有应用的过滤器也必须支持。 主Grails Servlet GrailsDispatcherServlet 在web.xml模板的3.0版本中注册并且async-supported属性设置为true。 Servlet3AsyncWebXmlProcessor生成后将async-supportedtrue/async-supported到web.xml中的所有过滤器声明中。 这样就为您覆盖了 您没有必需的web.xml配置。 您还必须配置为使用Servlet API 3.0。 这很容易做到 只需将grails.servlet.version的值grails.servlet.version为“ 3.0 默认值“ 2.5”。 请注意application.properties中有一个旧设置名称为app.servlet.version ; 您应该从application.properties文件中删除此行因为它的值在运行时会被BuildConfig.groovy中的值忽略并覆盖。 但是您不会在控制器的请求上调用startAsync 直接在控制器上调用startAsync 。 此方法是作为控制器方法添加的作为Controller的AST转换的一部分从ControllersAsyncApi连接 如果您感到好奇可以通过ControllerAsyncTransformer连接 。 调用控制器的startAsync方法非常重要因为它可以执行所有标准工作而且还可以添加Grails集成。 这包括添加逻辑以集成所有已注册的PersistenceContextInterceptor实例例如将Hibernate Session绑定到线程完成后刷新等并与Sitemesh集成。 这是通过返回的实例来实现的 GrailsAsyncContext为其余部分添加额外的行为并委托给容器提供的实际实例例如Tomcat中的org.apache.catalina.core.AsyncContextImpl 。 请求中还有其他一些与异步相关的新方法。 它们包括boolean isAsyncStarted()和AsyncContext getAsyncContext() 。 我已经附加了一个示例应用程序请参阅下面的链接以演示这些功能。 有两个部分 一个异步查询股票价格的简单控制器以及一个聊天应用程序。 StockController非常简单。 它只有一个动作因此会暂停以查询所请求的股票报价器的当前股价。 它异步执行此操作但通常速度非常快因此您可能看不到与串行方法的真正区别。 但是这种模式可以推广到执行更多耗时的任务。 调用http// localhost8080 / asynctest / stock / GOOGhttp// localhost8080 / asynctest / stock / AAPLhttp// localhost8080 / asynctest / stock / VMW等进行测试。 第二个示例涉及更多并基于Java EE 6 SDK中的“ async-request-war”示例。 这实现了一个聊天应用程序它以前是通过Comet实现的。 SDK的示例是一个大servlet。 我将其拆分为一个控制器以执行标准请求工作并将其ChatManager为ChatManager类在resources.groovy中注册为Spring Bean来处理客户端注册消息排队和调度以及相关的错误处理。 该实现使用隐藏的iframe来启动长时间运行的请求。 它永远不会完成并且用于将消息发送回每个注册的客户端。 当您“登录”或发送消息时控制器将处理请求并将响应消息排队。 然后 ChatManager循环遍历每个已注册的AsyncContext 并将JSONP发送到iframe该iframe使用传入消息更新主页中的文本区域。 使我困扰了很长时间的一件事是该示例在SDK示例中运行良好但在我的示例中却无法运行。 一切看起来不错但iframe并未收到消息。 事实证明这是由于进行了适当的优化以使响应呈现尽可能快。 不幸的是这导致响应编写器上的flush()调用被忽略。 由于我们需要响应式更新并且不会呈现较大的html页面因此我添加了代码来查找由Grails代码包装的真实响应并直接发送给它。 在两个浏览器中打开http// localhost8080 / asynctest /尝试一下。 一旦您“登录”到两者发送的消息将在两个浏览器中显示。 有关测试应用程序的一些注意事项 所有客户端逻辑都在web-app / js / chat.js中 grails-app / views / chat / index.gsp是主页 它创建了文本区域来显示消息而隐藏的iframe保持连接状态并收听消息 这需要实现3.0规范的Servlet容器。 由tomcat插件提供并由run-app使用的Tomcat版本而所有7.x版本的Tomcat都有。 我运行install-templates并编辑了web.xml以添加metadata-completetrue以防止Tomcat扫描所有jar文件中的带注释的类–由于版本7.0.26中已修复的错误当前未发布 因此这可能导致OOME 由于聊天部分基于旧代码因此它使用Prototype但可以轻松使用jQuery。 您可以在此处下载示例应用程序代码。 参考 An Solipsists博客上的JCG合作伙伴 Burt Beckwith 提供的在Grails 2.0中使用Servlet 3.0异步功能 。 翻译自: https://www.javacodegeeks.com/2012/06/using-servlet-30-async-features-in.html
http://www.zqtcl.cn/news/733463/

相关文章:

  • 外链网站有哪些空港经济区内的建设工程网站
  • 企业网站开发价阿里云快速备份网站
  • 大型电子商务网站建设成本ai网页生成
  • 网页播放视频 网站开发常用网站搜索引擎
  • 制作一个购物网站要多少钱做创意小视频的网站
  • 淇县网站建设软件定制流程
  • 17网站一起做网店代发流程wordpress悬浮 联系
  • 如何查网站外链快速开发平台 免费开源
  • 做网站有哪些流程怎么做网站电影
  • 做街机棋牌上什么网站发广告网站策划和运营
  • 建网站是什么专业类别阳江网红人物
  • 网站建设工作描述株洲市建设质监站网站
  • 做网站 橙色怎么搭配吐鲁番市网站建设
  • 企业信息网站衡阳高端网站建设
  • 中小学网站建设小程序开发费用是多少
  • 网站开发项目可行性分析单位logo设计
  • 做最好的美食分享网站网站源码网站
  • 宝塔搭建app教程360优化大师下载
  • 杭州网站制作 乐云践新开发公司竣工员工奖励计划
  • 绍兴市越城区建设局网站网站策划运营方案书
  • 怎么查网站备案信息查询wordpress 新安装 慢
  • 做一个卖东西的网站深圳市住房和建设局网站变更
  • 一个公司做几个网站绵阳房产网
  • 广州做网站服务怎样做网站反链
  • 淘宝客网站制作视频教程flash做网站的论文
  • wordpress keywords 用逗号 区分关键字南昌网站优化方案
  • 清华大学网站建设方案郑州建网站企业
  • 闸北网站优化公司网站表格代码
  • 网站里面如何做下载的app深圳企业社保登录入口
  • 中国网站建设哪家公司好网站开头flash怎么做