Android中Tomcat的簡單配置和使用


因為學Android已經有一段時間了,但是在學校,服務器方面是個短板啊,沒有專門的服務器拿給我們學生練手,所以只有自己找辦法了。當然,Tomcat就是不二的選擇了。

在網上看了看資料,還是覺得自己記錄下來比較好。

因為我是學Android的,所以jdk什么的已配置好了。如果不知道,請看《java的環境變量配置

 

首先我們先要下載Tomcat:http://tomcat.apache.org/(請自行選擇版本),我用的是Tomcat 7.0.55。

我下載下來是一個壓縮包,選擇好路徑后,進行解壓。(此步驟即安裝)

解壓后的文件有這些:

然后,我們雙擊bin文件夾,找到一個bat文件(windows系統下哈),如圖:

雙擊該文件。(即啟動Tomcat服務)

如果啟動不成功,一般的情況是控制台出來一下立即消失,說明Tomcat沒有找到Java的運行時環境。需要配置jdk的環境變量。

如果啟動成功,會出現以下啟動成功信息:

啟動成功以后,我們打開瀏覽器,在地址欄輸入http://localhost:8080/,即可參見如下界面(輸入:http://127.0.0.1:8080也可以):

此時,我們的Tomcat算是完整的成功啟動了。

如果你要看服務狀態,可點擊ServiceStatus按鈕:

此時,會彈出對話框讓你輸入賬號和密碼,我們先點擊取消,此時會跳轉到另一個頁面:

將該英文翻譯出來,即可知道,是讓我們在cof/tomcat-users.xml中添加虛線框中的那兩句代碼。紅線處的用戶名和密碼就是登陸時需要的。

登陸后的界面如下:(基本配置都能看見)

 

 

下面,我們通過一個簡單的例子來使用一下:

在……apache-tomcat-7.0.55\webapps\ROOT\mytest目錄下放上一張名為tomcat.png的圖片。

(注意:tomcat解壓后的webapps文件夾下的ROOT文件夾是tomcat的默認部署目錄,mytest是我在ROOT文件夾下新建的一個文件夾)

下面,我們做一個Android的圖片查看器:

 先是布局main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="圖片路徑" />
    
    <EditText  android:id="@+id/et_path"
                android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="請輸入圖片路徑"/>
    
    <Button         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="look"
        android:text="查看"/>
    
    <ImageView  android:id="@+id/iv"  
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/ic_launcher"
        android:scaleType="centerInside"/>

</LinearLayout>

然后是MainActivity:

package cn.itcast.imagelooker;

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

import org.apache.http.conn.ConnectTimeoutException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText et_path;
    private ImageView iv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        et_path = (EditText) findViewById(R.id.et_path);
        iv = (ImageView) findViewById(R.id.iv);
    }

    public void look(View v) {
        String path = et_path.getText().toString();
        if (path.equals("")) {
            Toast.makeText(this, "圖片的路徑為空", 1).show();
        } else {
            try {
                // 另一種方式
//                URL url = new URL(path);
//                Bitmap bitmap = null;
//                bitmap = BitmapFactory.decodeStream(url.openStream());
//                iv.setImageBitmap(bitmap);

                // 構建路徑
                URL url = new URL(path);
                // //打開連接
                 HttpURLConnection conn = (HttpURLConnection)
                 url.openConnection();
                 //請求方式
                 conn.setRequestMethod("GET");
                 //超時時間
                 conn.setConnectTimeout(5000);
                Bitmap bitmap = null;
                bitmap = BitmapFactory.decodeStream(url.openStream());
                 if(conn.getResponseCode() == 200){
                 InputStream is = conn.getInputStream();

                // 把流轉化為圖片
                 Bitmap bitmap1 = BitmapFactory.decodeStream(is);
                 if(bitmap1 == null){
                 Toast.makeText(this, "獲取的圖片流為空", 1).show();
                 }else{
                iv.setImageBitmap(bitmap1);
                 }
                 }else{
                 Toast.makeText(this, "輸入的路徑不存在", 1).show();
                 }

            }catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                if (e instanceof MalformedURLException) {
                    Toast.makeText(this, "輸入的路徑格式錯誤", 1).show();
                } else if (e instanceof ConnectTimeoutException) {
                    Toast.makeText(this, "連接超時錯誤", 1).show();
                } else if (e instanceof IOException) {
                    Toast.makeText(this, "獲取數據錯誤", 1).show();
                } else {
                    Toast.makeText(this, "未知錯誤", 1).show();
                }
            }
        }
    
}}

另外,千外不要忘記權限:

<uses-permission android:name="android.permission.INTERNET"/>

運行程序。如圖:

(在輸入框中正確輸入IP地址后,點擊按鈕可查看名為tomcat.png的圖片)

注意:為什么輸入是的地址是100.70.132.251?

100.70.132.251這個地址是通過ipconfig獲取得到的計算機地址。Genymotion與android模擬器(simulator)不同,自帶Android模擬器使用的地址應該是10.0.2.2。10.0.2.2 是模擬器設置的特定ip,是你的電腦的別名alias記住,因此在模擬器上用10.0.2.2訪問你的電腦本機。記住不能使用localhost:8080和127.0.0.1這兩個路徑,因為android模擬器(simulator)把它自己作為了localhost,也就是說,代碼中使用localhost或者127.0.0.1來訪問,都是訪問模擬器自己!

 

下面推薦一篇Tomcat安裝配置的博文,比我講得更加詳細。

http://www.cnblogs.com/Johness/archive/2012/07/20/2600937.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM