<目前百度谷歌上都木有我这么完整的笔记,虽然各个部分都是来自百度的,然后自己实践,自己做截图笔记,嘻嘻 Made By HeYang>

环境:Windows 7

工具:JDK,Apache tomcat,花生壳 客户端

网站建设技术:JSP

<建议:之后需要用的JSP的开发工具Eclipse都不要建立在中文路径下>

1、首先下载然后安装JDK,安装JDK的方法,包括配置环境变量,百度搜索就会有,这是学习Java的基础,以及简单利用终端测试安装是否成功,此处就不多累述。

2、下载然后安装Apache tomcat服务器,下载网址是:http://tomcat.apache.org/,随便哪个版本的tomcat都可以,一般最好是最新版本的。然后直接解压这个服务器就安装好了。

个人喜好放在JDK安装的目录同一目录下面,如果之后使用了Eclipse For JavaEE(不是普通的Eclipse哦,是专门用来开发JavaWeb的Eclipse)这个IDE的话,最好是不能随便移动这些文件的,包括JDK的目录,因为Eclipse是会默认配置这些文件的所在路径的,或者在安装这个IDE是要首次配置这个文件所在固定好的目录的:

接下来测试apache-tomcat是否有用,如果没有用,往往很可能是JDK环境变量配置错误。

进入apache-tomcat-8.0.24\bin文件夹下,其中双击startup.bat就能启动apache-tomcat服务器,同样双击 shutdown.bat就能关闭apache-tomcat服务器。

一般启动成功的状态是这样的,不是这样的往往就是前面JDK环境变量配置错误,请重新配置,这个基于JDK运行的窗口是不能直接关闭的,如果直接关闭,同时也就关闭了服务器,或者说要想方便的关闭服务器,直接关闭这个窗口也是可以的:

然后本地测试这个服务器,只要在本地浏览器输入:http://localhost:8080 显示下面网页就说明 tomcat服务器架设完毕:

3、建立简单的网页,在apache-tomcat-8.0.24\webapps文件夹下添加文件夹HeYang(文件夹名字随便取),然后在apache-tomcat-8.0.24\webapps\HeYang这个文件夹下面添加记事本和一个测试用的图片1.jpg(随便你什么图片,便于测试名字改为1.jpg),记事本的内容为下面的jsp代码,然后记事本文件名包括后缀全部要改为index.jsp,然后本地访问测试一下:

 <%@ page language="java" contentType="textml; charset=UTF-8"
     pageEncoding="UTF-8"
     errorPage="two.jsp"%>

 <%@ page import="java.util.*" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 <html>
 <head>
 <meta http-equiv="Content-Type" content="textml; charset=UTF-8">
 <title>登入界面</title>
 </head>
 <body>
 <h1>Hello world! My Name is 何杨!</h1>
 <br>
 <h2>很抱歉,目前网站里只放了这么简单的内容,只是做做测试用的,以后会展示精彩的东西给大家看。</h2>
 <%
 out.print("<br/>");
 String name = request.getParameter("userName");
 String pass = request.getParameter("passWord");
 out.print(name);
 out.print("<br/>");
 out.print(pass);
 out.print("<br/>");

 %>
 <hr>
 <h1>九九乘法表</h1>
 <hr>
 <%!
 String print1()
 {
     String s = "";
     for(int i = 1;i<=9;i++){
         for(int j = 1;j<=i;j++)
         {
             s+=i+"*"+j+"="+i*j+"&nbsp;&nbsp;&nbsp;&nbsp;";
         }
         s+="<br>";
     }
     return s;
 }
 //JSP内置out对象,使用脚本方式调用,打印九九乘法表,还要抛出异常
 void print2(JspWriter out) throws Exception
 {
     String s = "";
     for(int i = 1;i<=9;i++){
         for(int j = 1;j<=i;j++)
         {
             s=i+"*"+j+"="+i*j+"&nbsp;&nbsp;&nbsp;&nbsp;";
             out.print(s);
         }
         out.print("<br/>");
     }
 }
 %>
 <%=print1() %>
 <br>
 <img src="1.jpg">
 <br>
 <% print2(out); %>
 </body>
 <ml>

index.jsp

这个算是最最简单的jsp网站了,只有一个jsp网页数据,然后带一个用于显示的图片资源1.jpg,然后在本地浏览器输入地址:http://localhost:8080/HeYang/index.jsp(服务器打开了,这个网址才有用),就会出现下面:

到这里,tomcat轻量级服务器和JSP网站环境架设完毕,这些足以够继续学习JavaWeb用的了,另外可以搭配Eclipse For JavaEE集成开发环境来深入学习Javaweb。

4、连入外网,让大家都能够访问刚刚建设的服务器里的网站网页数据,甚至手机客户端在任意地点也能够访问。

接下来个人啰嗦一下计算机网络的基本常识,这个我自己理解的常识,可能不正确还望高手指教:内网和外网,通常在内网中不同的计算机进行通信一般情况下简单的说来算是局域网,只要在局域网通过需要访问的计算机的本地IP地址就能访问这个计算机,如果是从外网,比如说,要通过手机客户端(手机联网的方式就可能是wifi也可能是4G网络)来访问计算机,就需要知道这个计算机的网络外网IP地址,就比如我现在的电脑联网的方式是室内wifi路由器,这个路由器是链接到外网IP地址的,同时这个外网IP地址还要映射到我这个计算机本地IP地址,然后将申请的域名网址指向这个映射好我这台笔记本的IP地址的外网的IP地址(域名网址好比:http://www.baidu.com,而我的域名网站是:http://heyang234.imwork.net ),由于网络环境的复杂,外网的IP地址常常是多变的。每一次链接都需要重新获取外网的IP地址,就特别的麻烦,所以就需要动态域名。

这里需要用第三方工具:花生壳,网址是:http://www.oray.com/ 需要注册,申请获取免费的域名,然后下载 花生壳 客户端(花生壳官网提供了内网版和外网版,我用的是内网版提供了内网和外网服务的,外网版没试用所以不是很清楚使用细节),目前只提供Windows和Linux版本的,没有Mac版本的,真可惜,我架设不来Mac可以被外网访问的服务器。

我这里就用Windows的花生壳客户端了,通过前面注册的账号和密码就能登入这个客户端。

然后是打开映射功能,这个功能可能会提示你申请开通,会需要支付一元服务费,支付开通后,就是永久免费使用的。

映射需要经过多次,可能一开始几次是会失败的。

接下来要把tomcat配置文件稍微修改一下,就能使得外网通过这个申请的域名访问我的JSP网址,打开apache-tomcat-8.0.24\conf\server.xml(用记事本打开也可以,但是我用的是Sublime Text编辑器,视觉上比单调的记事本好看多了),然后找到Connector port="8080",改为下面图片改后的80,还有就是比较新版本的可能没有这行配置代码:

<Context path="" docBase="HeYang" reloadable="true" />,

将这段代码复制到里面去就可以了,但是注意docBase="HeYang",就会使得域名地址访问的是HeYang文件目录下的网站,所以自己设定网站目录同时也要自己设定这个docBase="HeYang",最后保存即可:

然后测试一下,用你的手机输入网址或者让离你很远的朋友通过手机或者电脑打开这个网址链接:http://heyang234.imwork.net/HeYang。如果出现上面的网页,就说明你的服务器外网建立连接成功。

 
 备注可能存在的问题(来自百度):

1、为了下来的工作中不出现什么问题,我并没有将8080端口改成80,据说80端口被电信封掉了,我让用电信上网的同学访问我的网站,果然不行,这里我们明白道理就可以了,只是学习测试之用,所以我们就用8080端口。

 2、有路由设备,其实还可以在路由设备上设置端口映射。具体操作,还是找找百度吧。
 
 
 
 
 
 
 
 
 
 

如何在自己的Windows系统上 架设服务器并开发网站,然后连入外网供外界访问?(JDK+Tomcat+花生壳)的更多相关文章

  1. php项目,别人无法访问自己(windows 系统)上Apache服务器原因(转载)

    别人无法访问自己电脑上的Apache服务器,其中最大的原因是因为Windows防火墙的因素. 1.有安装防火墙的,把防火墙关闭 2.windows默认带防火墙的,进入 控制面板-系统和安全-Windo ...

  2. windows系统上安装与使用Android NDK r5 (转)

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  3. spm完成dmp在windows系统上导入详细过程

    --查询dmp字符集 cat spmprd_20151030.dmp ','xxxx')) from dual; spm完成dmp在windows系统上导入详细过程 create tablespace ...

  4. 快速获取Windows系统上的国家和地区信息

    Windows系统上包含了200多个国家和地区的数据,有时候编程需要这些资料.以下代码可以帮助你快速获取这些信息.将Console语句注释掉,可以更快的完成分析. static void Main(s ...

  5. Windows系统上如何使用SSH

    Windows系统上如何使用SSH 传统的网络服务程序如FTP.Telnet等,在网络上一般使用明文传送数据.用户账号和口令信息,容易受到中间人的攻击.用户利用SSH协议后能有效防止DNS及IP欺骗, ...

  6. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据

    http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...

  7. Redis进阶实践之三如何在Windows系统上安装安装Redis

    一.Redis的简介        Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...

  8. 非Unicode编码的软件如何在Windows系统上运行

    我们常常会遇到这样一种情况:点开某些日文软件(我不会说就是galgame( ╯□╰ ))会出现乱码或者直接无法运行. 出现乱码的原因很简单:编码与译码的方式不一致!!!!!!!!!!! 首先大家需要知 ...

  9. 在windows系统上使用pip命令安装python的第三方库

    在windows系统上使用pip命令安装python的第三方库 通过cmd启动命令行后,直接输入pip命令,有时候命令行会提示我们pip不是一个指令,这个时候我们可以通过python的集成开发环境里面 ...

随机推荐

  1. 从阿里巴巴IPO联想到创始人和资方关系

    [小九的学堂,致力于以平凡的语言描述不平凡的技术.如要转载,请注明来源:小九的学堂.cnblogs.com/xfuture] 5月7日,阿里巴巴于今日向美国证券交易委员会(SEC)提交了IPO(首次公 ...

  2. Hibernate 配置文件与映射文件 总结

    hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 一.Hibernate配置文件详解 Hibernate配置文件有两种形式:XML与p ...

  3. Xcode 8:在 Active Compilation Conditions 中自定义环境变量

    来源:没故事的卓同学 链接:http://www.jianshu.com/p/96b36360bb2d 在Xcode 7我们在 OTHER_SWIFT_FLAGS中配置环境变量.但是有一个不爽的地方就 ...

  4. ASP.NET缓存全解析2:页面输出缓存 转自网络原文作者李天平

    页面输出缓存是最为简单的缓存机制,该机制将整个ASP.NET页面内容保存在服务器内存中.当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期.在这个过程中,缓存内容直接发送给用户,而不必再次 ...

  5. Android:数据存储之SQLite

    Android在运行时集成了SQLite , 所以每个Android应用程序都可以使用SQLite数据库. 我们通过SQLiteDatabase这个类的对象操作SQLite数据库,而且不需要身份验证. ...

  6. 多重背包问题的两种O(M*N)解法

    多重背包的题目很多,最著名的是poj1742楼教主的男人八题之一. poj1742:coins 有几种面值的钱币和每种的数量,问能够组成m以内的多少种钱数 这个题大家都归为多重背包问题,不过跟实际意义 ...

  7. 训练 smallcorgi/Faster-RCNN_TF 模型(附ImageNet model百度云下载地址)

    1. 下载训练.验证.测试数据和 VOCdevkit,下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2 ...

  8. 那些年读过的书《Java并发编程实战》和《Java并发编程的艺术》三、任务执行框架&mdash;Executor框架小结

    <Java并发编程实战>和<Java并发编程的艺术>           Executor框架小结 1.在线程中如何执行任务 (1)任务执行目标: 在正常负载情况下,服务器应用 ...

  9. vue JointJS 实例demo

    前言 越来越发现,前端深入好难哦!虐成渣渣了. 需求:前端绘制灵活的关系图(此demo还是简单的,我的需求才跨出一小步) 安装 npm install jointjs 容器,工具栏 <templ ...

  10. U811.1接口EAI系列之一-通用访问EAI方法--统一调用EAI公共方法--VB语言

    1.现在做的项目是关于业务系统与U811.1的接口项目. 2.那么就需要调整通过EAI调用生成U8业务单据. 3.下面就一个通用的向U8-EAI传递XML的通用方法 4.肯定有人会问怎么还用VB调用呢 ...