欢迎来到天天文库
浏览记录
ID:40556780
大小:17.06 KB
页数:3页
时间:2019-08-04
《JSP中九大隐式对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、对象变量名,可直接在jsp中使用对象类型configServletConfigapplicationServletContextresponseHttpServletResponserequestHttpServletRequestsessionHttpSessionoutJspWriterpagethisexceptionThrowable(需要配上isErrorPage)pageContextpageContextException不知每个页面都有,要配置上isErrorPage=”true”
2、,这样才可以在页面中直接用。如果把session的属性设成false,那么页面中不可以直接使用它了。pageContext的作用是用于获得其他8个,它的作用是在讲jsp中的java代码移出到方法中时,使用jsp页面中的内置对象。在移出的方法中传递一个pageContext.Out对象,带缓存的字符流,类似BufferedWriter写入该流的数据最终会被刷新到response,调用response.getWriter().write()方法中。故它和response.getOutputStream
3、()不可以同时使用。JspWriter会将数据刷新到1)缓冲区写满默认大小为8kb,可以page指定中通过buffer属性设置缓冲区大小。2)页面结束<%out.print("abc");//写入Jspwriter到缓冲区response.getWriter().write("ABC");//直接写入response对象的,可以字节输出到页面,而out对象是最后写入到response的,所以ABC将输出在abc前面的。并且通过查看源码可以看到ABC不包含在html页面中。%>所以在输出数据时尽量不
4、让response输出,而直接使用out.使用这种方式是,上面代码显示的结果是ABC结果在前面。当修改成了如下时:<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"buffer="0kb"%>此时的结果是:abcABC最好不要用JSP做下载。如果做下载代码理应是下面的:<%InputStreamin=application.getResourceAsStream("/a.txt");OutputStreamoutput=re
5、sponse.getOutputStream();//加一个消息头response.setContentType(application.getMimeType("/a.txt"));response.setHeader("content-disposition","attachment;filename=a.txt");byte[]buffer=newbyte[1024];intlen;while((len=in.read())!=-1){output.write(buffer,0,len);}
6、%>当访问所在页面时出现了如下异常:严重:Servlet.service()forservletjspthrewexceptionjava.lang.IllegalStateException:getWriter()hasalreadybeencalledforthisresponseatorg.apache.catalina.connector.Response.getOutputStream(Response.java:573)atorg.apache.catalina.connector.R
7、esponseFacade.getOutputStream(ResponseFacade.java:183)出现上面的异常的原因是:getWriter已经被:OutputStreamoutput=response.getOutputStream();调用了。也就是说如果想让它能够做下载,条件是:把页面中所有的标签都删掉,并且将页面中的空格和回车换行也得删掉。只有这样才能下载到正确的文件。代码如下,并且不能动<%@pagelanguage="java"import="java.util.*"page
8、Encoding="utf-8"%><%@pageimport="java.io.File"%><%@pageimport="java.io.InputStream"%><%@pageimport="java.io.OutputStream"%><%InputStreamin=application.getResourceAsStream("/a.txt");OutputStreamoutput=response.getOutputStream();//加一个消息头response
此文档下载收益归作者所有