jsp编码问题与内置对象


js编码函数:
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();
2、第二处是jsp文件的输出编码, 相当于response. setCharacterEncoding() ;如果第二处未设置,默认根据第一处的设置;如果第一处也未设置,默认是iso-8859-1;
3、第三处指浏览器的显示编码,主要是静态页面的,如果是jsp文件,则1和2优先生效;如果1和2无误,此处可不设置;
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.ServletRequestRequest
response响应对象(服务器传回给客户端的回应)javax.servlet.SrvletResponsePage
pageContext页面上下文对象(管理网页的属性)javax.servlet.jsp.PageContextPage
session会话对象(与请求有关的会话期)javax.servlet.http.HttpSessionSession
application应用程序对象(servlet正在执行的内容)javax.servlet.ServletContextApplication
out输出对象(用来传送回应的输出)javax.servlet.jsp.JspWriterPage
config配置对象(servlet的构架部件)javax.servlet.ServletConfigPage
page页面对象(JSP页面本身)javax.lang.ObjectPage
exception例外对象(针对错误网页,未捕捉的例外)javax.lang.ThrowablePage

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文件中使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值