Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Jsp RESTfulWebService:服务器如何发送视图和;JSON/XML?_Jsp_Rest_Architecture_Restlet - Fatal编程技术网

Jsp RESTfulWebService:服务器如何发送视图和;JSON/XML?

Jsp RESTfulWebService:服务器如何发送视图和;JSON/XML?,jsp,rest,architecture,restlet,Jsp,Rest,Architecture,Restlet,我以前编写过一些代码,尽管是小的RESTfulWeb服务(RWS)。但在这些情况下,视图(表示层)可以完全控制,即视图是平台上本地运行的应用程序(智能手机?)。服务器上有独立的视图和RWS控制,可以发送JSON(或文本或任何方便的表示,让我们假设JSON只用于主题) 现在来到web:视图(即HTML页面)驻留在服务器上。该服务器现在应该提供HTML和JSON。我的问题是这两个系统是如何分离(或耦合)的?以下是一个例子: 问题: 在图像中的步骤(X),当墙页返回给客户端时,所有墙柱都填充在该页上

我以前编写过一些代码,尽管是小的RESTfulWeb服务(RWS)。但在这些情况下,视图(表示层)可以完全控制,即视图是平台上本地运行的应用程序(智能手机?)。服务器上有独立的视图和RWS控制,可以发送JSON(或文本或任何方便的表示,让我们假设JSON只用于主题)

现在来到web:视图(即HTML页面)驻留在服务器上。该服务器现在应该提供HTML和JSON。我的问题是这两个系统是如何分离(或耦合)的?以下是一个例子:

问题:

  • 在图像中的步骤(X),当墙页返回给客户端时,所有墙柱都填充在该页上。如果它是一个客户端,其视图不是由服务器提供的,那么它可能只返回墙柱的JSON。那么在这种情况下是如何处理的呢?服务器是否应返回包含所有呈现/格式化逻辑的服务器端页面(SSP)

  • 在步骤(Y)中,用户希望更新页面上的内容,并向服务器发送jQuery+ajaxhttp:PUT(在某个URI处,因此墙页是一个facade?)

  • 困惑(=问题?:-)

    • 当向服务器发送请求时,如何区分JSON+SSP的关注点

    • 基于web的客户端就是这样设计的吗??返回的第一个页面(X)实际上是一个SSP,其中包含对服务器进行Ajax/REST调用的所有逻辑

    • 那么如何进行一个好的页面构造,即JSP(比如)+jquery+CSS+AJAX??(在这种情况下,是否有可能采用无SSP设计?即,只有HTML+jquery+CSS??)

    只是有点困惑


    提前感谢

    web浏览器只是一个渲染引擎。它将只呈现和执行web服务器发送给它的内容。 在您的情况下,您必须发送浏览器html,无论该html是静态的还是在服务器上生成的,都与浏览器无关。 当浏览器呈现html时,它还运行您指定的任何js/css代码

    * Is this how web-based clients are designed?? The first page returned (X) is actually a SSP which includes all the logic for making Ajax/REST calls to the server??
    
    是的,您发送到浏览器的html包含js代码,该代码告诉浏览器在发生某些事件(如单击按钮或加载页面)时该做什么

    * How does one then go about a good page construction i.e., JSP (say) + jquery + CSS + AJAX?? (Is it possible to have a NO SSP design in this case? i.e. only HTML + jquery + CSS??)
    
    是的,你可以只提供一个静态html页面,其中包含所有正确的js,浏览器就会完成它的工作


    我希望这能回答你的问题

    我想我不太明白你到底需要什么

    但是,为什么不简单地查看请求内容类型头并返回客户机所请求的内容呢?如果他们要求HTML,请向他们发送HTML。如果他们要求JSON,请向他们发送JSON


    你可能想考虑像JAX-RS这样的内容,它会根据内容类型发送给代码,也许这会减轻你的一些痛苦。我的问题是关于与REST的集成。服务器将返回JSON,但我也希望它返回相应的页面,该页面将根据JQuery“呈现”该JSON。问题是我是否应该将“第一个”页面作为JSP生成,并将其作为每个REST调用的外观??(生成JSP会非常混乱……但可能就是这样做的吧???)问题在于将请求/响应与视图分离。看这个,所以我的困惑是w.r.t.格式。我只提供JSON服务。现在,用户请求一个“posts”页面,我的“Restlet引擎”配置为发送墙的posts集的Json。问题是HTML(或前端)也要从返回JSON的服务器获取——这意味着我必须创建两个表示:如上图所示:墙上的GET返回JSP,然后通过JSON对墙上的每个后续更新('因为它只是一小部分')。听起来正确吗?很明显,你需要两种表述。一个HTML和一个JSON。关于这样做的困惑是来自一个请求吗?您可以轻松地执行GET on wall.jsp并让它返回完全呈现的页面,然后使用内部ajax调用updatewall.jsp返回JSON格式。或者,您可以使用一个wall.jsp来查看请求的内容类型和参数,并返回正确的HTML或JSON。当浏览器点击wall.jsp时,它将请求HTML。当ajax命中它时,它将请求JSON。还是我还缺少什么?没有!击中目标!:)这基本上就是我的困惑所在——我错误地认为前端是HTML/CSS/JQuery+Ajax,以及用于传输数据的JSON,而忘记了页面需要由服务器“服务”——因此我对图中的步骤X感到困惑(我以为它可以一步完成——不知道为什么,但这么想!)谢谢!您也可以在Restlet中返回不同的媒体类型。我们有RESTWeb服务,它实际上根据请求的内容类型头为每个资源返回四种不同媒体类型中的一种。JSON、XML、用于高性能用例的Kryo二进制格式,以及帮助开发人员和操作调试的XHTML。(我们还支持其他几种二进制格式,但速度不如Kryo。)