WEB项目怎么获取不同服务器数据

WEB项目怎么获取不同服务器数据,第1张

第一种,网页前端用响应式设计适配手机客户端界面,然后手机客户端直接通过WebView控件打开页面。优点,对于服务端已经有成型的产品来说,客户端开发成本小.缺点,展示的效果和性能不会很好,响应慢,影响交互体验。

第二种,服务端封装好API,客户端做好原生交互界面,然后通过服务端提供的API请求数据在界面显示。优点,客户端性能和交互体验可以得到保障(当然,前提是设计师和程序员比较靠谱)。缺点,开发成本会相对第一种方案的大,尤其是Android,适配需要一些精力和时间的。

一:基于Http协议获取数据方法。二:基于SAOP协议获取数据方法,

这篇文章主要是将关于使用Http协议获取服务器端数据,这里我们采取的服务器端技术为java,框架为Struts2,或者可以有Servlet,又或者可直接从JSP页面中获取数据。

那么,接下来我们便开始这一路程:

首先:编写服务器端方法,我这里采用的MVC框架是Struts2,目的很单纯,就是为了以后做个完整的商业项目,技术配备为:android+SSH。当然,篇幅有限,我这里就直接用Strtus2而已。

服务器端:新建WebProject ,选择Java ee 5.0.

为了给项目添加Struts2的支持,我们必须导入Struts2的一些类库,如下即可(有些jar包是不必的,但是我们后来扩展可能是要使用到的,就先弄进去):

1: xwork-core-2.2.1.1.jar

2: struts2-core-2.2.1.1.jar

3: commons-logging-1.0.4.jar

4: freemarker-2.3.16.jar

5: ognl-3.0.jar

6: javassist-3.7.ga.jar

7:commons-ileupload.jar

8:commons-io.jar

9:json-lib-2.1-jdk15.jar 处理JSON格式数据要使用到

10:struts2-json-plugin-2.2.1.1.jar基于struts2的json插件

以上的jar包,需要放在WebRoot/WEB-INF/lib目录下

然后在web.xml文件中敲下:

View Code

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- 定义Struts2的核心控制器:FilterDispatcher -->

<filter>

<!-- 定义核心Filter的名称 -->

<filter-name>struts2</filter-name>

<!-- 定义Filter的实现类 -->

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

然后编写struts.xml文件,并放在WebRoot/WEB-INF/lib目录下:如下代码:

View Code

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<!-- setting encoding,DynamicMethod,language

<constant name="struts.custom.i18n.resources" value="messageResource"></constant>

-->

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

<!-- add package here extends="struts-default"-->

<package name="dongzi" extends="json-default"><!--需要将struts-default改为json-default-->

<!-- setting action -->

<action name="login" class="com.dongzi.action.loginAction" method="login">

<result type="json"></result><!--返回值类型设置为json,不设置返回页面-->

</action>

</package>

</struts>

配置好后,我们再根据<action>标签内容来编写action。方法为method对应的login,类名为loginAction,

注意:包继承为:json-default ,输出结果类型为json

如下:

View Code

public class loginAction extends ActionSupport implements

ServletRequestAware,ServletResponseAware {

/**

*

*/

private static final long serialVersionUID = 1L

HttpServletRequest request

HttpServletResponse response

public void setServletRequest(HttpServletRequest request) {

this.request=request

}

public void setServletResponse(HttpServletResponse response) {

this.response=response

}

public void login(){

try {

//HttpServletRequest request =ServletActionContext.getRequest()

// HttpServletResponse response=ServletActionContext.getResponse()

this.response.setContentType("text/htmlcharset=utf-8")

this.response.setCharacterEncoding("UTF-8")

if(this.request.getParameter("username").equals("123456")){

this.response.getWriter().write("真的很奇怪,日本人!")

}else if(this.request.getParameter("username").equals("zhd")){

this.response.getWriter().write("没有错,我就是东子哥!")

}else{

this.response.getWriter().write("我就是东子哥!")

}

//将要返回的实体对象进行json处理

// JSONObject json=JSONObject.fromObject(this.getUsername())

//输出格式如:{"id":1, "username":"zhangsan", "pwd":"123"}

// System.out.println(json)

// this.response.getWriter().write(json.toString())

/**

JSONObject json=new JSONObject()

json.put("login", "login")

response.setContentType("text/htmlcharset=utf-8")

System.out.println(json)

byte[] jsonBytes = json.toString().getBytes("utf-8")

response.setContentLength(jsonBytes.length)

response.getOutputStream().write(jsonBytes)

**/

/**

JSONObject json=new JSONObject()

json.put("login", "login")

byte[] jsonBytes = json.toString().getBytes("utf-8")

response.setContentType("text/htmlcharset=utf-8")

response.setContentLength(jsonBytes.length)

response.getOutputStream().write(jsonBytes)

response.getOutputStream().flush()

response.getOutputStream().close()

**/

} catch (Exception e) {

e.printStackTrace()

}

// return null

}

}

游戏服务器的数据可以读取。根据查询相关公开信息显示,在Lua中,游戏进度文件是简单的可执行的Lua代码的文本文件,程序员或者设计师可以通过进度文件来获取当前游戏的状态,读取游戏进度就和执行Lua脚本一样简单。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/712528.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-06
下一篇2023-08-07

发表评论

登录后才能评论

评论列表(0条)

    保存