1、最早的web服务器-NCSA(美国国家超级计算应用中心的缩写),由于主要开发者的离开,让其前景变得不明朗。所以一些开发者聚集在一起,对其进行了缺陷修复和增强代码,发布了新的版本Apache,即:“打补丁后的Web服务器(A Patchy Web Server)”。
2、Apache软件基金会(ASF),1999年成立。
主要职责:
1、通过供给 硬件、通信和商业基础设施的形式 为 开放、协作式软件开发项目 提供基础。
2、用公司和个人捐赠的资源创建一个独立法定企业,保证这些资源都用于公益事业。
3、为个人志愿者提供法律保护手段以避免受ASF项目相关的法律纠纷的影响。
4、保护Apache商标,以防止其被其他组织滥用。
3、Tomcat工程起源于早期的Java Servlet技术。Servlet是一种可以嵌入特定Web服务器中的Java应用程序(从此摆脱JavaSE基础,开始走向web应用),毫无疑问,第一个Servlet容器,即Java Web服务器是由Sun公司创建的。
于是在1999年的时候,Sun公司把Servlet容器的代码赠与ASF,于是 Servlet引擎+Apache Web服务器=Tomcat服务器。
4、Tomcat服务器第一版本3.x系列,支持Servlet2.2和JSP1.1(所以JSP的出现晚于Servlet)规范。
Tomcat4.0(代号Catalina)发布,Catalina对Tomcat的体系结构进行了完成的重构,并建立了新的代码库,支持Servlet2.3和JSP1.2规范。
5、作为Servlet容器,Tomcat是庞大的一组标准的主要组成部分,这组标准被整体称为Java企业版(Java EE)平台。JavaEE标准定义了一组基于Java的API(应用程序接口),适合为企业创建Web程序~
6、
Java EE API | 描述 |
---|---|
企业版JavaBeans(EJB) | 提供机制以使Java开发者易于使用组建中的扩展特性 |
Java Message(JMS) | 提供高性能异步信息系统 |
网络服务API | 网络服务的API套件和XML进程 |
Java 管理扩展(JMX) | 标准化一个运行时交互式引导和管理应用程序 |
Java 事务处理API(JTA) | 提供高性能异步信息系统 |
网络服务API | 网络服务的API套件和XML进程 |
1、web服务软件作用:把本地资源共享给外部访问
2、Tomcat服务器基本操作:
启动: %tomcat%/bin/startup.bat
关闭: %tomcat%/bin/shutdown.bat
访问tomcat主页:
http://localhost:8080
3、web应用目录结构
|- WebRoot 根目录
|-静态资源(html+css+javascript+images+xml) 可以直接被浏览器访问到的
|-WEB-INF 不可以直接被浏览器访问到
|-classes 存放class字节码文件
|-lib 存放jar包文件
web.xml web应用的配置文件,配置servlet
4、Servlet技术: 用java语言开发动态资源的技术
5、HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
1)http协议:对浏览器客户端和服务器端之间数据传输的格式规范。
2)http请求:浏览器->服务器端
格式:
请求行(请求方式(GET/POST) 请求资源(URI) http协议版本(http1.1))
请求头(键值对形式存在。 host、user-agent、referer)
一个空行
实体内容(POST提交的参数)
HttpServletRequest对象: 请求对象。获取请求信息。
请求行:request.getMethod() request.getRequestURI/getRequestURL() request.getProtocol();
请求头: request.getHeader("name") request.getHeaderNames()
实体内容: request.getInputStream()
获取参数数据:(GET或POST)
request.getParameter("name") 一个值的参数
request.getParameterValues("name"); 多个值的参数
request.getParameterNames() 所有参数
3)http响应: 服务器->浏览器端
格式:
响应行(http协议版本 状态码 描述)
常用的状态码: 200 302 404 500
响应头( location(结合302状态码完成请求重定向功能)、 refresh(定时刷新)、content-type、 content-disiposition(以下载方式打开))
一个空行
实体内容
HttpServletResponse对象: 响应对象。设置响应信息。
响应行: response.setStatus();
响应头: response.setHeader("name","value")
实体内容:
(PrintWriter) response.getWriter().writer(); 字符内容
(OutputStream)response.getOutputStream().writer(); 字节内容
1、软件的结构
C/S(Client - Server 客户端-服务器端)
**典型应用:**QQ,LOL等
特点:
1)必须下载特定的客户端程序。
2)服务器端升级、客户端升级。
B/S(Browser-Server 浏览器-服务器端)
典型应用:微博网页版,4399小游戏(俗称:网站)
特点:
1)不需要安装特定的客户端(只需要安装浏览器即可)
2)服务器端升级,浏览器不需要升级!
例如:就业签约系统和招聘通~
2、服务器
从物理上来说,服务器就是一台PC机器。8核,8G以上,T来计算,带宽100M
web服务器:PC机器安装一个具有web服务的软件,成为web服务器。
数据库服务器:PC机器安装一个具有数据管理服务的软件,称之为数据库服务器。
邮件服务器:PC机器安装一个具有发送邮件服务的软件,称之为邮件服务器。
3、web服务软件
web服务软件的作用:把本地的资源共享给外部访问。
4、常见的市面上的web服务软件
WebLogic:BEA公司的产品。收费的。支持JavaEE规范。
WebSphere:IBM公司的产品。收费的。支持JavaEE规范。
JBoss:Redhat公司的产品。收费的。支持JavaEE规范。
Tomcat:开源组织Apache的产品。免费的。支持部分的JavaEE规范。(Servlet、jsp、jdbc,但ejb,rmi不支持)
EJB:http://blog.csdn.net/jojo52013145/article/details/5783677
RMI:http://haolloyin.blog.51cto.com/1177454/332426/
2.1 下载并安装
1)到apache官网。www.apache.org http://jakarta.apache.org(产品的主页)
2)安装版:window (exe、msi) linux(rmp)
压缩版:window(rar,zip) linux(tar,tar.gz)学习时候使用
3)运行和关闭tomcat
3.1 启动软件
a)找到%tomcat%/bin/startup.bat ,双击这个文件
b)弹出窗口,显示信息(不要关闭次窗口)
c)打开浏览器,输出以下地址
http://localhost:8080
d)看到一只猫画面,证明软件启动成功!
3.2 关闭软件
a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可!
c)打开浏览器,输出以下地址。看到“无法连接”(最好先清空浏览器缓存)
2.2 tomcat软件使用的常见问题
1)闪退问题
原因:tomcat软件是java语言开发的。 tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到tomcat启动所需的jvm。
解决办法; 到环境变量中设置JAVA_HOME的变量
JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30 (注意别配置到bin目录下)
2)端口占用的错误
原因: tomcat启动所需的端口被其他软件占用了!
解决办法:
a)关闭其他软件程序,释放所需端口
b)修改tomcat软件所需端口
找到并修改%tomcat%/conf/server.xml文件
"8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3)CATALINA环境变量问题
原因: tomcat软件启动后,除了查找JAVA_HOME后,还会再查找一个叫CATALINA_HOME变量,这个变量的作用是设置tomcat的根目录。
解决办法:建议不要设置CATALINA_HOME变量。检查如果有的话,清除掉!!!
2.3 体验tomcat软件作用
webapps目录: tomcat共享目录。需要共享的本地资源放到此目录中。
2.4 URL
URL全名叫统一资源定位符,用于定位互联网的资源。
问题: http://localhost:8081/myweb/test.html
http:// 协议。http协议。
localhost 域名。为了找到IP地址。
本地域名: localhost
外部域名:www.baidu.com
8081 端口。软件监听的
8080: tomcat默认的端口
3306:mysql数据库的端口
1521: orace数据库的端口。
/myweb: web应用的名称。默认情况下,在webapps目录下找
/test.html :资源名称。
文件夹名 | 作用 |
---|---|
bin | 存放各种平台下,启动和关闭Tomcat的脚本文件 |
conf | 存放各种配置文件,最重要的是server.xml和web.xml |
lib | 存放Tomcat服务器和web应用都能访问的jar包 |
logs | Tomcat运行时的日志文件,Tomcat未正常启动,可以在这里找到问题 |
temp | 存放Tomcat的临时文件,接触不是很多 |
webapps | web发布目录,存放web的应用文件【特别是里面的Root是Tomcat运行的根目录文件】 |
work | 存放各种jsp生成的servlet文件 |
/*
5.1 静态资源和动态资源的区别
静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。
动态资源: 当用户多次访问这个资源,资源的源代码可能会发生改变
5.2 动态资源的开发技术
Servlet : 用java语言来编写动态资源的开发技术。
Servlet特点:
1)普通的java类,继承HttpServlet类,覆盖doGet方法
2)Servlet类只能交给tomcat服务器运行!!!!(开发者自己不能运行!!!)
Servlet手动编写步骤:
1)编写一个servlet程序,继承HttpServlet(导入tomcat服务器lib包下的servlet架包)
public class HelloServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//解决中文乱码问题
resp.setContentType("text/html;charset=utf-8");
//向浏览器输出内容
resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new Date());
}
}
2)找到HelloServlet类的bin目录下的class字节码,然后把拷贝到tomcat的一个web应用中WEB-INF/classes目录下。
3)在当前web应用下的web.xml文件配置Servlet。
<servlet>
<servlet-name>HelloServletservlet-name>
<servlet-class>gz.itcast.d_servlet.HelloServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>HelloServletservlet-name>
<url-pattern>/hellourl-pattern>
servlet-mapping>
4)启动tomcat服务器,运行访问
访问servlet: http://localhost:8080/myweb/
*/
/*
6.1 什么是http协议
http协议: 对浏览器客户端和服务器端之间数据传输的格式规范
tcp/ip协议:关注的是客户端与服务器之间数据是否传输成功
http协议:是在tcp/ip协议之上封装的一层协议,关注的是数据传输的格式是否规范
6.2 查看http协议的工具
1)使用火狐的firebug插件(右键->firebug->网络)
2)使用谷歌的“审查元素”
3)使用系统自带的telnet工具(远程访问工具)
a)telnet localhost 8080 访问tomcat服务器
b)ctrl+] 回车 可以看到回显
c)输入请求内容
GET /myweb/hello HTTP/1.1
Host: localhost:8080
Connection: keep-alive
d)回车,即可查看到服务器响应信息。
6.3 http协议内容
请求(浏览器-->服务器)
GET /day09/hello HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
响应(服务器-->浏览器)
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 24
Date: Fri, 30 Jan 2015 01:54:57 GMT
this is hello servlet!!!
*/
/*
GET /day09/hello HTTP/1.1 --请求行
Host: localhost:8080 --请求头(多个key-value对象)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
--一个空行
name=eric&password=123456 --(可选)实体内容
7.1 请求行
GET /day09/hello HTTP/1.1
#http协议版本
http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭。
http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。(基本都使用1.1)(寻找资源等图片也是一次请求)
#请求资源
URL: 统一资源定位符。http://localhost:8080/day09/testImg.html。只能定位互联网资源。是URI 的子集。
URI: 统一资源标记符。/day09/hello。用于标记任何资源。可以是本地文件系统,局域网的资源(//192.168.14.10/myweb/index.html), 可以是互联网。
#请求方式
常见的请求方式: GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE
常用的请求方式: GET 和 POST
表单提交:
原文地址:http://blog.csdn.net/tideseng/article/details/70152387