文章转载自 http://www.javashuo.com/article/p-rlnilirn-eh.htmlcss
练习成品下载 https://www.lanzous.com/i9fljkjhtml
对新手的提醒注意点(由于我也是新新手,如下是我忽略的坑):java
一、须要提早安装JDK环境 https://www.cnblogs.com/fengfengyue/p/11632256.htmllinux
二、须要配置环境变量 CATALINA_HOME :解压目录css3
三、程序要发布在webapps文件中web
前提:假设你已经装好了jdk小程序
1.1 安装一个eclipse或者MyEclipse(本文以eclipse为例),其实所谓的安装就是网上去下载一个eclipse,而后解压一下就行了。api
1.2安装tomcat,网上下载一个,而后解压一下。我此次使用的tomcat容器配的是8080端口。浏览器
JavaWeb项目就是一个应用程序,你不要觉得它有多么神秘。你天天打开的QQ就一个应用程序,你在手机上打开的微信,百度地图等等,这些都是应用程序。tomcat
而Web项目是什么呢?
它也是一个应用程序,只不过它的客户端是运行在浏览器上的。
咱们打开浏览器,访问一个地址,好比 http://www.jianshu.com/
有了web,我只须要有一个浏览器,而后就能经过互联网获取我想要的资源了。这样不是很美妙吗?
近几年H5很是流行,尤为是移动端,由于手机浏览器基本上都支持css3。同样的道理,咱们确定也不但愿在手机上安装一大堆应用,卡都卡死了,若是能直接访问一个网页,就能得到我想要的服务就行了。
并且如今WIFI也广泛了,若是之后流量能没有限制,那么APP的热度极可能会逐渐被web取代。
如今,为了说明服务器和web项目的概念,咱们先不用eclipse,来手工搭建一个web项目。
服务器,正常状况下就是一台配置高一点的电脑,除非是那种大型的专用服务器。
通常来讲,所谓的服务器,就是电脑。
好比我如今有一台电脑,给他装了一个linux系统或者windos系统,而后我说,好了,从今之后,这就是服务器了。如今服务器通常都是用linux系统的。
那么tomcat又是什么?
tomcat其实也是一个应用程序,你网上下载的tomcat每每是一个压缩包,而后咱们解压之后就至关于安装好了。
能够这么理解:
服务器就是一台电脑,而tomcat是一个容器,专门存放web项目的容器。
如下我都将tomcat称为tomcat容器。
咱们看到在tomcat容器根目录下,有一个webapps文件夹
里面是这样的:
好的,如今我要发布一个项目了,我只须要把一个已经作好的web项目往里面一丢就好了。
除了webapps,咱们还发现一个bin目录。通常来讲,可执行的文件都放在bin目录下。
打开bin,找到一个startup.bat文件。这就是启动tomcat的东西,双击它,tomcat就被启动了。
而后,浏览器能够访问tomcat里面的项目。在浏览器输入http://127.0.0.1:8080/
如今咱们来手工搭建一个web项目,首先,在webapps目录下新建一个文件夹,是的,就是文件夹,无论你项目是什么,确定仍是放在文件夹里面的。
项目名称就叫作webapp。
打开webapp,根据web项目的规范,咱们须要有一个WEB-INF文件夹。
而后,在WEB-INF文件夹里面,必需要有一个web.xml文件。
xml文件,就是一个描述性的文件,我如今的观点以下:
XML = JavaBean = Json = HashMap
它无非就是描述一些东西,保存一些数据而已。
好的,咱们在里面新建一个web.xml。这个文件很是重要,正由于它的存在,tomcat容器才会知道这个文件夹里面居然是一个web项目。
不然,tomcat容器是不知道这个web项目的,它只会将myapp文件夹看作是一个文件夹而已。
咱们用记事本打开web.xml,将如下代码拷贝进去。
1
2
3
4
5
6
7
8
9
10
11
12
|
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<web-app>
<display-name>web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>
default
.html</welcome-file>
<welcome-file>
default
.htm</welcome-file>
<welcome-file>
default
.jsp</welcome-file>
</welcome-file-list>
</web-app>
|
XML的一个做用就是配置文件,web.xml自己就是一个配置文件。在web项目中,咱们应用xml最多的也就是配置一些参数。
配置参数,就是给属性赋值嘛,没什么神秘的。
包括咱们学习JavaSE,归根到底,一直在作的一件事就是new对象,而后调用方法,调用方法的目的一方面是作一些事情,另外一方面不仍是给属性赋值嘛。
你能够把web.xml看作是一个java类,类名叫作 webApp。它里面有两个属性,分别是display-name和welcome-file-list。
display-name是发布名称,也就是项目的名字。
welcome-file-list 是欢迎页面,就是说,当你在浏览器直接访问这个myapp项目,默认跳转的页面。
想象一下,应该会变得很是好理解。
XML就是一个数据描述语言,咱们经过web.xml描述这个项目的构成和配置。
好的,接下来,咱们是否是要给他一个欢迎页啊。嗯,咱们在webapp目录下添加一个简单的欢迎页,里面就打印一个HelloWorld。
1
2
3
4
5
6
7
8
9
10
11
12
|
<%@ page language=
"java"
contentType=
"text/html; charset=UTF-8"
pageEncoding=
"UTF-8"
%>
<!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=
"text/html; charset=UTF-8"
>
<title>Insert title here</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
这是一条JSP的page指令,若是你用面向对象的思惟来看待这个玩意,就是new了一个page对象,而且给它里面的language,contentType,charset,pageEncoding属性分别赋了值。
language表示JSP页面所用的语言,默认是java,其实你写不写都没有关系,由于目前来讲JSP它只支持Java。
contentType="text/html; charset=UTF-8":设置页面的内容是文本或者html页面,字符设置为UTT-8。
pageEncoding="UTF-8":页面编码设置为UTF-8。
好的,如今咱们在bin目录,双击运行startup.bat
启动完毕。
打开浏览器,在地址栏输入http://localhost:8080/myapp/
回车
哇,是否是出来了。
太棒了。
这就是手工搭建一个web项目的过程。
只要你符合web项目的规范,包括文件夹的名字,文件的名字,就会被tomcat容器识别为一个web项目。
接下来,咱们来写服务器代码。
在WEB-INF下面新建一个文件夹,名字叫作classes,这个也是规范,就叫这个名字,不然tomcat容器识别不了。
里面在建立一个java文件,名字就叫Hello吧
用记事本打开,将下面的代码拷贝进去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public
class
Hello extends HttpServlet {
protected
void
doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected
void
doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.
out
.println(
"已经进入服务器..."
);
}
}
|
这是一个比较简单的HttpServlet 程序,说到servlet,他的意思就是服务器小程序。
原来,在英文中,但凡是let结尾的单词,都有微小的意思。好比servlet,server是服务器,let结尾,那么就是服务器小程序。
servlet是Server Applet的缩写,咱们再来看Applet,app是应用程序,又是let结尾,因此应该就是小的应用程序。
咱们用命令行的方式将java文件编译成class文件。
在编译以前,咱们先去tomcat容器的lib目录找一个jar:
找到servlet-api.jar,复制一份,拷贝到classes目录下。
而后,咱们在该classes目录下,按住shift,鼠标右键,选择在此处打开命令行窗口。
输入javac -classpath servlet-api.jar Hello.java
class文件就出来了
再次打开web.xml,咱们还须要把这个servlet配上去,否则tomcat怎么知道这个servlet须要加入咱们的web项目呢?
web.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?xml version=
"1.0"
encoding=
"UTF-8"
?>
<web-app>
<display-name>web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>
default
.html</welcome-file>
<welcome-file>
default
.htm</welcome-file>
<welcome-file>
default
.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-
class
>Hello</servlet-
class
>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
|
双击startup.bat,启动tomcat容器
而后,在浏览器的地址栏输入http://localhost:8080/myapp/hello
发现网页上一片空白,回顾咱们的servlet程序,按理说控制台会打印一句话的
看看控制台:
你应该也已经发现了,咱们手工搭建web项目的话,是否是很麻烦呀?因此,这也是为何咱们如今都用eclipse,或者MyEclipse来开发项目了。
这些IDE工具就是为了解决手工编译的麻烦而出现的。