servlet跨web请求方法

问题描述

现在在做一个项目(系统A),是用java+struts1+webLogic写的。PM说有另外一个系统(系统B)要调用我们的系统,让写一个外部的API。协议是Https,方法是servlet(post提交)+json。我简单模拟了A系统(tomcat+servlet),想做的事情是画面上有两个Text框:<input type="text" name="before" /><input type="text" name="after" />在before中输入数字1,然后提交到后台调用service()方法,在方法里将before作为参数去请求调用系统B的接口,接口内容比方是让before+1,再把结果返回到系统A的画面after里。请教各位帮忙搭一下两边的架子:1.用什么方法去请求,请求的路径是什么样的结构2.参数的传递与返回3.接口是怎样定义的以及如何调用在网上查了好久,就是找不到自己需要的。试了下RequestDispatcher,要求请求的地址以“/”为开头,是在一个系统里。而我这2个系统是用的不一样的Web端口,所以感觉RequestDispatcher不能实现。

解决方案

1. 新项目可以采用Apache httpClientDefaultHttpClient httpClient = new DefaultHttpClient();HttpGet getRequest = new HttpGet("https://xxxxxxx");getRequest.addHeader("accept", "application/json"); HttpResponse response = httpClient.execute(getRequest); if (response.getStatusLine().getStatusCode() != 200) {throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());} BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); String output;System.out.println("Output from Server .... n");while ((output = br.readLine()) != null) {System.out.println(output);}结果是json数据2.采用spring 提供的RestTemplateHttpHeaders headers = new HttpHeaders();headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);ResponseEntity<String> response = getRestTemplate().exchange(url, HttpMethod.GET, entity, String.class);String responseBody = response.getBody();只用过这两种其他的在想吧
解决方案二:
1、你写接口就行,至于测试直接用浏览器访问你的接口就行,检查返回结果是不是正确。2、struts1 返回json 可以参考http://ipc.iteye.com/blog/705749struts1你估计没问题,有问题的话google搜个例子,返回json格式数据需要json的jar包。3、https 可参考http://flysky7931.iteye.com/blog/305074http://willtea.iteye.com/blog/1941879
解决方案三:
兄弟,你搞复杂了。你现在是要提供一个接口给对方。你只要考虑三步:第一,基本的servlet。相信这个你会的,第二步,json数据解析与处理。servet传数据你会把,接收数据会吧。json数据知道是什么吧。一般接口的处理,肯定是以一定的数据结构作为返回的。即使调用的参数不对,接口都要给出反馈的。所以只要调用接口就要给出反馈。这个在于你业务怎么处理,一些出现的错误也要规划到接口返回中去。你json大概可以这么设计 result:{flag:'ok',data;'',description:''}。 如果返回的类型分类比较多,可以考虑给返回编号,成功返回码是1,其他的都可以具体分个编号,这样调试根据返回编号就可以知道接口调用错误原因了,你看看微信的接口就是这么干的,当然大多数都是这么干的。第三部:了解下webLogic 怎么发布https的servlet。这些都解决了,你的任务也就完成了。有什么问题,私我,谢谢。

时间: 2025-01-07 05:03:46

servlet跨web请求方法的相关文章

深入理解jquery跨域请求方法_jquery

项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果,但没有执行success方法 总算搞定了,记录一下 function TestAjax() { $.ajax({ type : "get", async : false, url : "ajaxHandler.ashx", //实际上访问时产生的地址为: ajax.ashx?callbackfun=jsonpCallback&id=10 data : {id : 10}, cache

JavaScript跨域请求RESTful Web Service

当我们用js请求RESTful Web Service的时候,通常会出现跨域无法访问的问题,也就是无法正常得到我们要的值.jsonp是个解决问题的方法.但是,我们希望访问RESTful Web Service就像一般的ajax方法一样,不用每个都去搞一个jsonp和callback.这就需要我们在服务端进行一些设置,下面我用一个简单的 Filter来进行说明,其他比较复杂的情况根据自己的需求进行改动. import java.io.IOException; import javax.servle

使用CORS实现JavaWeb跨域请求问题的方法_java

之前用jsonp 解决跨域问题,现在用CORS实现跨域请求解决java 跨域问题: 主要代码如下 package com.hy.fliter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.

java web跨域请求

Java  web中如何跨域请求呢? 使用jsonp,详情请参考:http://json-p.org/ 页面代码如下: Html代码   <!DOCTYPE html>   <html>   <head lang="en">       <meta charset="UTF-8">       <title></title>       <script type="applica

跨域请求的完美解决方法(JSONP, CORS)_基础知识

一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题.解决方法有JSONP,Flash等等. JSONP 我们发现,Web页面上调用js文件时不受是否跨域的影响,凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>.<img>.<iframe>.那就是说如果要跨域访问数据,就服务端只能把数据放在js格式的文件里.恰巧我们知道JSON可以简洁的描述复杂数据,而且JSON还被js原生支持,所以在客户端几乎可以随心所欲的处

基于CORS实现WebApi Ajax 跨域请求解决方法

概述 ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题,特别各种APP万花齐放的今天,API的跨域请求是不能避免的. 在默认情况下,为了防止CSRF跨站的伪造攻击(或者是 javascript的同源策略(Same-Origin Policy)),一个网页从另外一个域获取数据时就会收到限制.有一些方法可以突破这个限制,那就是大家熟知的JSONP, 当然这只是众多

ASP.NET开发web应用过程中遇到的javascript跨域请求问题

解决方案 不提倡跨域的post请求. 0.jquery中ajax的跨域方案jsonp .ashx代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace KB.DSN.Web.API.Tokens { /// <summary> /// Summary description for Get /// </summary> public class

jquery+ajax实现跨域请求的方法

 这篇文章主要介绍了jquery+ajax实现跨域请求的方法,详细介绍了前台及后台的处理方法,是非常实用的技巧,需要的朋友可以参考下     本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为 "jsonp" :type 只能为 GET 前台请求代码如下: 代码如下: $.ajax({ type: "GET", url: "http://www.xxx.com/Rest/Val

ASP.net Web API跨域请求安全验证怎么做?

问题描述 如题,javascript 直接访问支持跨域请求的web API 如何做安全验证呢? 解决方案 解决方案二:彻底沉没,顶起!解决方案三:你可以参考几个网站的API,登录成功后,返回一个授权字符串,每次调用API的时候,都需要带此字符串去访问,一定时间后,授权字符串失效,需要重新获取解决方案四:好像我正打开着这方面资料的网页http://blog.csdn.net/hereweare2009/article/details/3968582/解决方案五:参考oauth授权接口解决方案六:两