什么是JSP内置对象
JSP内置对象,就是在编写JSP页面时,不需做任何声明就可以直接使用的对象。
例如如下代码:
int[] value={
20,30,10,};
for(int i : value){
out.print(i);
}
代码out.print()可以实现页面输出,因为out是JSP内置对象之一。该方法用于在页面中显示字符串信息。
所谓内置对象就是由Web容器加载的一组Servlet API的实例,这些实例由JSP规范进行了默认的初始化操作,可以世界在jSP中使用。需要注意,JSP的内置对象名称均是JSP保留字,不得当作自定义变量名使用。
内置对象request
1.request对象
request对象是最常用的JSP内置对象之一,其中包含了有关浏览器请求的信息:
可以在JSP页面中通过调用request对象的方法来获取请求中的相关数据及浏览器的相关信息,request对象用于处理请求的方法有很多:
示例:request方法使用:
<%
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
String[] channels=request.getParameterValues("channel");
%>
代码说明:
(1)request的getparameter()方法是最为常用的,使用此方法可以获得请求中所提交的参数值。
(2)如果在页面中出现了多个复选框,复选框名称都是channels,则使用getParameterVlaues(“channel”)方法就可以获取一个字符串数组,该数组中存储的是所有选中的复选框对应的值。
(3)request对象的setCharacterEncoding()方法用于设置字符集,可以用来解决中文乱码的问题。在Web应用中,通常都包括了浏览器,Web服务器,Web应用程序和数据库等部分,每一部分都可能使用不同的字符集,从而导致字符数据在各种不同的字符集之间转换时,出现乱码问题。
中文乱码问题
以POST方法提交表单数据中有中文字符时
注意:页面和浏览器请求也应一致使用UTF-8编码,通过JSP页面设置page指令的contentType属性,指定页面内容和编码格式,语法如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
以GET方法提交表单数据中有中文时
当采用get犯法提交表单数据时,提交的数据作为查询字符串被附加到URL的末尾发送到服务器,对于这部分数据,在服务器端调用setCharacterEncoding()方法是不起作用的,我们需要得到请求参数值后,进行编码转换。
在Tomcat中设置字符集
当采用GET方法提交时,还可以配置Tomcat的字符集,配置方式:找到Tomcat目录结构\conf\server.xml文件,在Connector元素中添加URLEncoding属性,将它的值设为UTF-8.
如果在Tomcat中设置了字符集编码,对于浏览器以GET方式提交的数据无须在JSP页面中在进行编码处理。
内置对象response
JSP中包含了多个内置对象,各自有不同的功能,与request相应的是response对象,response对象可用于设置相应参数及取得响应等,
与request方法一样,response对象也提供了多个方法用于处理HTTP响应
方法名称 | 说明 |
---|---|
void addCookie(Cookie cookie) | 向客户端添加Cookie |
void setContentType(String type) | 设置HTTP响应的contenttype类型 |
void setCharacterEncoding(String charset) | 设置响应所采用的字符编码类型 |
void sendRedirect(String location) | 将请求重新定位到一个新的URL上 |
最常用的方法是void sendRedirect(String location)这个方法用于将请求重新定向到一个新的URL上。
示例:
登录页面代码login.jspr如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<form action="control.jsp" name="form1" method="post">
用户名:<input type="text" name="userName">
密码:<input type="password" name="pwd">
<input type="submit" value="登录">
</form>