原来用的是eclipse java oxygen,就是基础版,由于要进行web开发,下了一个eclipse jee oxygen,当然,应该有办法不用下,不过我怕后续再出现什么插件没装地问题
干脆下了eclipse jee。
链接(64bit windows):eclipse jee for Windows 64bit
32bit下载链接:eclipse jee for windows 32bit
由于之前也用eclipse所以jdk什么的我都有,如果没有java jdk的话要去下载然后环境配置什么的网上一搜一堆。
接下来是下tomcat: tomcat download
我下的是红框里那个,具体根据你自己的需要下载对应的版本
下好了解压一下就可以了,tomcat也是需要配置环境的
以上步骤可以参考:点击打开链接
链接里说得比较全而且有图,不过我的tomcat解压后测试安装配置是否成功那一步我的bin文件下的执行文件打不开,但是浏览器打开http://localhost:8080是会显示tomcat的
接下来是新建web project,servlet等,可以参考:点击打开链接 的第五点和第七点,链接里的说明很详尽
接下来说一说我开发的一个最简单的交互程序:
1、重写servlet中的doGet方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getOutputStream().write("success".getBytes());
}
只有一句很简单的返回“success”的语句。
2、开发Android端:
布局文件里只有一个Button,在这里我是使用HttpURLConnection进行网络访问的
主代码如下:
public class MainActivity extends Activity {
public static final int SUCCESS = 1, FAIL = 2;
//servlet的URL
public static final String URLString = "http://10.20.247.191:8080/MyWebFirst/MyServlet";
Button btn;
TextView tv;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if(msg.what==SUCCESS) {
tv.setText((String)msg.obj);
}else if(msg.what==FAIL) {
tv.setText("失败了。。。");
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.btn);
tv = (TextView)findViewById(R.id.tv);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new Thread() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
//新建URL
URL url = new URL(URLString);
//新建HttpURLConnection
HttpURLConnection con = (HttpURLConnection)url.openConnection();
//设置请求方式及超时时间
con.setRequestMethod("GET");
con.setConnectTimeout(3000);
//在调用getInputStream()方法时会间接调用connect方法,所以可以不用显示调用connect()
//获取返回数据的输入流
InputStream is = con.getInputStream();
//新建输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = 0;
//建立缓冲区
byte[] buffer = new byte[500];
//读取返回数据至缓冲区
while((len=is.read(buffer))!=-1)
baos.write(buffer, 0, len);
baos.flush();
is.close();
//获取返回数据
byte[] res = baos.toByteArray();
String ress = new String(res);
Message msg = Message.obtain();
msg.what = SUCCESS;
msg.obj = ress;
handler.sendMessage(msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Message msg = Message.obtain();
msg.what = FAIL;
handler.sendMessage(msg);
}
}
}.start();
}
});
}
}
当然,这里我可能会有很多可优化的地方,我暂时没考虑代码和内存的优化问题。
public static final String URLString = "http://10.20.247.191:8080/MyWebFirst/MyServlet";
这里的10.20.247.191是主机ipv4地址,可以打开cmd输入ipconfig查看:
MyWebFirst是我的web工程的名字,MyServlet是我的servlet的名字:
运行servlet:
然后点击手机上的app中的Button:
先探索到这里。。。下次继续。
补充一下,tomcat中端口占用的解决方法: