`
soongbo
  • 浏览: 87174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Request对象详解

    博客分类:
  • Java
阅读更多

HttpServletRequest
  request.getRemoteAddr()//获取远程IP地址

HttpServletResponse
  response.setContentType("text/html;charset=gbk")//设置发送方式和字符集
  response.getWriter();//获取输出对象,构造PrintWriter对象
  返回响应
利用:
         1) PrintWriter out = response.getWriter                 // 用于返回文本数据给客户端
         2) ServletOutputStream out = response.getOutputStream   // 用于返回二进制数据给客户端

Servlet中从request获得参数的方法:
  String getParameter(String);
   有此参数但无值返回"";
   无此参数则返回:null
  String[] getParameterValues(String);
  Map getParameterMap();
  Enumeration getParameterNames();获得的是参数的名字,需要用名字再去获得参数的值
1)请阐述什么是ServletContext?
  一种servlet服务的上下文,每一个servlet实例都对应在一个web application中,都属于这个上下文,
即为这个servletContext.
  在一个servlet服务中,通过getServletContext()方法,获得上下文;
2)  如何在一个Servlet中调用另外一个Servlet;如何在两个Servlet之间传递数据
getServletContext().getRequestDispatcher("/xxxx/xxxx").forward(request,response);
request.setAttribute("xxxx",xxxx);------>requeset.getAttribute("xxxx");
   
Servlet中的方法:
init(ServletConfig);//初始化Servlet用
  init中有异常则servlet直接被回收,无异常则继续调用service()方法
  覆盖父类init(ServletConfig)可能会出错(因为父类函数会对config做保存处理,以便以后使用),可以调用super(config)解决
service(request,response);
//具体会调用HttpServlet的doGet,doPost(程序员在具体的servlet程序中覆盖了)方法实现功能,
destory();//销毁servlet实例的时候调用
Servlet生命周期:
装载,init(),service(),destory()
Servlet中进行页面转发:
  getServletContext().getRequestDispatcher("/user/user_list.jsp").forward(request, response);
或者:
  response.sendRedirect(request.getContextPath() + "/find.do");

Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别//转载
假定你的web application 名称为news,你在浏览器中输入请求路径:
http://localhost:8080/news/main/list.jsp
则执行下面向行代码后打印出如下结果:
1、 System.out.println(request.getContextPath());
打印结果:/news
  2、System.out.println(request.getServletPath());
打印结果:/main/list.jsp
3、 System.out.println(request.getRequestURI());
打印结果:/news/main/list.jsp
4、 System.out.println(request.getRealPath("/"));
打印结果:F:\Tomcat 6.0\webapps\news\test

///////////////////////////////////////request详解
1) getParameter(String name) 一般用它读取表单中参数
(2) getProtocol() 获取客户端向服务器端传送数据所依据的协议名称。
(3)getRemoteAddr() 获取客户端的IP地址。
(4)getRemoteHost() 获取客户端的名字。
(5)getServerName() 获取服务器的名字。
(6)getServerPort() 获取服务器的端口号。
(7)getHeader()获取客户端的浏览器类型。
1  object getAttribute(String name) 返回指定属性的属性值
2  Enumeration getAttributeNames() 返回所有可用属性名的枚举
3  String getCharacterEncoding() 返回字符编码方式
4  int getContentLength() 返回请求体的长度(以字节数)
5  String getContentType() 得到请求体的MIME类型
6  ServletInputStream getInputStream() 得到请求体中一行的二进制流
7  String getParameter(String name) 返回name指定参数的参数值
8  Enumeration getParameterNames() 返回可用参数名的枚举
9  String[] getParameterValues(String name) 返回包含参数name的所有值的数组
10  String getProtocol() 返回请求用的协议类型及版本号
11  String getScheme() 返回请求用的计划名,如:http.https及ftp等
12  String getServerName() 返回接受请求的服务器主机名
13  int getServerPort() 返回服务器接受此请求所用的端口号
14  BufferedReader getReader() 返回解码过了的请求体
15  String getRemoteAddr() 返回发送此请求的客户端IP地址
16  String getRemoteHost() 返回发送此请求的客户端主机名
17  void setAttribute(String key,Object obj) 设置属性的属性值
18  String getRealPath(String path) 返回一虚拟路径的真实路径


<%@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>getRequest</title>
</head>
<body>
<%
  out.println("Protocol: " + request.getProtocol() + "<br>");
  out.println("Scheme: " + request.getScheme() + "<br>");
  out.println("Server Name: " + request.getServerName() + "<br>");
  out.println("Server Port: " + request.getServerPort() + "<br>");
  out.println("Protocol: " + request.getProtocol() + "<br>");
  out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo() + "<br>");
  out.println("Remote Addr: " + request.getRemoteAddr() + "<br>");
  out.println("Remote Host: " + request.getRemoteHost() + "<br>");
  out.println("Character Encoding: " + request.getCharacterEncoding() + "<br>");
  out.println("Content Length: " + request.getContentLength() + "<br>");
  out.println("Content Type: " + request.getContentType() + "<br>");
  out.println("Auth Type: " + request.getAuthType() + "<br>");
  out.println("HTTP Method: " + request.getMethod() + "<br>");
  out.println("Path Info: " + request.getPathInfo() + "<br>");
  out.println("Path Trans: " + request.getPathTranslated() + "<br>");
  out.println("Query String: " + request.getQueryString() + "<br>");
  out.println("Remote User: " + request.getRemoteUser() + "<br>");
  out.println("Session Id: " + request.getRequestedSessionId() + "<br>");
  out.println("Request URI: " + request.getRequestURI() + "<br>");
  out.println("Servlet Path: " + request.getServletPath() + "<br>");
  out.println("Accept: " + request.getHeader("Accept") + "<br>");
  out.println("Host: " + request.getHeader("Host") + "<br>");
  out.println("Referer : " + request.getHeader("Referer") + "<br>");
  out.println("Accept-Language : " + request.getHeader("Accept-Language") + "<br>");
  out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding") + "<br>");
  out.println("User-Agent : " + request.getHeader("User-Agent") + "<br>");
  out.println("Connection : " + request.getHeader("Connection") + "<br>");
  out.println("Cookie : " + request.getHeader("Cookie") + "<br>");
  out.println("Created : " + session.getCreationTime() + "<br>");
  out.println("LastAccessed : " + session.getLastAccessedTime() + "<br>");
%>
</body>
</html>
分享到:
评论

相关推荐

    jsp request 对象详解

    jsp request 对象详解 ,对于入门级的同学来讲是好东西!!!

    实例详解JSP内置对象--request对象

    在用java做基于Web的开发时,不可避免的需要和request&response这两个对象打交道,因此,对它们的学习和掌握就显得至关重要。

    ASP内置对象Request和Response详解

    ASP内置对象Request和Response详解

    JSP的request对象实例详解

    JSP的request对象实例详解 一 request对象定义 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求...

    jsp全部内置对象详解

    jsp全部内置对象详解,out request response session application

    详解Django中Request对象的相关用法

    从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时并没有讲太多。 让我们回忆下:每个view函数的第一个参数是一个HttpRequest对象,就像下面这个hello()函数: from django...

    对Django 中request.get和request.post的区别详解

    Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 POST和GET都...

    JSP语法之隐式对象详解

    了解JSP 隐式对象的分类和组成 能够运用隐式对象进行JSP 编程 理解Page、Request、Session 和Application 范围的区别

    详解JSP 内置对象request常见用法

    request 对象是 HttpServletRequestWrapper 类的实例。它的继承体系如下: _request 对象继承层次结构图.png ServletRequest 接口的唯一子接口是 HttpServletRequest ,HttpServletRequest 接口的唯一实现类 ...

    Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解

    本文实例讲述了Zend Framework教程之请求对象的封装Zend_Controller_Request方法。分享给大家供大家参考,具体如下: 概述 请求对象是在前端控制器,路由器,分发器,以及控制类间传递的简单值对象。请求对象封装了...

    JSP 中request与response的用法详解

    request对象的介绍 我们先从request对象进行介绍: 我们知道http协议定义了请求服务器的格式: 请求行 请求头 空格 请求体(get请求没有请求体) 好了,这里我们就不详细介绍了,我们只看几个应用就可以了,没...

    实例详解JSP内置对象

    实例详解JSP内置对象 jsp九种内置对象:request, reponse, out, session, application, config, pagecontext, page, exception.

    JSP 9 大内置对象详解.txt

    Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。 Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在...

    PHP 中TP5 Request 请求对象的实例详解

    主要介绍了PHP 中TP5 Request 请求对象的实例详解的相关资料,这里提供实现代码帮助大家理解这部分内容,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics