热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaweb教程_JavaWeb服务教程

javaweb教程WelcometotheJavaWebServicesTutorial.Herewewilllearnaboutwebservices,usefulconcept

java web 教程

Welcome to the Java Web Services Tutorial. Here we will learn about web services, useful concepts in web services and then different types of API we have in Java to create web services.

欢迎使用Java Web Services教程 。 在这里,我们将学习Web服务 , Web服务中的有用概念以及Java中用于创建Web服务的不同类型的API。

什么是网络服务 (What is a Web Service)

In simple words, services that can be accessed over network are called web services. So how does it differ from web application, they are also services that are accessed over network. There are few attributes that clarifies this difference.

简而言之,可以通过网络访问的服务称为Web服务。 因此,它与Web应用程序有何不同,它们也是通过网络访问的服务。 几乎没有属性可以阐明这种差异。

  • Web applications are meant for users and to be accessed in browser having human readable format whereas web services are meant for applications to access data in the format of XML, JSON etc.

    Web应用程序供用户使用,并在具有人类可读格式的浏览器中进行访问,而Web服务则供应用程序以XML,JSON等格式访问数据。
  • Web applications always use HTTP/HTTPS protocol whereas traditional web services use SOAP protocol. Recently REST is getting popularity that is an architecture style and almost all times run on HTTP/HTTPS protocol.

    Web应用程序始终使用HTTP / HTTPS协议,而传统的Web服务使用SOAP协议。 最近,REST越来越流行,它是一种体系结构样式,几乎所有时间都在HTTP / HTTPS协议上运行。
  • Web applications are not meant for reusability whereas this is one of the benefit of web services. A single web service can be used by different kinds of applications.

    Web应用程序并非旨在提供可重用性,但这是Web服务的优势之一。 单个Web服务可由不同类型的应用程序使用。
  • Web application can access web services to access some data or to perform some tasks, web services can’t access web applications to fetch some data.

    Web应用程序可以访问Web服务以访问某些数据或执行某些任务,Web服务不能访问Web应用程序以获取一些数据。
  • Web applications are capable to maintain user session, web services are stateless.

    Web应用程序能够维护用户会话,Web服务是无状态的。

I hope above differences are good enough to clear any confusion with web applications and web services. Both are different concepts and meant for different purpose.

我希望上述差异足以消除与Web应用程序和Web服务的任何混淆。 两者都是不同的概念,并且具有不同的用途。

Web服务的类型 (Types of Web Services)

There are two types of web services.

Web服务有两种类型。

  1. SOAP: SOAP stands for Simple Object Access Protocol. SOAP is an XML based industry standard protocol for designing and developing web services. Since it’s XML based, it’s platform and language independent. So our server can be based on JAVA and client can be on .NET, PHP etc. and vice versa.

    SOAP:SOAP代表简单对象访问协议。 SOAP是用于设计和开发Web服务的基于XML的行业标准协议。 由于它基于XML,因此与平台和语言无关。 因此,我们的服务器可以基于JAVA,客户端可以基于.NET,PHP等,反之亦然。
  2. REST: REST is an architectural style for developing web services. It’s getting popularity recently because it has small learning curve when compared to SOAP. Resources are core concepts of Restful web services and they are uniquely identified by their URIs.

    REST:REST是用于开发Web服务的体系结构样式。 由于与SOAP相比,它的学习曲线很小,因此最近变得越来越流行。 资源是Restful Web服务的核心概念,它们由其URI唯一标识。

Java Web服务 (Java Web Services)

Java provides it’s own API to create both SOAP as well as REST web services.

Java提供了自己的API来创建SOAP和REST Web服务。

  1. JAX-WS: JAX-WS stands for Java API for XML Web Services. JAX-WS is XML based Java API to build web services server and client application.

    JAX-WS:JAX-WS代表XML Web Services的Java API。 JAX-WS是基于XML的Java API,用于构建Web服务服务器和客户端应用程序。
  2. JAX-RS: Java API for RESTful Web Services (JAX-RS) is the Java API for creating REST web services. JAX-RS uses annotations to simplify the development and deployment of web services.

    JAX-RS:用于RESTful Web服务的Java API(JAX-RS)是用于创建REST Web服务的Java API。 JAX-RS使用注释来简化Web服务的开发和部署。

Both of these APIs are part of standard JDK installation, so we don’t need to add any jars to work with them. Both of these APIs use annotations very heavily.

这两个API都是标准JDK安装的一部分,因此我们不需要添加任何jar即可使用它们。 这两个API都非常频繁地使用注释。

Hello World JAX-WS应用程序 (Hello World JAX-WS Application)

Let’s create a very simple Hello World JAX-WS application.

让我们创建一个非常简单的Hello World JAX-WS应用程序。

TestService.java

TestService.java

package com.journaldev.jaxws.service;import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;@WebService
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class TestService {@WebMethodpublic String sayHello(String msg){return "Hello "+msg;}public static void main(String[] args){Endpoint.publish("https://localhost:8888/testWS", new TestService());}
}

That’s it. Just run this application and our Hello World JAX-WS SOAP web service is published. Below image shows the invocation of this JAX-WS web service through SOAP UI.

而已。 只需运行此应用程序,我们的Hello World JAX-WS SOAP Web服务就会发布。 下图显示了通过SOAP UI对该JAX-WS Web服务的调用。

That’s it for a very basic tutorial of JAX-WS web service. Below are some of the articles you should read for better understanding of SOAP web services and JAX-WS.

这是一个非常基本的JAX-WS Web服务教程。 以下是您应该阅读的一些文章,以更好地理解SOAP Web服务和JAX-WS。

  1. JAX-WS Tutorial

    JAX-WS教程
  2. JAX-WS Web Service Deployment on Tomcat

    Tomcat上的JAX-WS Web服务部署
  3. SOAP Web Service Example using Eclipse and Apache Axis

    使用Eclipse和Apache Axis的SOAP Web服务示例
  4. Apache Axis 2 Web Services Tutorial

    Apache Axis 2 Web服务教程

Hello World JAX-RS应用程序 (Hello World JAX-RS Application)

Jersey is the reference implementation of JAX-RS API, it’s not part of standard JDK and we have to include all the required jars. Best way is to use Maven build, so create a simple Dynamic web project and then convert it to Maven in Eclipse.

Jersey是JAX-RS API的参考实现,它不是标准JDK的一部分,我们必须包含所有必需的jar。 最好的方法是使用Maven构建,因此创建一个简单的Dynamic Web项目,然后在Eclipse中将其转换为Maven。

Here is the final pom.xml file having required dependencies.

这是具有必需依赖项的最终pom.xml文件。

4.0.0JAX-RS-HelloWorldJAX-RS-HelloWorld0.0.1-SNAPSHOTwarcom.sun.jerseyjersey-server1.19com.sun.jerseyjersey-servlet1.19srcmaven-war-plugin2.6WebContentfalsemaven-compiler-plugin3.31.71.7

Now add Jersey servlet to our deployment descriptor web.xml as front controller.

现在,将Jersey Servlet添加到我们的部署描述符web.xml中作为前端控制器。


JAX-RS-HelloWorldJersey REST Servicecom.sun.jersey.spi.container.servlet.ServletContainercom.sun.jersey.config.property.packagescom.journaldev.jaxrs.service1Jersey REST Service/*

Above two steps are required for initial setup, below is our Hello World JAX-RS service class.

初始设置需要上面的两个步骤,下面是我们的Hello World JAX-RS服务类。

package com.journaldev.jaxrs.service;import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;@Path("/test")
public class TestService {@GET@Path("/hello/{msg}")public String sayHello(@PathParam(value="msg") String msg){return "Hello "+msg;}
}

Just export it as WAR file and then access it in the browser as shown in below image.

只需将其导出为WAR文件,然后在浏览器中对其进行访问,如下图所示。

You can change the last part of URL and returned message will change accordingly.

您可以更改URL的最后一部分,返回的消息也将相应更改。

You can see how easy it was to create RESTful web service using JAX-RS API. However there is more to it, follow below articles to learn more.

您可以看到使用JAX-RS API创建RESTful Web服务是多么容易。 但是,还有更多内容,请按照以下文章了解更多信息。

  1. Restful Web Services

    宁静的Web服务
  2. RESTEasy Tutorial

    RESTEasy教程
  3. Jersey Tutorial

    泽西教程

That’s all for a quick introduction of java web services, finally if you are preparing for any interview then go through Web Services Interview Questions.

这就是快速介绍Java Web服务的全部内容 ,最后,如果您准备进行任何面试,请阅读Web服务面试问题 。

References: JAX-WS Oracle Page, JAX-RS Oracle Page

参考: JAX-WS Oracle Page , JAX-RS Oracle Page

翻译自: https://www.journaldev.com/9191/java-web-services-tutorial

java web 教程



推荐阅读
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
  • Linux环境下的PHP7安装与配置指南
    本文详细介绍了如何在Linux操作系统中安装和配置PHP7,包括检查当前PHP版本、升级PHP以及配置MySQL支持等步骤,适合后端开发者参考。 ... [详细]
  • django项目中使用手机号登录
    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数function.py文件se ... [详细]
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
  • 初学者必备:iBATIS入门指南与常见问题解决
    本文旨在为iBATIS初学者提供一份详细的入门指南,并针对官方文档中示例不足的问题提出解决方案。适合零基础学习者。 ... [详细]
  • mybatis相关面试题 ... [详细]
  • 探讨如何利用Visual Basic (VB) 将十六进制或二进制字符串写入Windows注册表的方法。 ... [详细]
  • 本文旨在探讨Linux系统中两种重要的进程间通信(IPC)机制——System V和POSIX的标准及其特性,为开发者提供深入的理解。 ... [详细]
  • 使用URLHttpConnection获取并展示图片至ImageView的方法
    本文介绍如何通过URLHttpConnection方式从网络加载图片,并将其显示在Android应用的ImageView组件上。包括布局文件和Java代码的具体实现。 ... [详细]
  • 获取年月日,之前的日期不能选择日历cCalendar.getInstance();获取系统的工具类【可以获取时间】DatePickerDialogdate ... [详细]
  • 优化Nginx中PHP-FPM模块配置以提升性能
    通过调整Nginx与PHP-FPM之间的配置,可以显著提高Web服务器处理PHP请求的速度和效率。本文将详细介绍如何针对不同的应用场景优化PHP-FPM的各项关键参数。 ... [详细]
  • 搜索引擎架构设计
    本文详细介绍了搜索引擎的主要组成部分,包括爬虫模块、索引模块和搜索模块。其中,索引模块采用了高效的二元分词技术进行数据存储,而搜索模块则基于ASP.NET框架实现了一个用户友好的界面和高效的搜索算法。 ... [详细]
  • 在现代移动应用开发中,尤其是iOS应用,处理来自服务器的JSON数据是一项基本技能。无论是使用Swift还是PHP,有效地解析和利用JSON数据对于提升用户体验至关重要。本文将探讨如何在Swift中优雅地处理JSON,以及PHP中处理JSON的一些技巧。 ... [详细]
  • DropBlock:一种卷积网络的正则化技术
    本文详细探讨了DropBlock这一正则化方法在卷积神经网络中的应用与效果。通过结构化的dropout方式,即在特征图中连续区域内的单元同时被丢弃,DropBlock有效解决了传统dropout在卷积层应用时效果不佳的问题。更多理论分析及其实现细节可参考原文链接。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
author-avatar
陆星星陆星星风_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有