注册用户享全站资源 并成为粉丝 不定时福利发放
 
非盈利性学习社区
分享网站

分享网站

让更多人可以获取免费教程

合作广告

合作广告

最大优惠

人事面试

人事面试

套路太深

面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背...

部分企业人事部收到求职者简历后,会预先进行一轮电话面试,来考察求职者的综合素质,因此了解懂得求职面试的基本技巧,将...

1、着装要适当  穿着不一定要名贵,但一定要合体、干净、整洁,而且颜色和图案的搭配一定要协调。鞋子应该是舒服而又引...

一、隐瞒真实个人资料的不诚实者简历是求职的第一步,只有面试官对你的简历有兴趣才会通知你面试。在简历中适当地突出个人...

一、首先你得已经成为公司里“最好”的程序员,或者你已经找不到可作为老师和导师的人关于这一点,很多人都会过度自信,所...

程序人生

程序人生

技术的另一面

程序员不是你们眼中的程序猿-后IT时代。程序猿是一种非常特殊的、可以从事程序开发、维护的动物。

1.某程序员的QQ签名:为API生,为框架死,为debug奋斗一辈子,吃符号亏,上大小写的当,最后死在需求上2.去...

Web应用,最常见的研发语言是Java和PHP。后端服务,最常见的研发语言是Java和C/C++。大数据,最常见的...

1、第一份工作的选择很重要。不要想着我没有选择的机会,有份工作就不错了,现实情况是进了一行,想出来很难,想转行更难...

       本文摘自一位工作五年程序老哥的演讲。演讲大概讲了他走过的五年时光,反思自己的职业工作,反思自己的生...

程序员段子

程序员段子

乐一乐

皇上太拼了......  被电视剧蒙骗了好多年,三观毁灭!  这是传说中“帅气的王爷”与“美腻的王妃”,像不像屠夫...

足够自信的程序猿自信是通往成功路上的指明灯,自信的程序员更是加班夜里的探照灯,总能让BUG无所遁形。效率高的程序猿...

最近这段时间,小编絮絮叨叨说了很多严肃的东西,今天说点好玩的,轻松一下。娱乐圈有潜规则,小编认为IT圈一样,也有潜...

今天来说说一位女青年的老公以及他们的事儿。如有雷同,纯属巧合。十一年前我和程序猿第一次见面,还是大一军训期间。我甚...

公司高层公司副总A:咱们开个会研究一下这个事情怎么处理。公司副总B:如果老板没有救成功,下任是谁呢?会不会影响公司...

Web-第七天 HTTP&Tomcat学习【悟空教程】
发表时间:2018-11-07 16:02来源:Java帮帮-微信公众号

HTTP&Tomcat

今日内容介绍

  • 访问tomcat下已经发布的web项目

今日内容学习目标

  • 能够描述出浏览器和服务器交互过程

  • 能够产生HTTP请求协议格式

  • 能够产生HTTP响应协议格式

  • 看得懂WEB项目的目录结构

  • 使用Tomcat发布web项目,并成功访问

  • 在eclipse下发布web项目

第1章 访问tomcat下已经发布的web项目

为了可以通过浏览器访问到自己tomcat下的web项目,我们需要先了解以下内容:


1.1 HTTP协议的概述:

1.1.1 什么是HTTP协议

HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。用于定义WEB浏览器与WEB服务器之间交换数据的过程。

1.1.2 HTTP协议的作用及特点

HTTP协议的作用

HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。

HTTP协议的特点

  • 基于请求/响应模型的协议。请求和响应必须成对;先有请求后有响应。

  • HTTP协议默认的端口:80

    • 例如:http://www.javahelp.com.cn:80


1.1.3 HTTP协议的版本:

  • HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。

  • HTTP/1.1,发送请求,创建一次连接,获得多个web资源,连接断开。


1.1.4 HTTP协议的组成:

HTTP请求协议、HTTP响应协议。

HTTP请求包括:请求行、请求头、请求体

HTTP响应包括:响应行、响应头、响应体


1.1.5 HTTP协议入门

1.1.5.1 准备工作

准备工作进行的步骤,步骤1和2是文档后半段讲解的内容,此处暂时了解即可。

1. 创建项目,JavaWeb项目,选择版本为2.5

  • 步骤1:在eclipse中New/Dynaimc Web Project

  • 步骤2:创建day12 web项目


2. 测试用例,编写“form.html”页面,并提供两个表单,分别设置表单的提交方式为:get和post。将表单提交位置设置成#,表示提交到当前表单。

<form action="#" method="get">

用户名:<input type="text" name="username" value="jack" /> <br/>

密码:<input type="text" name="password" value="1234" /> <br/>

<input type="submit" value="get提交" />

</form>

<form action="#" method="post">

用户名:<input type="text" name="username" value="jack" /> <br/>

密码:<input type="text" name="password" value="1234" /> <br/>

<input type="submit" value="post提交" />

</form>

3. 安装HttpWatch,用于抓取HTTP协议的数据包(抓包)

操作系统不同,浏览器不同,需要的HttpWatch的版本不同。

1.1.5.2 HTTP请求的详解

HTTP请求格式:请求行、请求头、请求体。

如下图,我们提供两种请求方式抓包结果:

GET请求抓包数据:

POST请求抓包数据:

  • 请求行

例如:POST /day09/01.http/form.html HTTP/1.1

请求行必须在HTTP请求格式的第一行。

请求行格式:请求方式 资源路径 协议/版本

请求方式:协议规定7种,常用两种:GETPOST

GET请求:

将请求参数追加在URL后面,不安全。例如:form.html?username=jack&username=1234

URL长度限制GET请求方式的数据大小。

没有请求体

POST请求

请求参数显示请求体处,较安全。

请求数据大小没有显示。

只有表单设置为method=post”才是post请求.其他的都是get请求。

常见GET请求:地址栏直接访问、<a href=””><img src=””>

  • 请求头

例如:Host: localhost:8080

请求头从第二行开始,到第一个空行结束。及请求头和请求体之间存在一个空行。

请求头通常以键值对(key:value)方式传递数据。

key为规范规定的固定值

value key对应的取值,通常是一个值,可能是一组。

常见请求头

描述 (红色掌握,其他了解)

Referer

浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用于:防盗链

If-Modified-Since

浏览器通知服务器,本地缓存的最后变更时间。与另一个响应头组合控制浏览器页面的缓存。

Cookie

与会话有关技术,用于存放浏览器缓存的cookie信息。

User-Agent

浏览器通知服务器,客户端浏览器与操作系统相关信息

Connection

保持连接状态。Keep-Alive 连接中,close 已关闭

Host

请求的服务器主机名

Content-Length

请求体的长度

Content-Type

如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码

Accept

浏览器可支持的MIME类型。文件类型的一种描述方式。

MIME格式:大类型/小类型[;参数]

例如:

  text/html html文件

  text/csscss文件

  text/javascriptjs文件

  image/*,所有图片文件

Accept-Encoding

浏览器通知服务器,浏览器支持的数据压缩格式。如:GZIP压缩

Accept-Language

浏览器通知服务器,浏览器支持的语言。各国语言(国际化i18n

  • 请求体

通常情况下,只有post请求方式才会使用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对(k=v),多组值使用&相连。

例如;username=jack&password=1234


1.1.5.3 HTTP响应的详解

HTTP响应格式:响应行、响应头、响应体

如下图,我们提供的响应的抓包结果(HttpWatch只支持GBK编码,否则中文会出现乱码)

  • 响应行

例如:HTTP/1.1 200 OK

格式:协议/版本 状态码  状态码描述

状态码:服务器与浏览器用于确定状态的固定数字号码

200 :请求成功。

302 :请求重定向。

304 :请求资源没有改变,访问本地缓存。

404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。

500 :服务器内部错误。通常程序抛异常。

  • 响应头

响应头也是用的键值对k:v

服务器通过响应头来控制浏览器的行为,不同的头浏览器操作不同。

常见请求头

描述

Location

指定响应的路径,需要与状态码302配合使用,完成跳转。

Content-Type

响应正文的类型(MIME类型)

取值:text/html;charset=UTF-8

Content-Disposition

通过浏览器以下载方式解析正文

取值:attachment;filename=xx.zip

Set-Cookie

与会话相关技术。服务器向浏览器写入cookie

Content-Encoding

服务器使用的压缩格式

取值:gzip

Content-length

响应正文的长度

Refresh

定时刷新,格式:秒数;url=路径。url可省略,默认值为当前页。

取值:3;url=www.javahelp.com.cn    //三秒刷新页面到www.javahelp.com.cn

Server

指的是服务器名称,默认值:Apache-Coyote/1.1。可以通过conf/server.xml配置进行修改。<Connector port="8080" ... server="javahelp"/>

Last-Modified

服务器通知浏览器,文件的最后修改时间。与If-Modified-Since一起使用。

  • 响应体

响应体,就是服务器发送给浏览器的正文。

1.2 Web开发概述

1.2.1 WEB通信

WEB采用B/S通信模式,通过超文本传送协议(HTTP, Hypertext transport protocol)进行通信。通过浏览器地址栏编写URL,向服务器发送一个请求,服务器端根据请求进行相应的处理,处理完成之后,会向浏览器作出一个响应,及将服务器端资源发送给浏览器。

1.2.2 软件架构

  • C/S架构:Client/Server 客户端/服务器。要求客户端电脑安装一个客户端程序。

    • 常见应用:QQ,迅雷,360,旺旺 等

    • 优点:

   1. 用户体验好,效果炫

   2. 对信息安全的控制较强

   3. 应用服务器运行数据负荷较轻,部分计算功能在客户端完成。

    • 缺点:

   1. 占用硬盘空间

   2. 维护麻烦

   3. 安装使用依赖其他条件

  • B/S架构:Browser/Server 浏览器/服务器 。通过浏览器与服务器交互,不需要安装其他程序

    • 常见应用:网银系统,淘宝,京东 12306 等

    • 优点:

   1. 维护和升级简单,无缝升级。

   2. 不用必须安装程序,操作系统内置了浏览器。

    • 缺点:

   1. 动画效果受浏览器限制

   2. 对信息安装控制较差。例如:网银就需要使用U盾,在浏览器端加密。

   3. 应用服务器运行数据负荷较重。大部分计算都在服务器端,增加服务器压力。使用Ajax可以改善部分用户体验。


1.2.3 WEB资源介绍

静态资源:指web页面中供人们浏览的数据始终是不变。比如:HTML、CSS、JS、图片、多媒体。

动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。比如:JSP/Servlet、ASP、PHP

1.2.4 WEB服务器

JCP(Java Community Process) Java技术规范制定与更新的国际组织。主要维护规范包括:J2ME、J2SE、J2EE,XML等。

J2EE 企业级开发Java规范。标准规范包括:

servlet、jsp、jdbc、xml、jta、javamail等。在java中规范就是接口。J2EE又称为JavaEE。

WEB服务器对JavaEE规范部分或全部支持(实现),也就是WEB服务器实现部分或全部接口。

常见的WEB服务器:

1. Tomcat:Apache组织提供一个免费的小型的服务器软件。支持Servlet和JSP规范。

2. WebLogic:Bea公司的一个收费的大型的服务器软件,后被Oracle收购。支持EE的所有的规范

3. WebSphere:IBM公司的一个收费的大型的服务器软件,支持EE的所有的规范。

4. JBoss:是一个基于J2EE的开放源代码的应用服务器。JBoss是一个管理EJB的容器和服务器,JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

1.2.5 URL请求路径

URL (Uniform Resource Locator) ,统一资源定位符是对互联网上资源位置的一种表示,互联网上的每个文件都有一个唯一的URL。

完整格式如下

协议://域名:端口号/资源位置?参数=

协议,httphttpsftp

域名,域名或IP地址,都可以访问WEB资源

端口号,程序必须使用端口号,才可以让另一个计算机访问。http协议的默认端:80

资源位置,用于描述WEB资源再服务器上的位置。

参数=值,浏览器和服务器交互传递的数据

例如:

常见路径

http://www.javahelp.com.cn:80/subject/javaeezly/index.shtml


百度搜索“Java帮帮

https://www.baidu.com/s?cl=3&wd=%B4%AB%D6%C7%B2%A5%BF%CD

1.3 Tomcat介绍

1.3.1 概述

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

支持Servlet和JSP 规范,且最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。

1.3.2 Tomcat版本(了解)

tomcat 目前存在很多版本,希望大家了解tomcat的版本,从而知道自己的创建的项目使用的是几版本规范,不同版本的规范技术可能不同。我们学习的WEB5.0,Servlet规范2.5,tomcat至少使用6版本。

官网地址:http://tomcat.apache.org/whichversion.html

Tomcat版本

Servlet版本

JSP版本

EL版本

JavaEE版本

JDK版本

7.0.x

3.0

2.2

2.2

6.0

6 (1.6)

6.0.x

2.5

2.1

N/A

5.0

5 (1.5)

1.3.3 安装Tomcat

  • 步骤一:下载一个tomcat服务器软件.

http://tomcat.apache.org/download-70.cgi

  • 步骤二:解压下载好的zip文件.

将解压后的文件copy到一个没有中文和空格的路径下即可.

例如:D:\java\tomcat\apache-tomcat-7.0.68

1.3.4 Tomcat目录结构

bin:脚本目录

启动脚本:startup.bat

停止脚本:shutdown.bat

conf:配置文件目录 (config /configuration)

核心配置文件:server.xml

用户权限配置文件:tomcat-users.xml

所有web项目默认配置文件:web.xml

lib:依赖库,tomcatweb项目中需要使用的jar

logs:日志文件.

localhost_access_log.*.txt tomcat记录用户访问信息,星*表示时间。

例如:localhost_access_log.2016-02-28.txt

temp:临时文件目录,文件夹内内容可以任意删除。

webapps:默认情况下发布WEB项目所存放的目录。

worktomcat处理JSP的工作目录。

1.3.5 Tomcat启动和访问

  • tomcat解压目录/bin/startup.bat 双击运行启动tomcat

  • 访问路径:http://localhost:8080/

1.3.6 Tomcat常见问题

1.3.6.1 JAVA_HOME的配置

如果没有配置JAVA_HOME环境变量,在双击“startup.bat”文件运行tomcat时,将一闪立即关闭。且必须配置正确,及JAVA_HOME指向JDK的安装目录

当同一台计算机启动两个tomcat时,第二个tomcat将会在控制台抛异常,摘要信息如下:


1.3.6.2 端口号冲突

严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]

java.net.BindException: Address already in use: JVM_Bind <null>:8080

...

Caused by: java.net.BindException: Address already in use: JVM_Bind

...

控制台将出现大量异常信息,描述的是3个端口被占用(808080098005

通过 $JAVA_HOME/conf/server.xml修改端口号。

1.4 web项目目录结构(重要)

在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下:

项目名称  webapps 文件夹)

|-----静态资源.HTMLCSSJS

|-----WEB-INF   (不能直接通过浏览器进行访问)

           |----web.xml  当前WEB项目的核心配置,Servlet2.5必须有,3.0可省略。

           |----lib    当前WEB项目所需要的第三方的jar的存放位置。

           |----classes  Java源码编译后生成class文件存放的位置。


1.5 eclipse发布web项目

1.5.1 配置Tomcat

  • 步骤1:获得服务器运行环境配置,Window/Preferences/Server/Runtime Environmen

  • 步骤2:添加服务器

  • 步骤3:选择服务器在硬盘的地址,然后所有的都是确定/Next/Finish

  • 步骤4:完成成功

  • 步骤5:设置发布位置

修改tomcat发布的位置

1.5.2 发布web项目

  • 步骤1:项目右键/Run As/Run on Server

  • 步骤2:选择WEB服务器执行程序。

  • 步骤3:选择或添加文本框


第2章 Servlet快速入门

2.1 概述

今天我们已经学习了tomcat和web项目使用和编写,明天我们将学习动态资源技术Servlet,今天我们将编写servlet的入门案例,所有步骤为固定内容,今天只需完全模仿。


2.2 编写步骤

1. 创建 day12 web项目


2. 创建类,继承HttpServlet,复写doGet方法

package cn.com.javahelp.demo01.a_servlet;

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 HelloServlet extends HttpServlet{

@Override

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

System.out.println("get请求将执行");

}

}


3. 编写配置文件

<servlet>

<servlet-name>helloServlet</servlet-name>

<servlet-class>cn.javahelp.demo01.a_servlet.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>helloServlet</servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

4. 浏览器访问

在浏览器地址栏输入:http://localhost:8080/day12/hello

  • 浏览器显示空白页面

  • 控制打印信息

第3章 总结


全部评论(0条)
亲~快来评论噢!
Java帮帮公众号生态

Java帮帮公众号生态

总有一款适合你

Java帮帮-微信公众号

Java帮帮-微信公众号

将分享做到极致

Python帮帮-公众号

Python帮帮-公众号

人工智能,爬虫,学习教程

大数据驿站-微信公众号

大数据驿站-微信公众号

一起在数据中成长

九点编程-公众号

九点编程-公众号

深夜九点学编程

程序员服务区-公众号

程序员服务区-公众号

吃喝玩乐,听学吐画

Java帮帮学习群生态

Java帮帮学习群生态

总有一款能帮到你

Java学习群

Java学习群

与大牛一起交流

大数据学习群

大数据学习群

在数据中成长

九点编程学习群

九点编程学习群

深夜九点学编程

python学习群

python学习群

人工智能,爬虫

测试学习群

测试学习群

感受测试的魅力

Java帮帮生态承诺

Java帮帮生态承诺

一直坚守,不负重望

初心
勤俭
诚信
正义
分享
战略合作
关于我们
友链申请
友链交换:加帮主QQ2524138991 留言即可 24小时内答复  
快速换友链:在你的网站设置好Java帮帮-IT免费资源网友链,截图发给帮主即可
会员登录
获取验证码
登录
登录
我的资料
留言
回到顶部