tomcat+servlet+android搭建及初步使用详解

原来用的是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中端口占用的解决方法:


点击打开链接








猜你喜欢

转载自blog.csdn.net/qq_34215717/article/details/78211294