一、教程目的。
本教程的目的在於教會怎么完成android與tomcat服務器的數據交互。
二、開發環境。
Myeclipse8.5+jdk1.6+android2.3
三、開發步驟。
(1)新建一個web項目,並添加struts2支持。
new->webproject
1在項目名稱右鍵,Myeclipse->Add Struts Capabilities

struts specification 選擇struts2.1
然后選擇完成

2新建一個action類
package action;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class AndroidAction extends ActionSupport {
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
public void test()
{
String str = request.getParameter("test");
System.out.println(str);
writeOut("hello android");
}
/**
* 返回值
* @param jsonStr
*/
public void writeOut(String jsonStr) {
response.setContentType("html/txt");
response.setCharacterEncoding("utf-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
try {
response.getWriter().write(jsonStr);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.修改struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="androidaction" extends="json-default" namespace="/androidaction">
<action name="test" class="action.AndroidAction" method="test">
<result type="json" name="success">
<param name="contentType">text/html</param>
</result>
<result type="json" name="error">
<param name="contentType">text/html</param>
</result>
</action>
</package>
</struts>
4.發布web項目 AndroidWebserver上右鍵 run as Myeclipse server application

(2)新建一個android項目。
記得要加入commons-httpclient-3.1.jar依賴包
新建一個鏈接工具類ConnUtil.java代碼如下
public class HelloApacheServerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ConnUtil cu = new ConnUtil();
Button btn = (Button)findViewById(R.id.sendMessage);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
String s = cu.sayHello();
Toast.makeText(HelloApacheServerActivity.this,s,Toast.LENGTH_SHORT).show();
}
});
}
}
對了,android項目要記得添加網絡訪問權限
<uses-permission android:name="android.permission.INTERNET"/>
最后驗證一下
按下"say hello"按鈕 在myeclipse 的console下可以看到"hello server" 這是從android端發來的消息
同時android會彈出一個Toast "hello android"這是從服務器返回的消息。


最后 完整工程下載:
http://files.cnblogs.com/feifei1010/Desktop.zip
歡迎熱愛安卓開發者加入群共同進步。南京群 220818530,武漢群121592153,,杭州群253603803,廈門群253604146,湖南群217494504,大連群253672904
青島群 257925319
