内置表示不需要new便可直接使用。

一、基础知识

  1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快。

  2.Get提交不能超过2k,安全性不高,查询、搜索时做,效率高,Post提交的信息在Html header里,信息量大,在注册、修改、上传时候。

二、out内置对象

  向客户端输出信息,是JspWriter的对象,常用的有println、flush和clear和clearbuffer,后两者的区别是,潜着在flush调用后会抛出异常,前者不会....抛出异常部分后面的代码都不会被执行,还有getBufferSize(缓冲区大小,如果不设置则为0),getRemaining(缓冲区剩余大小),isAutoFlush(缓冲区满时是否自动刷新)。

三、Request对象

  是HttpServletRequest的实力,客户端请求完成之前,一直存在。

 <%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form name="regiserForm" action="mainPage.jsp" method="post">
<table>
<tr>
<td>姓名</td>
<td>
<input type="text" name="userName">
</td>
<tr>
<tr>
<td>爱好</td>
<td>
<input type="checkbox" name="favourite" value="羽毛球">羽毛球
<input type="checkbox" name="favourite" value="篮球">篮球
<input type="checkbox" name="favourite" value="网球">网球
<input type="checkbox" name="favourite" value="足球">足球
</td>
</tr>
<tr>
<td colspan=2>
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>

  这是注册页面,第一点需要注意的是

<%@ page language="java" contentType="text/html; charset=utf-8"%>

  charset在contentType里面(看冒号),单独写的话提示找不到属性。第二点是布局问题,名字和input分别占用一个td,工两个td,所以下面的提交是colspan=2。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String userName= request.getParameter("userName");
String[] favourite = request.getParameterValues("favourite");
out.println("姓名&nbsp&nbsp&nbsp"+userName);
out.print("爱好");
for (int i=1; i<favourite.length; i++) {
out.println("&nbsp&nbsp&nbsp"+favourite[i]);
}
%> </body>
</html>

  由于页面编码方式都是UTF-8,但是参数传输方式默认是ISO-8859-1,所以现浏览器里的结果是乱码。在接受参数之前加入

 request.setCharacterEncoding("UTF-8");

  

  下面测试Get传递参数

 <!-- 直接这样会出现空指针异常,因为并没有传递爱好属性,而mainPage直接去获取爱好,所以空指针,因此需要判断一下 -->
<a href="mainPage.jsp?userName=李四">测试Get方法(URL传参数)</a>

..........................

    request.setCharacterEncoding("UTF-8");

    String userName= request.getParameter("userName");
out.println("姓名&nbsp&nbsp&nbsp"+userName);
if(request.getParameterValues("favourite")!=null) {
String[] favourite = request.getParameterValues("favourite"); out.print("爱好");
for (int i=1; i<favourite.length; i++) {
out.println("&nbsp&nbsp&nbsp"+favourite[i]);
}
}

  按理说这种方式传递中文不论地址栏还是现实的结果都会是乱码,但是我这竟然没有,如果有的话

   <Connector port="9999" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

  配置Tomcat下的server.xml,第一个Connector,可以修改端口号,同事最后加入URIEncoding这个属性。或者

String str= request.getParameter("userName");
String userName = new String(str.getBytes("ISO-8859-1"),"UTF-8");

  还有一种就是为Connector 节点添加useBodyEncodingForURI="true" 属性即可。

  还可以在request对象里setAttribute('"password","123456")下面通过getAttribute("password")来获得,原来是getParameter。

  getContentType:或者MIME类型

  getProtocol:协议类型和版本号

  getServerPort:服务器端口号

  getRemoteAddr:客户端的IP地址

  真是的IP地址因为是动态IP,所以找不到真是的。

JSP中Out和Request对象详解的更多相关文章

  1. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  2. jsp request 对象详解

    转自:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 1.request对象 客户端的请求信息被封装在request对象中 ...

  3. request对象详解

    先来了解一下Request的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值getAttribute(String name): ...

  4. 5.request对象详解

    可以通过request对象获取表单提交的值,get或者post方式都是可以得 例子:login.jsp表单 <%@ page language="java" import=& ...

  5. CorelDRAW中如何再制对象详解

    再制对象指的是快捷地将对象按一定的方式复制为多个对象,此种复制是复制的复制,再制不仅可以节省复制的时间,再制间距还可以保证复制效果.本教程将详解如何在CorelDRAW软件中再制对象. CorelDR ...

  6. response对象和request对象详解

    request方法列举:request.getAuthType() // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是nullrequest.getCh ...

  7. django中的request对象详解

    Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. 我们来看一看这个HttpRequest对 ...

  8. Django_视图中的request对象详解(八)

    本文参考:http://www.cnblogs.com/MnCu8261/p/5871085.html Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并 ...

  9. django的views里面的request对象详解大全

    简介 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 djang ...

随机推荐

  1. java关键字(详解)

    目录 1. 基本类型 1) boolean 布尔型 2) byte 字节型 3) char 字符型 4) double 双精度 5) float 浮点 6) int 整型 7) long 长整型 8) ...

  2. Linux文档时间戳查看和修改——stat

    查看文件时间戳命令:stat awk.txtFile: `awk.txt'Size: 20  Blocks: 8  IO Block: 4096  regular fileDevice: 801h/2 ...

  3. Remove Duplicates from Sorted List II——简单的指针问题

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  4. Windows内核读书笔记——Windows异常分发处理机制

    本篇读书笔记主要参考自<深入解析Windows操作系统>和<软件调试>这两本书. IDT是处理异常,实现操作系统与CPU的交互的关口. 系统在初始化阶段会去填写这个结构. ID ...

  5. 环状序列(UVa1584)

    题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  6. java EE :GenericServlet 抽象类、ServletConfig 接口

    ServletConfig 接口:当前 Servlet 在 web.xml 中相关配置信息 package javax.servlet; import java.util.Enumeration; p ...

  7. [实战]MVC5+EF6+MySql企业网盘实战(21)——网盘操作日志

    写在前面 上篇文章介绍了一个bootstrap的分页插件,这篇将弄一个完整的例子,就以日志分页为例说明如何请求服务端然后进行分页. 系列文章 [EF]vs15+ef6+mysql code first ...

  8. DER编码简介

    概念:DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案. DER与BER的区别:DER在BER的基础上增加了如下限制:长度小于等于127,必须使用短型长度表示法.长度大于127,必 ...

  9. (13) go map

    1.定义 map 无序, key唯一 (1) (2) (3)定义+赋值 2. map的值时map, 记得要make 3.增删改查 (1)增 改 (2)删除 (3)查 4.遍历 值map 嵌套for, ...

  10. 洛谷P1438 无聊的数列 [zkw线段树]

    题目传送门 无聊的数列 题目背景 无聊的YYB总喜欢搞出一些正常人无法搞出的东西.有一天,无聊的YYB想出了一道无聊的题:无聊的数列...(K峰:这题不是傻X题吗) 题目描述 维护一个数列{a[i]} ...