从上一篇Servlet入门学习(一)中我们大致了解了servlet的特点,以及使用过程,这一篇我们将针对servlet中两个重要的对象Request和Response做一个大致的讲述。

一、Request对象学习

作用:封存了当前请求的所有请求信息。
使用方式

  • 获取请求头数据
req.getMethod()//获取请求方式
req.getRequestURL()//获取请求URL信息
req.getRequestURI()//获取请求URI信息
req.getScheme()//获取传输协议
  • 获取请求行数据
req.getHeader()//获取指定的请求头信息
req.getHeaderNames()//获取请求头的键名的枚举集合
  • 获取用户数据
req.getParameter()//返回指定的用户数据
req.getParameterValues()//返回同键不同值的请求数据(多选)返回的是数组
req.getParameterNames()//返回所有用户请求数据的枚举集合。

注意:

  1. resquest对象由tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法;
  2. 如果要获取的请求数据不存在,不会报错,返回null。

实例代码展示:

import java.io.IOException;
import java.util.Enumeration;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class reequest_demo extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求头信息// 获取请求方式String method = req.getMethod();// 获取请求URLStringBuffer requestURL = req.getRequestURL();// 获取请求URIString requestURI = req.getRequestURI();// 获取协议String scheme = req.getScheme();System.out.println(method + " " + requestURL + " " + requestURI + " " + scheme);// 获取请求行数据// 获取指定的请求行信息String header = req.getHeader("User-Agent");System.out.println(header);// 获取所有的请求行的键的枚举Enumeration e = req.getHeaderNames();while (e.hasMoreElements()) {String name = (String) e.nextElement();String value = req.getHeader(name);System.out.println(name + ":" + value);}// 获取用户数据(不管是get还是post都是用req.getParameter)String parameter = req.getParameter("uname");String parameter2 = req.getParameter("id");System.out.println(parameter + " " + parameter2);// 如果有多个键值相等的时候使用String[] parameterValues = req.getParameterValues("fav");for (String val : parameterValues) {System.out.println(val);}}}

二、Response对象学习

作用:用来响应数据到浏览器的一个对象
使用方式:

  • 设置响应头
setHeader(String name,String value);//在响应头中添加响应信息,但是同键会覆盖
addHeader(String name,String value);//在响应头中添加响应信息,但是同键不会覆盖,并同时存在
  • 设置响应状态
sendError(int num,String msg);//自定义响应状态码
  • 设置响应实体
resp.getWrite().write(String str);//响应具体的数据给浏览器
  • 设置响应编码格式
resp.SetContentType(“text/html”,”charset=utf-8”);

实例代码展示:

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 response_demo extends HttpServlet{@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {/*Service请求处理代码流程*///1 获取请求信息//获取请求头//获取请求行//获取用户数据//2 处理请求//3 响应处理结果//---------------以下是response对象操作--------------------------//设置响应头//设置响应编码格式//resp.setHeader("content-type", "text/html;charset=utf-8");resp.setContentType("text/html;charset=utf-8");//resp.setContentType("text/plain;charset=utf-8");//resp.setContentType("text/xml;charset=utf-8");resp.setHeader("mouse", "66");resp.setHeader("mouse", "89");resp.addHeader("hlc", "23");resp.addHeader("hlc", "66");//设置响应状态码//resp.sendError(405, "this is a mistake test");//设置响应实体resp.getWriter().write("<b>resp study 测试</b>");}
}

三、总结

Service请求处理代码流程:

  • 设置响应编码格式
  • 获取请求数据
  • 处理请求数据
    • 数据库操作(mvc思想)
  • 响应处理结果

Servlet入门学习(二)相关推荐

  1. hadoop hive hbase 入门学习 (二)

    hadoop 自学系列                hadoop hive hbase 入门学习 (一) hadoop安装.hdfs学习及mapreduce学习 hadoop 软件下载 (hadoo ...

  2. JBox2d入门学习二 -----我的小鸟

    入门学习一当中我学会了如何定义并且创建一个世界,在世界当中定义并且创建一个刚体,并尝试给刚体一个力.最近比较忙..现在抽空实现了一个类似于愤怒小鸟的例子,先看看图吧.   贴代码,注解写的比较详细了, ...

  3. OpenGL入门学习[二] 绘制简单的几何图形

    OpenGL入门学习[二] 本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形 我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念 ...

  4. 【Jsp】第二课 Servlet入门学习(一)

    什么是Servlet } servlet是由sun公司提供的一门用于开发动态web资源的技术 } Servlet的核心是javax.servlet.Servlet接口,所有的Servlet 必须实现这 ...

  5. Servlet入门学习笔记

    Servlet入门 基本概述 Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态W ...

  6. 【入门学习二】基于 FPGA 使用 Verilog 实现蜂鸣器响动的代码及原理讲解

    目录 一.知识了解 二.模块设计 三.程序实现 四.管脚配置及结果展示 五.写给小白看的 上一篇博文:[入门学习一]基于 FPGA 使用 Verilog 实现按键点灯代码及原理讲解 功能描述:通过前面 ...

  7. Shader Forge 入门学习(二) 实现发光、火焰燃烧、溶解、扭曲效果

    引言:本篇博客主要记录ShaderForge的常用案例,包括外发光.火焰燃烧.溶解.扭曲等效果.由于内容较多会分成几篇博客记录.如果您对Shader Forge的常用操作还不熟悉,请先看 Unity3 ...

  8. Servlet入门 学习

    思维导图 导学 在本节课程中需要了解什么是b/s架构模式,浏览器与服务器.掌握servlet初步开发技巧,掌握servlet开发原理. 软件结构发展史 B/S模式的执行流程 什么是服务器 服务器:向终 ...

  9. Spring 入门学习二之IOC

    今天来学习Spring ioc . 一.spring jar 包导入 在 spring 官网下载开发包 spring-framework-4.2.4.RELEASE,然后导入需要的 jar 包到项目 ...

  10. java day37【web相关概念回顾 、web服务器软件:Tomcat 、Servlet入门学习】

    第一章  web相关概念回顾 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资 ...

最新文章

  1. RabbitMQ 七战 Kafka,差异立现!
  2. Java的Exception和Error面试题10问10答
  3. JPA学习(6)JPQL
  4. Linux 下安装和配置TSM 7.1
  5. Qt修炼手册8_常用的容器类QVector和QList
  6. 关于-32768补码的问题
  7. 鸿蒙os开发者大会的时间,华为开发者大会2020时间已确定,鸿蒙2.0和EMUI 11即将到来...
  8. 通过fork进程爆破canary
  9. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作...
  10. 第一个Net+Mysql的例子,比想象的简单很多
  11. 【时间序列预测】基于matlab麻雀算法优化LSTM时间序列预测【含Matlab源码 JQ001期】
  12. redismanager 获取不到yml中的密码_恋爱物语APP:在城市的孤独中,获取真爱密码...
  13. vant ui的dialog二次封装使用
  14. sublime的注意事项
  15. Git分支 合并 暂时储藏分支 标签 链接多个仓库
  16. 深入理解C# Unity List集合去除重复项 Distinct
  17. Node.js 15 正式版发布
  18. 计算机考研abc区划分,研究生地区分类-考研ABC区域的划分考研ABC区域的划分, – 手机爱问...
  19. filter指定过滤不起作用
  20. 花5分钟用Redis撸一个东京奥运会金牌排行榜

热门文章

  1. 云计算OpenStack环境搭建
  2. Python代码画喜羊羊怎么画_卧槽!没想到,用Python竟能做五仁月饼
  3. 基于Spring Boot企业微信点餐系统项目总结
  4. opencv python 实现图片添加带透明的 logo
  5. 关于火车采集文章发布到wordpress后台待审核模块的设置
  6. matlab求稳定时间ts,一阶方程调节时间ts
  7. android原生TTS+语音引擎 实现纯离线 免费的中英TTS
  8. 卖辣椒包的也要IPO:给肯德基们“打工”,但志不在此
  9. QNX Hypervisor —— 虚拟设备
  10. phython学习记录 基础篇