A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-5-23 14:54 编辑

Tomcat&Servlet

Tomcat的目录结构
  • Tomcat/conf:
  • Tomcat/webapps:
  • Tomcat/logs:
  • Tomcat/bin:

发布一个web项目到服务器的方式
  • 复制项目到webapps目录下
  • 在conf/Catalina/localhost/xxx.xml,配置<Context docBase=""/>

Tomcat常见问题
  • 没有配置JAVA_HOME引发tomcat一闪消失
  • 端口号冲突

ServletHTTP协议HTTP协议的作用
  • 规范浏览器和服务器之间的数据传输

HTTP协议的特点
  • 基于请求和响应的模型

    • 必须先有请求后有响应
    • 请求和响应必须成对出现

  • 默认的端口号是80.

HTTP协议的版本
  • 1.0:每次响应后即可关闭连接
  • 1.1:不是每次响应后挂断,等待长时间以后没有请求会挂断.

HTTP协议的详解请求部分
  • 请求行

    • 提交方式:

      • 常用的GET和POST
      • 区别

        • GET提交的参数会显示到地址栏上,请求头地址的后面,POST的参数在请求体中
        • GET有大小限制,POST没有
        • GET没有请求体,POST有请求体


    • 提交路径:
    • 协议版本

  • 请求头

    • 都是键值对的形式,一个key对应一个或多个value
    • User-Agent:代表浏览器的类型
    • Referer:代表网页的来源,防盗链

  • 请求体

响应部分
  • 响应行

    • 协议版本
    • 状态码

      • 200:成功
      • 302:重定向
      • 304:查找本地缓存
      • 404:资源不存在
      • 500:服务器内部错误,代码写错了

    • 状态码描述

  • 响应头:键值对

    • Content-Dispostion:文件下载
    • Location:重定向的跳转路径
    • Refresh:定时刷新/定时跳转

  • 响应体:显示浏览器的页面内容

Servlet概述Servlet的作用
  • 用来处理从客户端浏览器发送的请求,并且可以对请求做出相应

使用方式
  • 编写一个类实现Servlet接口
  • 将编写的类配置到服务器中

  • <!-- 配置Servlet -->
      <servlet>
        <!-- Servlet的名称 -->
        <servlet-name>test1</servlet-name>
        <!-- SErvlet的全路径 -->
        <servlet-class>com.itheima.a_servlet.ServletDemo1</servlet-class>
      </servlet>
      
      <!-- Servlet的映射 -->
      <servlet-mapping>
        <!-- Servlet的名称 -->
        <servlet-name>test1</servlet-name>
        <!-- Servlet的访问路径 -->
        <url-pattern>/ServletDemo1</url-pattern>
      </servlet-mapping>
  • 访问


使用ServletRequest接受参数
  • String request.getParameter(String name);---用于接收一个名称对应的一个值得数据
  • String[] request.getParameterValues(String name);---用于接收一个名称对应的对个值得数据
  • Map<String,String[]> request.getParameterMap();---用于接受表单中所有数据

Servlet的生命周期
  • 生命周期:一个对象从创建到销毁的过程

    • 创建:用户第一次访问Servlet创建Servlet的实例
    • 销毁: 当项目从服务器中移除的时候,或者关闭服务器的时候.


面试点:
  • 用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式不同调用doXXX方法.当Servlet中服务器中移除掉或关闭服务器,Servlet实例就会被销毁,那么destroy方法就会执行.债整个过程中Servlet是单例的.

启动时创建Servlet
  • Servlet默认是在第一次访问的时候创建的.
  • 在web.xml中在<servlet></servlet>标签中配置:

    • <load-on-startup>2</load-on-startup>


url-pattern的配置response设置响应头
  • setHeader(Stringname,String value);      ---针对一个key对应一个value的响应头.
  • setDateHeader(String name,long date);
  • setIntHeader(String name,int value);

ServletContext对象
  • 用来存取数据,是域对象

    • setAttribute(String name, Object object)
    • getAttribute(String name)
    • removeAttribute(String name)

  • 作用范围:整个web工程
  • 创建:服务器启动的时候Tomcat服务器为每个web项目创建一个单独的ServletContext对象
  • 销毁:服务器关闭的时候,或者项目从服务器中移除的时候

ServletConfig
  • getInitParameter(String name):获得Servlet在web.xml中配置的name的值
  • getInitParameterNames():获得Servlet的初始化参数
  • getServletContext(): 获得所有Servlet的初始化参数的名
  • getServletName()



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马