tomcat、http、serlvet

一,服务器

1.1 web 相关的概念

软件结构

  1. C/S:客户端/服务端
  2. B/S:浏览器/服务端

C/S 和 B/S的对比:

  1. C/S 的页面更加精美
  2. C/S 的宽带占用更小
  3. B/S 的硬盘占用更小
  4. B/S 更易于更细维护

资源的分类:

  1. 静态资源:任何用户访问后,得到的结果就是一样的就称为静态资源,静态资源可以直接被浏览器解析,例如:html、css、js
  2. 动态资源:每一个用户访问后,得到的结果可能不同的就称为动态资源,动态资源会先转换成静态资源,再返回给浏览器,例如:servlet、jsp

网络通信的三要素:

  1. ip:计算机设备在网络中的唯一标识
  2. 端口:应用程序在计算机中的唯一标识
  3. 传输协议:数据在网络中传输的规则
1.2 web 服务器

服务器:安装了服务器软件的计算机

服务器软件:接收用户的请求,处理请求,做出响应

常见的 web 服务器:

  1. tomcat:Apache组织的,中小型 JavaEE 服务器。开源,免费。
  2. webLogic:Oracle公司的大型 JavaEE 服务器。收费。
  3. webSphere:IBM公司的大型 JavaEE 服务器。收费。

tomcat:

  1. 下载地址:http://tomcat.apache.org

  2. 安装:解压即可,只能解压到纯英文路径下

  3. 目录结构:

    1. bin:可执行文件,里面有 startup.bat、shutdown.bat
    2. conf:配置文件,里面有 web.xml、server.xml
    3. lib:依赖的 jar 包
    4. logs:日志文件
    5. temp:临时文件
    6. webapps:存在 web 项目
    7. work:运行时产生的文件或者数据
  4. 启动服务器:

    1. 运行 bin 下的 startup.bat

      可能遇到的问题:

      1. 一闪:

        原因:没有正确配置环境变量

        解决:去配啊

      2. 报错:

        原因:端口冲突

        解决:

        ​ 方法1. 杀死进程,在 cmd 中 通过 netstat -ano 找到端口号冲突进行的 pid ,在任务管理器中结束进程

        方法2. 修改配置文件的端口号,配置文件是 conf 下的 server.xml

      补充:

      1. 如果将默认的端口号从8080改成80,那么访问服务器时就不需要写端口号了
      <Connector port="80" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" />
      
      1. 访问方式是在浏览器的地址栏上输入:
        1. 访问自己:http://localhost:8080
        2. 访问其他人:http://其他人的ip:8080
      2. 服务器不要重复开启
  5. 关闭服务器:

    1. 运行 bin 下的 shutdown.bat
    2. ctrl + c
    3. 点击 x 关闭窗口
  6. 将项目部署到服务器上:

    1. 直接将项目放到 webapps 目录下,通过 http://ip地址:端口号/项目名/资源名 进行访问

    2. 在 conf 下的 server.xml 中的 Host 标签 下配置:

      1. docBase:项目所在的文件夹
      2. path:虚拟路径
      3. 通过 http://ip地址:端口号/abc/项目名/资源名 进行访问
    3. 在 conf 下的 catalina 下的 localhost 目录下创建任意文件名的 xml 文件,配置:

      1. docBase:项目所在的文件夹
      2. 该 xml 文件的名字就是虚拟路径
      3. 通过 http://ip地址:端口号/abc/项目名/资源名 进行访问
1.3 将 tomcat 部署到 eclipse

步骤:

  1. 点击 window,点击 preferences
  2. 找到 server,点击 runtime enviroments
  3. 点击 add,选择 tomcat7.0,点击 next
  4. 点击 browse,选择你所安装的 tomcat 服务器的根目录,点击确定,点击 finish,点击 ok
  5. 创建项目,选择动态网页工程(dynamic web project)
1.4 eclipse 中创建 web 工程

步骤:

  1. 点击 file,点击 new

  2. 选择动态网页工程(dynamic web project)

  3. 给项目起个名字

  4. 选择 2.5 或者 3.0 版本

    注:如果选择的是 3.0 系统将不会为你自动创建 web.xml

二,Servlet

2.1 概念和基本使用

概念:运行在服务器端的程序,Server applet

Servlet是一个接口,它定义Java类能被服务器访问到的规则

步骤:

  1. 定义一个类,实现 Servlet 接口

  2. 重写方法

  3. 配置 Servlet

    在 web.xml 中配置:

    <!-- 配置Servlet类 -->
      <servlet>
      	<servlet-name>abc</servlet-name>
      	<servlet-class>com.qf.servlet.TestServlet</servlet-class>
      </servlet>
      
      <!-- 配置Servlet映射 -->
      <servlet-mapping>
      	<servlet-name>abc</servlet-name>
      	<url-pattern>/tt</url-pattern>
      </servlet-mapping>
    
2.2 Servlet 执行原理

​ Servlet的执行原理:

  1. 当服务器接收到客户端请求时,会解析请求的地址,访问到Servlet资源的路径
  2. 在 web.xml 中进行查找,是否有对应 url-pattern 标签体中内容与只匹配
    1. 如果没有,页面会出现 404 (资源找不到)错误
    2. 如果有,会查找是否有一个servlet标签下的servlet-name标签体中的内容与该url-pattern所在映射下的servlet-name标签体中的内容一致的servlet标签。
      1. 如果没有,服务器开启过程中会报错
      2. 如果有,就能根据全类名找到对应的 Java 类,执行其中的功能
2.3 Servlet 的生命周期
  1. init():默认第一次访问时执行,只执行一次

    可以通过配置,将servlet的初始化从第一次访问执行修改成服务器启动时就执行

    <!-- 
    	配置该Servlet的初始化时机是在服务器启动时,
    	n可以是任意整数,
    		n为负数:表示第一次访问时执行
    		0或者整数:表示服务器启动时就初始化
    			数值越小,越优先启动
    -->
    <load-on-startup>n</load-on-startup>
    
  2. service():每次访问时都执行一次

    在这个方法中提供了tomcat服务器已经封装好了的请求和响应对象

  3. destory():正常关闭服务器时执行,只执行一次

    一般用于释放资源,只有服务器正常关闭时才会执行,执行后servlet被销毁

2.4 Servlet 的体系结构

HttpServlet抽象类 -> GenericServlet抽象类 -> Servlet接口

HttpServlet:专门针对Http协议的一种Servlet接口的封装,简化了Servlet中的操作,并且明确了 get/post 请求时会访问到的相关方法。

使用步骤:

  1. 创建类时,选择Servlet
  2. 自定义Servlet的类名和url
  3. 选择 doPost() 和 doGet() 方法

注:使用浏览器直接访问servlet,默认的提交方法是get

2.5 url-pattern 的配置
  1. 完全匹配:/xxx
  2. 目录匹配:/xxx/xxx/*
  3. 扩展名匹配:*.xxx

注:目录匹配和扩展名匹配不能混用

三,Http

3.1 概念

概念:HyperText Transfer protocol 超文本传输协议

Http 它定义客户端和服务器在通信时发送数据和接收数据的格式

特点:

  1. 基于TCP/IP的协议
  2. 默认端口号是8080
  3. 基于请求/响应的:一次请求对应一次响应
  4. 无状态的:每次请求之间是互相独立的,不能交互数据
  5. 版本:
    1. 1.0 版本:每一次请求响应都会建立新的连接
    2. 1.1 版本:复用连接
3.2 请求消息数据的格式
  1. 请求行:

    1. 请求方式:POST、GET
      1. GET:
        1. 请求的参数在请求行中,拼接在地址后
        2. 请求地址的长度有限制,64K
        3. 不安全
      2. POST:
        1. 请求的参数封装在请求体中
        2. 请求的地址没有限制的限制
        3. 相对安全
    2. 请求的地址:http://localhost/day41_05_login_register/register
    3. 请求协议/版本:http/1.1
  2. 请求头

    格式:" 请求头名称 : 请求头值 "

    请求头是客户端告知服务器的信息

    常见的请求头:

    1. Referer:告知服务器,当前请求从哪个页面过来,常用于防盗链
    2. User-Agent:告知服务器,当前浏览器的版本信息,常用于解决浏览器的兼容性问题
  3. 请求体:封装了POST提交方式的请求参数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值