我們平常學習時經常會寫一下javaweb程序,我們為了更能逼近現實,就想着自己的javaweb程序發布后,外網的同學能夠訪問我們的網站,難道我們去買空間,去買域名嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建一個服務器完全可以滿足要求。上次寫的一篇博客,PC服務端與Android客戶端實現網絡通信,就是利用這個原理。
我們分為三步走來實現:(我這里用的示例javaweb程序是我自己簡單寫的一個小程序shop1)
1.
我們用Tomcat服務器,如果我們的javaweb程序已經部署到了Tomcat服務器,一般我們在本地訪問的地址為:localhost:8080/shop1,localhost指本機,即127.0.0.1,8080端口號,shop1你部署的項目名稱,但太過繁瑣,我們只想通過IP地址來訪問我們的項目,即127.0.0.1或者localhost,我們只需修改一下Tomcat的配置即可,打開Tomcat所在的目錄,打開conf文件夾,打
開server.xml文件,所要修改的部分如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Context path="" docBase="shop1" reloadable="true" />
即將port從原先的8080修改成80,因為http協議的默認端口是80,這樣你就可以不用再輸端口號了,把docBase="shop1"的值修改成你所部屬的項目的名稱,默認指向你的項目,這樣你就可以不輸項目的名稱了。
2.
上一步我們只實現了自己訪問,但如何讓外網的同學訪問,這里可能涉及了簡單的網絡知識,我網絡學的也不是很好。就說的比較通俗一點。有兩種情況:
(1).你上網沒有用路由,運營商單獨分給你一個IP地址,那你直接可以用你的IP讓外網的同學來訪問你的網站,我們這里用的是8080端口,所以形式為:XX.XX.XX.XX:8080。為了讓多的同學了解,我在啰嗦一下,怎么知道自己的IP地址,你不必用在cmd命令行輸入ipconfig這種略顯專業的方法去獲取,其實只要在百度搜索“IP查詢”,第一個就是。
(2).用了路由器,一個路由器帶了好幾台電腦,比如說跟室友,這就需要你去路由管理頁面去設置一下,端口映射,讓別人訪問你們的IP地址時,映射到你的電腦,在瀏覽器中輸入192.168.1.1(以你的路由為准),進入路由管理頁面,操作如下圖:


端口我們沒改,所以填8080,IP地址為你的電腦在局域網中的地址,怎么樣知道自己的局域網中的地址,很簡單自己百度一下,只要局域網里的電腦不是太多,一般為192.168.1.XXX,我這里為192.168.1.101,然后點擊保存,OK,然后外網就可以用你們IP去訪問你的網站了!
我的效果圖如下:

這時可以把這個網址發給你的同學,試一下,他能不能訪問你的網站,答案是肯定的!
3,
但是又有新問題了,你第二天打開路由,或者再次上網時,運營商會重新分配給你一個新的IP地址,難道你讓你同學訪問時,再次把這個IP地址發給他嗎?顯然這是不合理了。
此時,我們就想有一個動態域名多好。這里給大家介紹一款軟件“花生殼”,下載安裝,然后注冊后,你就會獲得一個免費的二級域名,每次開機自啟后,就會將花生殼服務端中的IP數據更新成你新的IP地址,然后你每次用你固定的域名來訪問時,就會解析到你新的IP地址。
如下圖:

OK,到這里,沒有路由的同學,就可以直接用你的域名訪問了!
有路由的同學,還得多操作一步:
再次進入路由管理頁面,操作如下圖:

到這里,終於大功告成,看一下最終效果圖:

可以看到,我用我的域名成功的訪問到了我的網站。
PS:有時顯示“驗證成功”時也是個假象,一點擊“保存”時,又顯示為“驗證失敗”,再點擊“登錄”,多點擊幾次“保存”,直到它一直顯示為“驗證成功”即可,反正就是多試幾次。
注:如果沒有外網服務器的話,從外網訪問需要借助一些端口映射軟件的,網上找了一個開源的holer簡單配置一個key就實現從外網訪問了
https://github.com/Wisdom-Projects/holer