Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建REST客户端,响应应该在JSP页面中出现?_Java_Rest_Jsp_Rest Client_Advanced Rest Client - Fatal编程技术网

Java 如何创建REST客户端,响应应该在JSP页面中出现?

Java 如何创建REST客户端,响应应该在JSP页面中出现?,java,rest,jsp,rest-client,advanced-rest-client,Java,Rest,Jsp,Rest Client,Advanced Rest Client,我开发了使用rest开发的服务器端web服务。我的代码在检查邮递员应用程序时运行良好。但是我想得到JSP页面中所有CRUD操作的响应。每个响应都应该显示在JSP页面中,使用的数据应该是JSP页面。您能提供一个开发REST客户端的方法吗。我是新来的Rest客户 Product.java public class Product { private long pid; private String pname; private String category; private float pric

我开发了使用rest开发的服务器端web服务。我的代码在检查邮递员应用程序时运行良好。但是我想得到JSP页面中所有CRUD操作的响应。每个响应都应该显示在JSP页面中,使用的数据应该是JSP页面。您能提供一个开发REST客户端的方法吗。我是新来的Rest客户

Product.java

public class Product {

private long pid;
private String pname;
private String category;
private float price;
private long stock;
private String remarks;

public Product()
{

}

public Product(long pid,String pname,String category,float price,long stock,String remarks){
    this.pid=pid;
    this.pname=pname;
    this.category=category;
    this.price=price;
    this.stock=stock;
    this.remarks=remarks;
}
public long getPid() {
    return pid;
}
public void setPid(long pid) {
    this.pid = pid;
}
public String getPname() {
    return pname;
}
public void setPname(String pname) {
    this.pname = pname;
}
public String getCategory() {
    return category;
}
public void setCategory(String category) {
    this.category = category;
}
public float getPrice() {
    return price;
}
public void setPrice(float price) {
    this.price = price;
}
public long getStock() {
    return stock;
}
public void setStock(long stock) {
    this.stock = stock;
}
public String getRemarks() {
    return remarks;
}
public void setRemarks(String remarks) {
    this.remarks = remarks;
}
}

DatabaseClass.java

public class DatabaseClass {

private static Map<Long, Product> products=new HashMap<>();

public static Map<Long, Product> getProduct()
{
    return products;
}   
公共类ProductServiceImpl实现ProductService{

ProductDaoImpl productService=new ProductDaoImpl();

@GET
@Produces(MediaType.APPLICATION_XML)
public List<Product> getProducts() {

    return productService.getAllProducts();
}

@GET
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML)
public Product getProduct(@PathParam("pid") long pid)
{
    return productService.getProduct(pid);
}

@POST
@Produces(MediaType.APPLICATION_XML) 
@Consumes(MediaType.APPLICATION_XML)
public Product addMessage(Product product)
{
    return productService.addProduct(product);
}

@PUT
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML) 
@Consumes(MediaType.APPLICATION_XML)
public Product updateProduct(@PathParam("pid") long pid,Product product)
{
    product.setPid(pid);
    return productService.updateProduct(product);
}

@DELETE
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML) 
public void deleteMessage(@PathParam("pid") long pid)
{
    productService.deleteProduct(pid);
}

@GET
@Path("category/{category}")
@Produces(MediaType.APPLICATION_JSON)
public List<Product> getProductsBasedOnCategory(@PathParam("category") String category) {

    return productService.getProductByCategory(category);
}


@GET
@Path("basedOnPrice")
@Produces(MediaType.APPLICATION_JSON)
public List<Product> getProductsBasedOnPrice(@QueryParam("startPrice") float startPrice, @QueryParam("endPrice") float endPrice) {
            if(startPrice>0 && endPrice>0)
            {
            return productService.getProductsBasedOnPrice(startPrice, endPrice);    
            }
    return productService.getAllProducts();
}
ProductDaoImpl productService=new ProductDaoImpl();
@得到
@生成(MediaType.APPLICATION\u XML)
公共列表产品(){
return productService.getAllProducts();
}
@得到
@路径(“/{pid}”)
@生成(MediaType.APPLICATION\u XML)
公共产品getProduct(@PathParam(“pid”)长pid)
{
返回productService.getProduct(pid);
}
@职位
@生成(MediaType.APPLICATION\u XML)
@使用(MediaType.APPLICATION_XML)
公共产品添加消息(产品)
{
返回productService.addProduct(产品);
}
@放
@路径(“/{pid}”)
@生成(MediaType.APPLICATION\u XML)
@使用(MediaType.APPLICATION_XML)
公共产品更新产品(@PathParam(“pid”)长pid,产品)
{
产品设定pid(pid);
返回productService.updateProduct(产品);
}
@删除
@路径(“/{pid}”)
@生成(MediaType.APPLICATION\u XML)
public void deleteMessage(@PathParam(“pid”)长pid)
{
productService.deleteProduct(pid);
}
@得到
@路径(“类别/{category}”)
@产生(MediaType.APPLICATION_JSON)
公共列表getProductsBasedOnCategory(@PathParam(“category”)字符串类别){
返回productService.getProductByCategory(类别);
}
@得到
@路径(“基准价格”)
@产生(MediaType.APPLICATION_JSON)
公共列表getProductsBasedOnPrice(@QueryParam(“startPrice”)浮动startPrice,@QueryParam(“endPrice”)浮动endPrice){
如果(起始价格>0&&endPrice>0)
{
return productService.getProductsBasedOnPrice(startPrice,endPrice);
}
return productService.getAllProducts();
}

}

您可以使用Jquery创建承诺或ajax调用来与后端交互。
另一种方法是,如果您只使用restful服务,而不使用spring MVC模块,则使用angularjs,即Angular1.x,其中您可以使用https模块进行restful调用,并使用路由模块路由页面(这也将使您的应用程序成为SPA)

例如,您可以使用jersey库

然后您将得到类似这样的东西(JSON或XML到字符串)

。。。
导入com.sun.jersey.api.client.client;
导入com.sun.jersey.api.client.ClientResponse;
导入com.sun.jersey.api.client.WebResource;
//创建客户端
Client=Client.create();
WebResource WebResource=client.resource(“http://localhost:8080/");
ClientResponse response=webResource.accept(“application/json”).get(ClientResponse.class);
//状态200成功。
if(response.getStatus()!=200){
System.out.println(“失败,HTTP错误代码为:+response.getStatus());
字符串错误=response.getEntity(String.class);
System.out.println(“错误:+错误”);
返回;
}
字符串输出=response.getEntity(String.class);
System.out.println(“从服务器输出…”\n);
系统输出打印项次(输出);
...

此代码在控制台上打印响应。我想在jsp页面上显示响应。如果您想要rest api文档,请集成swagger api。
@Path("/products")
ProductDaoImpl productService=new ProductDaoImpl();

@GET
@Produces(MediaType.APPLICATION_XML)
public List<Product> getProducts() {

    return productService.getAllProducts();
}

@GET
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML)
public Product getProduct(@PathParam("pid") long pid)
{
    return productService.getProduct(pid);
}

@POST
@Produces(MediaType.APPLICATION_XML) 
@Consumes(MediaType.APPLICATION_XML)
public Product addMessage(Product product)
{
    return productService.addProduct(product);
}

@PUT
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML) 
@Consumes(MediaType.APPLICATION_XML)
public Product updateProduct(@PathParam("pid") long pid,Product product)
{
    product.setPid(pid);
    return productService.updateProduct(product);
}

@DELETE
@Path("/{pid}")
@Produces(MediaType.APPLICATION_XML) 
public void deleteMessage(@PathParam("pid") long pid)
{
    productService.deleteProduct(pid);
}

@GET
@Path("category/{category}")
@Produces(MediaType.APPLICATION_JSON)
public List<Product> getProductsBasedOnCategory(@PathParam("category") String category) {

    return productService.getProductByCategory(category);
}


@GET
@Path("basedOnPrice")
@Produces(MediaType.APPLICATION_JSON)
public List<Product> getProductsBasedOnPrice(@QueryParam("startPrice") float startPrice, @QueryParam("endPrice") float endPrice) {
            if(startPrice>0 && endPrice>0)
            {
            return productService.getProductsBasedOnPrice(startPrice, endPrice);    
            }
    return productService.getAllProducts();
}
    ...
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.ClientResponse;
    import com.sun.jersey.api.client.WebResource;

    // Create Client
         Client client = Client.create();

         WebResource webResource = client.resource("http://localhost:8080/<yourpath to resource>");

         ClientResponse response = webResource.accept("application/json").get(ClientResponse.class);

         // Status 200 is successful.
         if (response.getStatus() != 200) {
             System.out.println("Failed with HTTP Error code: " + response.getStatus());
             String error= response.getEntity(String.class);
             System.out.println("Error: "+error);
             return;
         }

         String output = response.getEntity(String.class);

         System.out.println("Output from Server .... \n");
         System.out.println(output);
         ...