深入理解ServletRequest与ServletResponse

 深入理解ServletRequest与ServletResponse

2010-02-08 21:49:24

标签:Request 职场 休闲 Response

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/275586

深入理解ServletRequest与ServletResponse

请求和相应是Web交互最基本的模式,在Servlet中,分别用HttpServletRequest与HttpServletResponse来表示Http请求和响应。这两个类均来自javax.servlet.http包,是J2EE Servlet与JSP规范的一部分,因此,谈及

HttpServletRequest与HttpServletResponse的时候,其实都是和Servlet(包括JSP)有关的。与HTML、ASP、PHP是没有关系的,你也无法在HTML中使用它们。

下面是一个详细过程:

一、ServletRequest

代表一个HTTP请求,请求在内存中是一个对象,这个对象是一个容器,可以存放请求参数和属性。

1、请求对象何时被创建,当通过URL访问一个JSP或者Servlet的时候,也就是当调用Servlet的service()、doPut()、doPost()、doXxx()方法时候的时候,执行Servlet的web服服务器就自动创建一个ServletRequest和ServletResponse的对象,传递给服务方法作为参数。

2、请求对象由Servlet容器自动产生,这个对象中自动封装了请求中get和post方式提交的参数,以及请求容器中的属性值,还有http头等等。当Servlet或者JSP得到这个请求对象的时候,就知道这个请求时从哪里发出的,请求什么资源,带什么参数等等。

3、ServletRequest的层次结构

javax.servlet.ServletRequest 
  javax.servlet.http.HttpServletRequest

4、通过请求对象,可以获得Session对象和客户端的Cookie。

5、请求需要指定URL,浏览器根据URL生成HTTP请求并发送给服务器,请求的URL有一定的规范:

二、ServletResponse

也是由容器自动创建的,代表Servlet对客户端请求的响应,响应的内容一般是HTML,而HTML仅仅是响应内容的一部分。

相应对象有以下功能:

1、向客户端写入Cookie

2、重写URL

3、获取输出流对象,向客户端写入文本或者二进制数据

4、设置响应客户端浏览器的字符编码类型

5、设置客户端浏览器的MIME类型。

三、GET与POST的本质区别

get请求的参数参数在url里面,不安全,post请求的参数放在请求体中,安全。

四、认识MIME类型

http://doc.java.sun.com/DocWeb/#r/Java%20EE%205/javax.servlet.ServletRequest/columnMain

http://doc.java.sun.com/DocWeb/#r/Java%20EE%205/javax.servlet.ServletResponse/columnMain

参考资料:

HeadFirst Servlet&JSP

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/275586

时间: 2024-10-05 02:56:12

深入理解ServletRequest与ServletResponse的相关文章

第一个web程序(ServletRequest , ServletResponse)

一.ServletRequest 1.获取参数的方法(四种) > String getParameter(String name): 根据请求参数的名字, 返回参数值. 若请求参数有多个值(例如 checkbox), 该方法只能获取到第一个提交的值. > String[] getParameterValues(String name): 根据请求参数的名字, 返回请求参数对应的字符串数组. > Enumeration getParameterNames(): 返回参数名对应的 Enume

ServletRequest和ServletResponse

1 两个接口的实现类都是服务器给予实现的,并在服务器调用service方法传入 2 ServletRequest 可以获取任何请求信息: 1)获取请求参数:    String getParameter(String name):根据请求参数名字,返回参数值    若请求参数有多个值(checkbox),只能取到第一个提交的值   String[] getParameterValues(String name)   Enumeration getParameterNames()   Map ge

javaWEB中的ServletRequest,ServletResponse的使用,及简化Servlet方法

首先说一下ServletRequest,ServletResponse类的使用方法: public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { /* * 如何在Servlet中获取请求信息: * (1):Servlet的servlet()方法用于应答请求:因为每次请求都会调用servlet()方法: * ServletRequest: 封

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

JavaWeb学习中的小问题

1. HttpServletRequest和ServletReque之间的区别? 再看别人项目的时候突然看到一句: ServletRequest request:HttpServletRequest hsRequest = (HttpServletRequest) request;// 获取HttpServletRequest对象    瞬间就有一点懵逼 ,赶紧查了一下,原来是爸爸和儿子的关系...爸爸(ServletRequest)很牛逼,适用的请求很广泛,儿子(HttpServletRequ

Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件,并修改文件内容为: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUB

javaweb04 ServletRequest&amp;ServletResponse

WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个歌规则就是 HTTP协议HTTP协议是超文本传输协议,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应.对每一个页面的访问,浏览器与WEB服务器都只要建立一次单独的连接浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对.客户机 建立连接 发送请求 回送响应信息 关闭连接服务器

深入理解struts的运行机制

在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化.也谈不上优化,只是加上了点自己的想法 jar包准备 为什么会用到这两个jar包呢,因为我需要通过这个jar来解析xml配置文件. 新建项目 流程梳理 struts配置文件 <?xml version="1.0" encoding="UTF-8"?> <struts> <

javaweb回顾第一篇servlet的学习和理解

前言:关于servlet相信学过java的都不会陌生,我最近又把这些基础知识整理一遍,便于自已能更好的理解ssm或者ssh,下面开始 1:Servlet接口 servlet有5个方法下面分别简单的介绍每个方法的作用 1.1:public void init(ServletConfig config) 在servlet被实例化以后,servlet容器会调用init方法来初始化该对象,这个方法主要是完成在请求前的一些初始化工作,比喻调用数据库连接,实例化对象等 1.2:public void ser