`

实验八:异步servlet

 
阅读更多

注意一:

@WebServlet(urlPatterns={"/hi"},asyncSupported=true)

注意二:

在客户端看来, 这仍然是同步的请求, 客户端需要等待请求结果。

注意三:异步分为请求异步和相应异步, 本例子只是响应方法异步。

 

/**

 * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.

 *

 * You may not modify, use, reproduce, or distribute this software except in

 * compliance with  the terms of the License at:

 * http://java.net/projects/javaeetutorial/pages/BerkeleyLicense

 */

package javaeetutorial.hello2;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.AsyncContext;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

 * This is a simple example of an HTTP Servlet. It responds to the GET method of

 * the HTTP protocol.

 */

@WebServlet(urlPatterns={"/hi"},asyncSupported=true)

public class GreetingServlet extends HttpServlet {

 

@Override

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

 

response.setContentType("text/html");

final AsyncContext context= request.startAsync();

context.start(new Runnable(){

 

@Override

public void run() {

try {

Thread.sleep(10000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// then write the data of the response

try {

context.getResponse().getWriter().println("hello");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

context.complete();

}

 

});

 

 

}

 

 

 

@Override

public String getServletInfo() {

return "The Hello servlet says hello.";

 

}

}

 

分享到:
评论

相关推荐

    利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。

    在这个项目中,我们将使用Servlet来创建一个简单的聊天室,允许用户通过浏览器进行实时交流。下面将详细介绍这个项目的实现步骤、关键技术以及涉及的Java Servlet相关知识点。 1. **登录验证**: 在用户进入聊天室...

    商城实验 java servlet javabean mysql

    在本项目中,"商城实验 java servlet javabean mysql" 是一个基于Web的实训项目,主要使用了Java、Servlet、Javabean和MySQL数据库来构建一个简单的网上商城系统。以下将详细介绍这些关键技术及其在项目中的应用。 ...

    Servlet模式的留言板

    **实验名称:**Servlet及其应用 **实验目的:** - 熟练掌握Servlet的定义与使用。 - 掌握使用Servlet作为控制器的应用。 - 熟悉MVC(Model-View-Controller)的开发模型。 **实验内容:** 本次实验主要围绕...

    简单的AJAX示例(JSP+servlet)

    总结来说,"简单的AJAX示例(JSP+servlet)"是一个演示了如何利用AJAX、JSP和Servlet来实现异步用户名验证的应用。它涉及到前端的交互设计、后端的数据处理以及web服务器的配置,是一个典型的前后端分离的开发模式实例...

    简单聊天室 J2EE课程实验 用servlet实现简单的聊天室

    【标题】: "简单聊天室 J2EE课程实验 - 使用Servlet实现" 【描述】: "在J2EE课程中,构建一个简单的聊天室是学习Web应用程序开发基础的一个常见实践项目。这个实验旨在让学生掌握Servlet技术,理解HTTP协议,并能够...

    JSP+Servlet+AJAX的dao设计模式

    **JSP+Servlet+AJAX DAO设计模式详解** 在Web开发中,DAO(Data Access Object)设计模式是一种常用的设计模式,用于将业务逻辑与数据访问层进行解耦,提高代码的可维护性和可复用性。本篇我们将深入探讨如何在JSP...

    Maven+Servlet3.0显示系统时间源码+文档

    Servlet3.0是Java Servlet API的一个重要版本,它引入了许多新特性,如注解配置、异步处理、WebSocket支持等。在这个项目中,可能使用了注解来配置Servlet,而不是传统的web.xml部署描述符。例如,我们可以使用`@Web...

    JSP动态网站开发 第1章 JSP使用基础第2章 HTML与CSS第3章 JavaScript脚本编程…………

    5. **AJAX(Asynchronous JavaScript and XML)**:异步数据传输,实现页面无刷新更新。 6. **ES6新特性**:包括let、const、箭头函数、模板字符串、Promise等,提高了JavaScript的编写效率和可读性。 本教程的...

    基于MVC用JSPServlet实现JPetStore实验报告+使用AJAX和jQuery改善用户体验实验报告.doc

    在本实验报告中,我们将探讨如何使用MVC(Model-View-Controller)设计模式通过JSP和Servlet实现JPetStore应用程序,并进一步利用AJAX和jQuery技术优化用户体验。实验旨在加深对Web应用开发的理解,特别是Java相关...

    spring_servlet3:Spring MVC Servlet 3.0博客的源代码-mvc source code

    - **实验异步处理**:尝试实现异步 Servlet,体验其性能优势。 - **自定义拦截器**:学习如何使用 Spring MVC 的拦截器机制增强功能。 6. **最佳实践** - **RESTful 设计**:遵循 REST 原则设计 URL 结构,使 ...

    基于jsp+servlet的实验中心管理系统.zip

    【基于jsp+servlet的实验中心管理系统】是一个使用Java Web技术栈开发的应用,主要涉及jsp(JavaServer Pages)和servlet,结合SpringBoot框架,构建了一套管理实验中心的系统。这个项目对于初学者来说,是一个很好...

    JDBC+Servlet+jsp实现增删改查

    5. **前端交互**:在JSP页面中,可能会使用HTML表单元素(如input、button等)来让用户输入数据,同时通过AJAX异步技术(如jQuery的$.ajax()方法)与Servlet通信,实现无刷新的用户体验,提高应用的交互性。...

    javaee实验考察项目结课项目 纯servlet 无后端框架 网盘项目

    【JavaEE实验考察项目——纯Servlet实现的网盘系统】 本项目是一个基于JavaEE技术的网盘系统,完全使用Servlet进行开发,没有依赖任何后端框架。Servlet是Java Web开发中的核心组件,它用于处理HTTP请求,提供动态...

    天津理工大学J2EE实验

    学生需要学习如何通过Ajax异步请求获取服务器上的温度数据,然后用这些数据生成动态的图表。理解JSON(JavaScript Object Notation)数据格式也至关重要,因为它是服务器与客户端之间交换数据的常见方式。此外,可能...

    JSP连接数据库简单留言板实验报告

    此外,为了提高用户体验,可以使用AJAX异步更新留言列表,避免每次刷新整个页面。这可以通过JavaScript库如jQuery或现代浏览器的fetch API实现。 最后,实验报告应详细记录实验步骤、遇到的问题及解决方案,以及对...

    实验报告1

    - Ajax无刷新登录/注册:用户提交表单时,通过Ajax异步发送请求到服务器进行验证,成功后不刷新页面,直接跳转至主页。 - 添加过滤机制:防止XSS攻击,过滤掉可能的恶意标签字符。 2. 判题程序: - Linux环境下...

    上传下载一个JSP上传图片和文件实例

    1. 使用异步处理:对于大文件上传和下载,可以考虑使用异步处理,提高用户体验。 2. 分块上传/下载:对于大文件,分块上传和下载可以减少内存消耗,并允许断点续传。 3. 缓存策略:对于频繁访问的文件,可以使用...

    基于servlet+jsp,还有jQuery和Boostrap,简单的一个小实验,是图书管理系统,可以对图书进行增删改查.zip

    在本项目中,jQuery可能被用来优化用户界面,比如实现页面元素的动态加载、表单验证和异步数据交互。例如,当用户在搜索框输入时,可能使用jQuery的AJAX功能实时查询数据库中的图书信息。 **Bootstrap** 是一个流行...

    东北大学EJB实验报告

    - **消息驱动Bean(Message-Driven Beans)**:用于处理JMS(Java Message Service)消息,常用于异步通信。 ### 实验内容与步骤 在此次实验中,我们可能涉及以下内容: 1. **环境配置**:设置Java EE开发环境,...

    天津理工大学Web应用程序设计与开发大作业:综合应用【JSP+EasyUI+Servlet+JDBC】的报告

    **标题与描述解析** 本项目是天津理工大学针对Web应用程序设计与开发的一次大作业,它要求学生综合运用Java Server Pages (JSP)、...同时,为了提高用户体验,可以考虑使用Ajax异步查询,使得页面在加载时保持响应性。

Global site tag (gtag.js) - Google Analytics