java复习web篇——servlet

  1.Servlet

Servlet的概述: 就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.Servlet就是SUN公司提供的一个动态网页开发技术.
2.5版本:基于配置式开发(web.xml)
3.0版本:基于注解式开发
Servlet的作用:
    它会基于HTTP协议, 在服务器端接收客户端发出的请求, 然后进行相应的业务逻辑处理, 处理完了以后, 会向客户端返回一个响应

  2.使用Servlet:
    (1). 编写一个类
        1. 实现servlet 接口
        2. 继承GenericServlet 类
        3. 继承HttpServlet 类
            实际开发使用
        一般要实现servlet的话, 都是通过继承HttpServlet 类

(2). 将编写的这个类配置到服务器中.
        配置web.xml
            注意: url-pattern 的值不可以出现重复的, 否则tomcat 启动失败
 
  3.使用ServletRequest接收参数:
    * String getParameter(String name);  ------用于接收一个名称对应一个值的数据.
    * String[] getParameterValues(String name);  ------用于接收一个名称对应多个值的数据.
    * Map getParameterMap();------用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.
    * Enumeration getParameterNames()-------用于获取表单中提交的所有的参数的名称.
 
  4.servlet 执行过程:
    1. 根据浏览器的servlet访问的标识去项目中的web.xml文件中去找相匹配的url-pattern的值
    2. 去servlet-mapping中的servlet-name 标签中去获取值
    3. 去servlet标签中的servlet-name 的标签中去找相匹配的值
    4. 去servlet-class中找到servlet的路径, 通过反射的方式来让相对应的servlet运行
 
  5.Servlet的生命周期
    servlet 何时被创建, 何时被销毁
        当客户端向服务器端发出一个请求的时候, 服务器端首先会判断对应的servlet是否已经被初始化了, 如果该servlet没有被初始化的话, 那么首先会执行init() 对该servlet进行初始化, 接着运行service(), 如果该servlet已经被初始化了, 那么直接运行service(), 当服务器关闭的时候, 会执行destory() 销毁servlet
            init()
                只会被运行一次, 初始化servlet的时候
            service()
                每次操作servlet的时候, 都会被执行
            destory()
                只会执行一次, 销毁servlet

  6.扩展的标签: <load-on-startup>
    用来控制servlet什么时候被初始化---- 写在<servlet></servlet>标签中
    如果该标签没有被设置或者值为负数, 那么该servlet只有被访问的时候才会被初始化, 如果该标签的值为正数的话, 那么当服务器一启动该servlet就会被初始化
    注意: 值必须为整数, 当为正整数的时候, 值必须大于1, 值越小优先级越高

  7. HTTP协议超文本传输协议

定义:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法
作用:规定浏览器和服务器的数据交互的格式.

(1)HTTP协议的特点:
    基于请求和响应的模型
            * 必须先有请求后有响应.
      * 请求和响应必须成对出现.
    默认的端口号是80.

(2)HTTP协议的请求部分

 客户端 :(浏览器, 手机, 平板) 发出请求, 发送给服务器端
    请求行:
        请求方式:GET和POST的区别
            * GET的提交的参数会显示到地址栏上,而POST不显示.
            * GET往往是有大小限制的,而POST没有大小的限制.
            * GET没有请求体,而POST有请求体.
            * 提交路径:
            * 协议版本:
    请求头:都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
         User-Agent:代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.
          Referer:代表的是网页的来源. --- 防盗链.
        If-Modified-Since:通常与响应中的头Last-Modified一起使用查找本地缓存
    请求体:
        封装POST提交方式的提交的参数

(3)HTTP协议的响应部分

 服务器:发出响应, 发送给客户端
    响应行:
            * 协议版本
            * 状态码        :
                    * 200    :成功
                    * 302    :重定向
                    * 304    :查找本地缓存
                    * 404    :资源不存在
                    * 500    :服务器内部错误
            * 状态码描述

响应头:键值对,一般一个key对应一个value,也有一个key对应多个value
        * Last-Modified:与请求中的If-Modified-Since一起使用查找本地缓存.
        * Content-Dispostion    :文件下载的使用使用的一个头信息.
        * Location    :重定向的跳转的路径.
        * Refresh:定时刷新/定时跳转.

响应头是用来修饰响应体的
    setHeader("",""):一个key 对应一个value
    addHeader(): 一个key 对应多个value

响应体:
        显示浏览器的页面的内容
用来设置需要返回给客户端的信息
    getWriter().write()
    getOutputStream().write()
 
设置响应体需要注意的问题:
    1. 使用字符流肯定出现中文乱码
    2. 字符流和字节流不可以同时在一个servlet中出现, 否则500
    3. 字符流不可以直接输出数字, 如果输出数字的话, 会按照ASCii表进行转码.
        getWriter().write(20) ;
        解决: getWriter().write(20+"") ;

原文地址:https://www.cnblogs.com/unrulywind/p/9163411.html

时间: 2024-08-01 00:56:18

java复习web篇——servlet的相关文章

java复习--Web部分

1.jsp(Java Server Pages ) java服务器页面,是只能运行在服务器中,并可以将java代码嵌入到html页面中的技术. 9大内置对象:request.response.session.application.pageContext.out.config.page.exception. 2.转发和重定向的区别 转发:总共发起一次请求:可以传递请求参数:url地址不变: 重定向:总共发起二次请求:彼此不相关,第一次请求的参数不会被传递:url地址改变. 3.get请求和pos

java复习前端篇——JavaScript

1.JS的概述:     什么是JS:运行在浏览器端脚本语言,基于对象和事件驱动的语言,应用于客户端,浏览器会在读取代码时,逐行地执行脚本代码.而对于传统编程来说,会在执行前对所有代码进行编译.   JS的用途:使用JS提升用户的体验.使HTML动起来. 2.JS的引入方式: (1):页面内直接编写JS代码,JS代码需要使用<script></script>. (2):将JS的代码编写到一个.js的文件中,在HTML中引入该JS代码即可.    <script  type=&

java复习基础篇——代码执行顺序

代码块:在Java中,使用{}括起来的代码成为代码块 根据其位置和声明的不同,可以分为局部代码块:局部位置,用于限定变量的生命周期 构造代码块:在类中的成员位置,用{}括起来的代码.每次调用构造方法执行前,都会先执行构造代码块. 作用:可以把多个构造方法的共同代码放在一起. 静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰 作用:一般是对类进行初始化 public class BlockTest { { System.out.println("444 BlockTes

java复习基础篇—-JVM内存结构(转)

主要内容如下: JVM启动流程 JVM基本结构 内存模型 编译和解释运行的概念 一.JVM启动流程: JVM启动时,是由java命令/javaw命令来启动的. 二.JVM基本结构: JVM基本结构图: <深入理解Java虚拟机(第二版)>中的描述是下面这个样子的: Java中的内存分配: Java程序在运行时,需要在内存中的分配空间.为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. 具体划分为如下5个内存空间:(非常重要) 栈:存放局部变量

java复习基础篇——Mysql数据库

数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. mysql的dos窗口启动关闭命令:net start mysql和net stop mysql 登录命令:(1)mysql -u用户名 -p密码      (2)mysql --host=ip地址 --user=用户名 --password=密码 DOS操作数据乱码解决: 我们在dos命令行操作中文时,会报错ERROR 1366 (HY000): Inco

java复习前端篇——HTML

HTML:超文本标记语言(页面中可以包含图片.音乐.链接.程序等非文字元素,通过一组标签的形式描述事物的一门语言) HTML的结构标签:根标签:<html>.头标签:<head>.体标签:<body> HTML的字体标签:<font> 属性:color {字体颜色分为两种(1)英文单词设置:black,red,green,blue...(2)使用16进制数设置:#FFFFFF , #FFF} size{字体的大小} face{字体的样式} HTML的排版标签

java复习前端篇——Jquery

1.Jquery概述 轻量级的JS的类库.对JS进行封装.JQuery的作用:做页面的特效,页面异步操作.(使用时首先引入Jquery文件{注意版本}) 2.jq的入口函数 jq是等页面的DOM树绘制完成后进行执行.可以编写多个入口函数.而js的匿名函数,只能编写一个. 传统的JS的方式:页面加载的事件只能执行一次.    window.onload = function(){} Jquery原始写法    $(document).ready(function(){  // 在这里写你的代码..

SpringBoot系列教程web篇Listener四种注册姿势

java web三要素Filter, Servlet前面分别进行了介绍,接下来我们看一下Listener的相关知识点,本篇博文主要内容为SpringBoot环境下,如何自定义Listener并注册到spring容器 I. 环境配置 1. 项目搭建 首先我们需要搭建一个web工程,以方便后续的servelt注册的实例演示,可以通过spring boot官网创建工程,也可以建立一个maven工程,在pom.xml中如下配置 <parent> <groupId>org.springfra

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl