您的位置:首页 > 编程语言 > Java开发

使用Struts2时为Android端提供数据

2016-12-01 22:52 357 查看

使用Struts2时为Android端提供数据

---ONE Goal,ONE Passion !


勉励自己:

不想过别人安排的命运,只能自己足够强大!趁年轻,不要辜负了曾经的耳语;趁年轻,不要辜负了等待自己的远方;趁年轻,不要辜负了陪着我的她;趁年轻,不要辜负了那份初心! ———勿忘初心!

1. 使用简单的servlet为我们的客户端返回数据.

第一步:编写我们的servlet

public class ServletForAndroid extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String str = "{name:'ltxx',age:'20'}";

response.getWriter().write(str);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}


第二步:在web.xml中配置我们的servlet

<!-- 配置servlet -->
<servlet>
<servlet-name>ServletForAndroid</servlet-name>
<servlet-class>zz.itcast.servlet.ServletForAndroid</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletForAndroid</servlet-name>
<url-pattern>/ServletForAndroid</url-pattern>
</servlet-mapping>


第三步:直接去访问我们的servlet就行了

2.使用Struts2时为我们的客户端返回数据.

第一步:配置使用Struts2的相关jar包



第二步:在web.xml中配置核心过滤器

web.xml中

<!-- 配置struts2的核心过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


第三步:编写我们的action

public class ActionForAndroid extends ActionSupport {

private HttpServletResponse response;

@Override
public String execute() throws Exception {

return super.execute();
}

// 方法中的response 对象不可以使用setServletResponse(HttpServletResponse response)中的对象,因为执行getJson时,setServletXXXX方法还没有执行
public void getJson() throws Exception {

HttpServletResponse response = ServletActionContext.getResponse();
String str = "{name:'ltxx',age:'20'}";

response.getWriter().write(str);

}

/*public void setServletRequest(HttpServletRequest arg0) {

}

public void setServletResponse(HttpServletResponse response) {

System.out.println("--设置response--");
this.response = response;
}*/
}


注意:

getJson()方法中的response对象不可以使用setServletResponse(HttpServletResponse response)中的对象,因为执行getJson时,setServletXXXX方法还没有执行.

第四步:将action配置到Struts.xml中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<!-- Add packages here -->

<package name="android" extends="json-default">
<!-- <result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult" />
</result-types> -->

<action name="android" class="action.ActionForAndroid"
method="getJson">
<result type="json"></result>
</action>
</package>
</struts>


特别注意:

如果想直接返回json字符串.那么

result必须返回的是json.

如果返回json必须重新做一下配置:

1.让我们的package继承至json-default

<package name="android" extends="json-default">


2.或者在package中声明result-types.

<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult" />
</result-types>


预警:千万不要忘记导入一个jar包

struts2-json-plugin-2.3.15.3.jar

第五步:可以访问了啊!

{name:'ltxx',age:'20'}


Fighting…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android struts2.0 servlet