android简单解析本地Tomcat数据

我的博客:http://blog.csdn.net/wanxuedong

      前言:本来是不打算写的,后来发现这部分知识忘的太快了,今天重新弄得时候都快是从头开始了,吓死我,所以我就赶紧写一篇博客来压压惊。

1:Tomcat
      简单介绍一下吧,Tomcat是一个可以安装在自己电脑的上的软件,可以帮助我们从我们电脑里面通过局域网获取我们电脑里面的数据,相当于一个小小的服务器,我们平时做的练习基本上都是单机型的,有了这个小型服务器,我们就可以让我们的软件往正式的软件更靠近一步了。

安装我就不说了,网上有教程。

说重点:
      1:等到我们安装好了这个软件后,我们进入到路径
bin下,里面有个名字叫start.bat的文件,我们点击打开,这是就会打开类似命令行的窗口,这就可以让我们的服务器运行了,一些的数据传递都建立在这个文件打开之后进行。
正常情况下,打开的界面等一小会应该是这个样的:
这里写图片描述
如果有的同学打开有异常,那应该都是java环境没配好,这种问题自己弄。

      2:打开服务器,其实就可以,我们可以在浏览器,里面输入:http://localhost:8080
不如意外就会出现Tomcat的界面,这表示Tomcat的安装没什么问题。
接下来我们进入文件:
conf里面,找到一个文件叫server.xml的文件,然后以编辑的形式打开,我们找到里面的这一个部分(其实就在最下面):
这里写图片描述
并且在下面添加这样一句话:

<Context path="/aa" docBase="C:\AA" />

      什么意思呢?
      意思就是我们设置一个虚拟目录,例如,我们现在在我们的网页里面输入
:http://localhost:8080/aa/mytext.txt
      意思就是访问到我们C盘下,一个叫AA的文件夹,再下面的一个叫mytext的文本文档,并且显示在网页上,如果是乱码,那就是编码格式问题,这个问题自己解决,懂了没?
      就是弄一个供我们网页上访问的虚拟目录,我们也可以把这个位置发到我们手机上,不过呀改一个地方,那就是localhost这部分得改,这个单词意思是本地的意思,我们电脑访问自己里面的东西自然没事,但是到手机上我们就得改了,这部分我们要改成我们电脑的ip,例如我的电脑ip是:192.168.1.15,那么这个路径要让我们的手机访问的话就得改成http://192.168.1.15:8080/aa/mytext.txt才行,不过还有一个前提,那就是手机和电脑必须连在同一个局域网下。
      这样好了以后我们接着往下做。

      代码
接下来我给出我的app代码:比较简单,同学们容易看,但是不包括json解析,如果要看json解析,可以看我另外一篇文章:
http://blog.csdn.net/wanxuedong/article/details/54408247
代码如下:

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.view.View;
import android.widget.TextView;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private URL url;
    HttpURLConnection urlConnection;
    private InputStream inputstream;
    private BufferedReader reader;
    private StringBuilder stringbuilder;
    private final int get = 100;
    private TextView show;
    private Button send;
    private Handler handler = new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
        switch (msg.what)
        {
            case get:
                show.setText(msg.obj.toString());
        }
    }
    };;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initEvent();

    }
    private void initView() {
        show = (TextView)findViewById(R.id.show);
        send = (Button)findViewById(R.id.send);
    }

    private void initData() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                    url = new URL("http://192.168.1.15:8080/aa/get_data.json");
                    urlConnection = (HttpURLConnection)url.openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setReadTimeout(8000);
                    urlConnection.setConnectTimeout(8000);
                    urlConnection.setDoOutput(true);
                    urlConnection.connect();
                    if (urlConnection.getResponseCode() == 200)
                    {
                        stringbuilder = new StringBuilder();
                        inputstream = urlConnection.getInputStream();
                        reader = new BufferedReader(new InputStreamReader(inputstream, "gbk"));
                        String str;
                       while ((str = reader.readLine()) != null)
                        {
                            stringbuilder.append(str);
                        }
                        Message message = new Message();
                        message.what = get;
                        message.obj = stringbuilder.toString();
                        handler.sendMessage(message);
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }

    private void initEvent() {
        send.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        initData();
    }
}

最后说几句:android对于网络请求的操作我们都要放在线程里面,否则就会出错,而且要记得给添加网络权限,否则不能访问,最后是ip,是无线网的ip(在cmd框中输入ipconfig可以看见这些ip),如果分不清的话,可以发个链接给手机,不断换ip,看看哪个手机可以访问,就用哪个。

代码易懂,我也不解释了,有什么问题欢迎大家前来提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值