request:包括http请求参数
response:请求响应
pageContext:可以用这个对象获取request和response。
out:用于向页面中传入数据
假如现在login.jsp有一个表单User,需要提交到后台。
<form action="" method="post" id="User">
<input type="text" name="UserName">
<button type="submit">submit</button>
</form>
那login.jsp下有几个对象,其中有pageContext.由于pageContext可以得到request对象。request.getParameter(name)可以得到相应字段,可以在login.jsp中传pageContext对象到后台。
<%
Recepter a=new Recepter()
a.getPara(pageContext)
%>
在后台处理的的是Recepter类。
public class Recepter {
String Username
//传入的参数为login.jsp的pageContext对象
public String getPara(PageContext pc)throws Exception{
//获取login.jsp的写入对象
PrintWriter out=pc.getResponse().getWriter()
ServletRequest request=pc.getRequest()
//获取login.jsp的表单name="UserName"的数据。
String uname=request.getParameter("UserName")
out.print(uname)
}
private void setUsername(String username){
this.username=username
}
public String getUsername(){
return Username
}
}
现在我们的表单字段已经传入到Recepter的java代码中了,可以进行相应的处理。
而后台的数据传到前端:
可以在login.jsp中创建一个java示例,通过方法的返回值来获取。
现在创建一个result.jsp页面获取Recepter的UserName,
result.jsp的部分如下:
<%Recepter recept=new Recepter()%>
<div><%=recept.getUsername()%></div>
虽然没有遵循java对象的设计原则。但是实现了java数据前后台的简单交互。
现在有个需求是将大量数据传到前端,并对这些数据进行显式化处理。由于数据量大,前端等待处理时间较长,因此考虑分包处理。
ajax前端发送数据请求,服务端进行响应发送数据。
本来想着多写几条response.getWriter().append(),它一次一次的传,我一次次的处理,这样可以避免大量数据的等待时间。
结果、这货等着所有的响应都结束了,一起传递回来了。
FileOutputStream很明显你是用的文件流返回的
//以byte流的方式打开文件d:\1.gif
FileInputStreamhFile=newFileInputStream(url) //得到文件大小
inti=hFile.available()
bytedata[]=newbyte[i] //读数据
hFile.read(data) //得到向客户端输出二进制数据的对象
OutputStreamtoClient=response.getOutputStream() //输出数据
toClient.write(data)
toClient.flush()
toClient.close()
hFile.close()
扩展资料:
如果是纯文本使用字符流,如果二进制文件,使用字节流。
如果只是得到信息,原样不动,不进行修改 *** 作,例如文件上传和下载,这时就使用字节流。文件上传:在服务器端把浏览器端信息提取出来。文件下载:把服务器端内容写给浏览器端。
如果要 *** 作的是自定义信息,这时使用字符流。
通过response获取的输出流它的真实类型是什么?
ServletOutputStream response.getOutputStream()
PrintWriter response.getWriter()
ServletOutputStream由于使用字节流多数是原样复制,所以使用write方法,而不是print方法。
PrintWriter:打印流,两个特点:1.可以设置自动刷新。2.可以将信息原样输出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)