request.getRequestURI();

request.getRequestURL();

getQueryString();//返回查询信息

getRemoteAddr();//得到来访者地址。

getRemoteHost();//返回发送请求的客户端的完整主机名。(必须DNS上注册过)

getRemotePort();//获得来访者使用的端口

getLocalAddr();//返回服务器的IP

getLocalName

getMethod();//得到客户机的请求方式

getHader("Accept-Encoding");获取某个请求头

Enumeration e = request.getHaders();获取某个头对应的所有

while(e.hasMoreElements()){

  String str = (String)e.nextElement();

}

getHeaderNames()得到每个名称 返回的也是Enumeration

--------------------------------------------------------

String value = getParameter("username");//获取页面上的name属性为username的数据

---------------------------------------------------------

Enumeration e = request.getParameterNames();//获取页面上所有name属性的值组成集合

while(e.hasMoreElements()){

  Sring name = (String)e.nextElement();

  String vlaue = request.getParameter(name);

}

--------------------------------------------------------------

String[] values = request.getParameterValues("username");//获取页面上所有name属性值为username的元素的value

-----------------------------------------------------------------

Map<String,String[]> map = request.getParameterMap();

User user = new User();//这是一个描述页面元素name和value的Bean的实例,

BeanUtils.populate(user,map);//将页面信息装到user对象中,比如username,页面上有两个元素,都name="username",User类中有一个字段private String[] usename;   populate

方法的做法就是:先获取所有的username的value,然后反射User类,将获取的username的value赋值给user对象中的username[]。

BeanUtils还有一个方法在这提一下:

BeanUtils.copyProperties(user,formbean);这个方法可以把一个bean的内容拷贝给另一个,但是只支持基本数据类型,如果有复杂数据类型要自己写一个转换器。

关于BeanUtils,参考http://www.cnblogs.com/flying607/p/3444459.html

------------------------------------------------------------------

下面这个取数据的方法只针对发送方式是post。

InputStream in = request.getInputStream();

int len = 0 ;

byte buffer[] = new byte[1024];

while((len=in.read(buffer))>0){

  String str = new String(buffer,0,len);

}

------------------------------------------------------------

request.setCharacterEncoding("UTF-8");//关于编码 request.setCharacterEncoding("UTF-8");这样设置客户机发来数据文字格式只对post方式有效

String line = request.getParameter("username");

System.out.println(line);

-------------------------------------------------------------

String line = request.getParameter("username");
  line=(new String(line.getBytes("iso8859-1"),"UTF-8"));//对于get方式,只能这样了。

//超链接中的?username="中国"也是如此,并且如果是超链接的话,把request.getParameter("username")换成request.getQueryString("username")也可以。

//但是get方式输入中文跳转时地址栏出现的username=%E4%B8%AD%E5%9B%BD,那么如果用getQueryString,这么处理是没用的。

//那应该怎么处理??http://www.cnblogs.com/flying607/p/3451835.html
  System.out.println(line);

response.setCharacterEncoding("UTF-8");
  response.setHeader("Content-type","text/html;charset=UTF-8");

//response.setContentType("text/html;charset=UTF-8"); 和上边两句一样

PrintWriter out = response.getWriter();
  out.println(line);

-------------------------------------------------------------------------------------------------

request实现转发

除了servletContext可以实现转发,request也能做到。

Strin data = "abdsagge";

request.setAttribute("data",data);//转发带上数据的方式。

request.getRequestDispatcher("/message.jsp").forward(request,response);

附ServletContext的转发:

RequestDispatcher rd = this.getServletContext().getRequestDispatcher("1.jsp");

rd.forward(request,response);//页面将转至1.jsp页面,与重定向不同,这样仅请求了一次服务器,而重定向是两次。

servlet request的更多相关文章

  1. Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed.

    org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nes ...

  2. org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608

    一.异常信息 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet reque ...

  3. Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location

    spring-boot项目,生产环境运行一段时间后,上传图片报错,如下: threw exception [Request processing failed; nested exception is ...

  4. jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失

    jsp当做第二个servlet  request的生命周期   请求 响应  不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束  request的域消失

  5. Springboot 上传报错: Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: The multi-part request contained parameter data (excluding uploaded files) that exceede

    Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: The ...

  6. SpringBoot 上传文件突然报错 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608

    异常信息 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request ...

  7. Servlet Request的 getInputStream() getReader() getParameter()

    如果你知道了这三者的区别,请忽略 最近碰到了servlet对入参获取方式的处理问题,因为二方库处理不当,导致了获取不到入参的情况,之前也知道这三个方法不兼容,现简单介绍下 1.这三个获取入参的方法,是 ...

  8. Servlet Request 请求转发

    request.getRequestDispatcher("logined.jsp").forward(request, response);    //登录用户在登录页面验证通过 ...

  9. Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息

    首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...

  10. Servlet - request对象相关

    request对象中封装了当前请求的所有请求信息, request对象由Tomcat服务器创建, 并作为实参传递给处理请求的Servlet的service()方法 1. 获取请求头数据 // 获取请求 ...

随机推荐

  1. PHP -- 页面传值的6种获取方法

    1.PHP4以后获取传值的方法 一般在页面中传值常见的是POST.GET和COOKIE几种,所以下面我也主要介绍这几种.PHP4以后都采用的是$_POST.$_GET等数组来获取网页传值.在PHP3. ...

  2. 在centos6.0上通过nginx远程执行shell

    nginx本身不支持直接调用shell脚本,我们可以通过安装fastcgi程序,让nginx把调用shell的http请求交给fastcgi程序去处理,然后nginx 再将结果返回给用户方式间接调用s ...

  3. spring ioc 理解

    springIOC 作用 springIOC 是sprig的特性.称作控制反转.将对象的创建,初始化,销毁,交给spring容器管理. 原理 在spring容器启动的时候,通过反射的方式,主动加载(或 ...

  4. spring aop 理解

    aop简介 aop是spring 的两大特性之一,还有IOC.主要提供面向切面的编程思想,区分于面向对象编程. aop原理(动态代理+反射) 在一个方法体中,可能会存在很多其他的方法调用,我们可以把每 ...

  5. Java实现-2016百度秋招(颜色反转、相似字符串)

    1.颜色反转 题目描述: 在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色.例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红.在这道题中,我们要求把给定的一种颜色取反,方法是 ...

  6. Vue2.0实现双向绑定的原理

    一.几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定,而我所理解的双向数据绑定无非就是在单向绑定的基础上给可输入元素(input.textare等)添加了change(in ...

  7. 普通主板设置BIOS实现电脑插电自动启动

    说明: 1.为什么要实现这种功能,很多时候在民间都基本用普通PC来做小型服务器,公司的私服等等,而这些普通PC在民用电环境中经常会停电,一停就会导致服务器不能自动来电重启,所以这个功能来点开机是必须的 ...

  8. java类中属性的加载顺序,以及内存分配情况介绍

    看下面例子及说明: /** 假如有外部类调用了该类,代码为:new StaticTest(); 那么下面是类属性的加载顺序 */ public class StaticTest{ public int ...

  9. Segger Real Time Terminal RTT JLINK 客户端软件 GUI 版本

  10. Emacs复制粘贴乱码问题以及修改当前文件编码

    编码修改: 为了和Linux兼容,win环境下将emacs编码修改为utf-8,随意复制了其他关于emacs编码的配置,如下: (setq locale-coding-system 'utf-8) ( ...