jsp内置对象

来源:互联网 发布:在生产实践中用于数据 编辑:程序博客网 时间:2024/06/03 22:50

一、JSP的九大内置对象:(ace  opp  rrs)

分别为:aplication、config、exception、out、page、pagecontext、request、response、session

二、request内置对象的基本内容:

1、内置对象是指:由web容器创建的对象,开发人员不需要进行实例化就可以直接使用的对象;

2、request内置对象的作用:服务器用于获取客户端提交的数据;

3、request内置对象的创建时间:在服务端收到客户端发送的请求时创建,它是接收客户端数据的,所以在接收数据时才创建。此时服务端会同时创建request对象和response对象,先创建request对象来接收数据,后创建response对象来响应客户端。

4、request是javax.servlet.http.HttpServletRequest类的对象

5、request的方法:

(1)

<%
out.print("getProtocol()得到的协议类型是:");
out.print(request.getProtocol());

%>
<br/>

getProtocol()得到的协议类型是:HTTP/1.1 

(2)
<%
out.print("getScheme()得到的协议名称是:");
out.print(request.getScheme());
%>
<br/>

getScheme()得到的协议名称是:http 

(3)
<%
out.print("getServerName()得到的服务器主机名称是:");
out.print(request.getServerName());
%>
<br/>

getServerName()得到的服务器主机名称是:localhost 

(4)
<%
out.print("getServerPort()得到的端口号是:");
out.print(request.getServerPort());
%>
<br/>

getServerPort()得到的端口号是:8080 

(5)
<%
out.print("getRemoteAddr()得到客户端的IP地址是:");
out.print(request.getRemoteAddr());
%>
<br/>

getRemoteAddr()得到客户端的IP地址是:0:0:0:0:0:0:0:1 

(6)
<%
out.print("getRemoteHost()得到客户端主机名称是:");
out.print(request.getRemoteHost());
%>
<br/>

getRemoteHost()得到客户端主机名称是:0:0:0:0:0:0:0:1 

(7)
<%
out.print("getServletPath()得到请求的文件的名称是:");
out.print(request.getServletPath());
%>
<br/>

getServletPath()得到请求的文件的名称是:/NewFile.jsp

(8)
<%
out.print("getContextPath()得到的上下文路径是:");
out.print(request.getContextPath());
%>
<br/>

getContextPath()得到的上下文路径是:/second 

(9)getParameter(String  name):根据name获取表单域或者URL的参数值

(10)getParameterValues(String  name):根据name获取同名表单域的值,返回一个String类型的数组

(11)setCharacterEncoding(String encoding):设置request的字符编码格式

(12)getPart(String  name):用于获取使用multipart/form-data格式传递的http请求的请求体,通常用于上传文件

(13)getRequestDispatcher():获取getRequestDispatcher对象,用于页面跳转

(14)getAttribute(String key):根据key获取在request存储范围的值

(15)setAttribute(String key, Object ob):向request范围中存储键值对

 

三、out内置对象:

1、作用:用于向客户端浏览器输出数据;

2、是具有缓冲功能的javax.servlet.jsp.JspWriter类的对象;

3、方法:

(1)print():向客户端浏览器输出数据;

(2)flush():清洗缓冲区;

(3)close():关闭输出流(会在响应后自动关闭);

(4)append():追加;

(5)writer():向客户端写出流(只能是String、char、String[])

四、中文乱码问题:

1、对于post请求:request.setCharacterEncoding("utf-8");

2、get请求乱码问题解决方法:

(1)new String(temp。getBytes(“ISO-8859-1”),“utf-8”);

(2)在Tomcat里的config目录下server.xml中加URIEncoding=“utf-8”;

(3)在eclipse中直接在修改server(使用eclipse一定要修改

五、响应报文

1、响应报文的组成:状态行、响应报头、空行、响应正文

2、响应报头的属性:

(1)HTTP/1.1 200OK 是响应状态;

(2)Content-Length:响应数据的字节数;

(3)Content-Type:响应数据的类型及编码方式;

(4)Date:响应时间;

(5)server:服务器的信息

3、响应状态是反映服务器对对请求的响应结果,响应状态的规则:

(1)1xx:指示信息;

(2)2xx:成功;

(3)3xx:重定向

(4)4xx:客户端错误

(5)5xx:服务器端错误

4、常见状态码:

(1)200 OK:客户端请求成功;

(2)302 Found:客户端得到服务端的302状态码后向服务器发出新的请求;

(3)404 Not Found:请求资源找不到;

(4)500 Server Unavailable:服务器发生不可预期的错误(通常是编码错误)

(5)400 Bad Request:客户端请求语法错误,不能被服务器理解;

(6)401 Unauthorized:请求未经授权;

(7)403 Forbidden:服务器受到请求,但服务器拒绝提供服务;

(8)503 Server Unavailable:服务器当前不能处理客户端的请求,过一段时间可能恢复正常。

六、内置对象response的方法:

1、PrintWriter  getWriter():返回可以向客户端输出数据的一个对象

2、void setContentType(String type):设置响应的MIME类型(text/html、text/JavaScript、text/json、text/plain)

3、void sendRedirect(String path):重新定向客户端的请求;

4、setCharaterEncoding(“utf-8”):设置响应的编码方式

七、重定向:JSP中通过response的sendRedirect()方法让页面从一个页面跳转到另一个页面;

请求转发与重定向的区别:

(1)请求转发的地址栏不会变化,重定向地址栏会变成跳转的页面;

(2)请求转发是服务端的行为,重定向是客户端的行为;

(3)请求转发是一个请求,一次可以带数据,重定向是两个请求,所以不能带数据;

(4)请求转发速度速度快,重定向速度慢;

(5)请求转发不能跳转到外部网站,只能在当前项目,重定向可以跳转到外部网站;