文章目录
内置对象简介:
- 由JSP容器实现和管理( JSP 内部对象是 Web 容器加载的一组类),在所有JSP页面中都能使用内部对象。
- 它不像一般的Java对象那样用”new”去获取实例,而是可以直接在JSP页面使用的对象
- 内置对象的名称是 JSP 的保留字
- JSP 使用 Java 定义的内置对象来访问网页的动态内容
- 内置对象只对表达式和Scriptlet有用,在声明中不能使用
JSP的常用内置对象:request、response、session、application和out。
HTTP请求报文的基本结构
request对象
是实现javax.servlet.HttpServletRequest 接口的类的一个实例,该对象封装了一次请求,客户端的请求参数都被封装在该对象里。
作用:
- 取得请求参数的值;
- 操作request范围的属性;
- 执行include指令或forward指令。
处理汉字信息
防止乱码:
JSP页面文件的编码时UTF-8编码,让request对象在获取信息之前用request.setCharacterEncoding(“utf-8”)设置编码。
在头部添加 ContentType 属性,可解决页面汉字显示乱码问题(以下例子的前提是浏览器支持 gb2312 的编码)
<%@ page contentType="text/html; charset=gb2312" %>
1、避免通过post方式提交数据时产生乱码:
(1)Web客户(如浏览器)post的数据是什么编码,则服务器端就以什么编码来获取
(2)如浏览器发送的数据是GB2312编码,接收数据时的设置是
<%request.setCharacterEncoding("GB2312");
String firstName =request.getParameter("firstName"); %>
只对POST方式提交的数据有效,对GET方式提交的数据无效!
2、如果提交方式是get,要避免接收时乱码:
(1)可通过手工转换(以下假定客户方发送时采用GB2312编码):
String textContent=request.getParameter("boy");
byte b[]=textContent.getBytes("ISO-8859-1");
textContent=new String(b);
或 textContent=new String(b,”GB2312”);
此方法对post方式发送的数据编码也有效,所以最通用。
(2)通过修改Tomact的conf目录下的server.xml来设置全局的get方式发送数据的编码:
<Connector port="8080"<