escape,encodeURI,encodeURIComponent
1、escape:URI会被编码,然后不可识别成为一个正确的URI
2、encodeURI:URI中合法的标识不会被编码
3、encodeURIComponent:如果?后带的参数是URI,不编码这个URI的话,此URI不会正确的跳转,会有多个http://xxxx
2、例子:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=iso8859-1"%>
<html>
<head>
<title>中文问题</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
</head>
<body>
我是个好人
</body>
1、第一处为jsp文件保存的编码方式 和 请求参数编码,相当于request. setCharacterEncoding();
post请求方式的编码:请求体方式请求。
1、request.setCharacterEncoding(),指定服务器接受来自客户端请求的编码方式;
2、response.setCharacterEncoding(),指定服务器向客户端发送响应时的编码方式;
get请求方式的编码:get方式是在url后面添加要请求的参数,类似于直接在地址栏输入url。
1、String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") ;将得到的参数用iso-8859-1解码,再用utf-8编码;
2、修改tomcat的uriencoding,在tomcat/conf/server.xml文件中。
3、内置对象
对象 | 说明 | 类型 | 作用域 |
request | 请求对象(包含来自GET/POST请求的参数) | javax.servlet.ServletRequest | Request |
response | 响应对象(服务器传回给客户端的回应) | javax.servlet.SrvletResponse | Page |
pageContext | 页面上下文对象(管理网页的属性) | javax.servlet.jsp.PageContext | Page |
session | 会话对象(与请求有关的会话期) | javax.servlet.http.HttpSession | Session |
application | 应用程序对象(servlet正在执行的内容) | javax.servlet.ServletContext | Application |
out | 输出对象(用来传送回应的输出) | javax.servlet.jsp.JspWriter | Page |
config | 配置对象(servlet的构架部件) | javax.servlet.ServletConfig | Page |
page | 页面对象(JSP页面本身) | javax.lang.Object | Page |
exception | 例外对象(针对错误网页,未捕捉的例外) | javax.lang.Throwable | Page |
request 对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。
常用的方法有:getParameter、getParameterNames 和getParameterValues 通过调用这几个方法来获取请求对象中所包含的参数的值。
response 对象代表的是对客户端的响应,也就是说可以通过response 对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用。
pageContext 对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性。
常用的方法有 :findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope
一般情况下pageContext对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处理。
session 对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。
概要
HTTP是无状态(stateless)协议;
Web Server 对每一个客户端请求都没有历史记忆;
Session用来保存客户端状态信息;
由Web Server 写入;
存于客户端;
客户端的每次访问都把上次的session记录传递给Web Server;
Web Server读取客户端提交的session来获取客户端的状态信息
application 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。
out 对象代表了向客户端发送数据的对象,与“response” 对象不同,通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。常用的方法除了pirnt和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。
“config” 对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。
“page” 对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。
“exception” 对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。