JSP内置对象. 内置对象就是不用定义,直接使用的对象! 比如 out。
- request 内置对象
表示请求。这个对象中封装了客户端提交给服务器的数据!
方法: - getParameter(String ) 用来获取客户端提交的数据
输入数据:
获取数据:
结果:
- getParamterValues. 专门获取多个名字一样的值的!
获取
结果:
- 解决中文乱码
在获取去到值之后,输出之前加上
s3=new String(s3.getBytes("iso-8859-1"),"utf-8");
-
getAttribute和setAttribute 是用来给请求范围内添加数据的
-
response对象
对比,request里面存放的是 客户端给服务器的数据, response是把服务器的数据再发给客户端! 所以response对象叫做 响应对象.
方法: -
sendRedirect 重定向
<%
response.sendRedirect("aa.jsp");
%>
也是从一个网页跳转到另一个网页。从效果上看,重定向和转发看起来是一样的!
但是,还是有区别的,至少转发(jsp:forward)时,地址栏不变。重定向是地址栏变。
- 转发和重定向最大的区别是: 转发只是一次请求, 而重定向是2次请求。
下图就是转发:
重定向:
转发和重定向的区别
1.转发是服务器端跳转,客户端不能感知,转发会延长请求范围至下一个页面。(转发前后的jsp页面中的所有request是用一个对象);
重定向是客户端跳转,客户端能感知,重定向是客户端再次发起一次信的请求,则之前请求中的所有数据全部丢失! (重定向前后的jsp页面中的request对象是两个请求对象。)
重定向时,客户端一共发了2次请求,数据如果存在第一次请求中,则第二天请求中无法获取!
比如把index.jsp界面的值想传给aa.jsp界面
index界面代码
<%
request.setAttribute("a", "apple");
response.sendRedirect("aa.jsp");//重定向达到aa.jsp
%>
获取:
发现获取到的值为空
<%
String value=(String)request.getAttribute("a");//他是个object类型,转String需要强转
out.println(value);
%>
- setContentType() :
告诉浏览器,服务器发送的是什么格式的数据! 这个方法等价于 <%@ page contentType=”” %>
<%
response.setContentType("application/msword");
//设置响应头
response.setHeader("Content-Disposition", "attachment;filename=abc.doc");
%>
上面代码是直接以doc格式下载文件。设置下载文件名字的代码是固定写法,这个代码是给响应头中添加信息!
响应头中的信息最终被浏览器接收到!浏览器会下载,并自动命名下载文件!
- getOutStream 获得输出流,这个输出流的起点:服务器,终点:客户端浏览器。
这个sos是一个字节流,除了能发文本,还能发2进制文件。字符流(out)只能发文本 ,字节流什么都能发!但是如果想发字符,先要把它打成字节码。把字节码发过去,再让接收端解码
它也可以发送一张图片,默认是黑色的。
在制作的图片上还可以涂鸦,首先需要创建一个画笔,然后拿画笔做出相应的操作。
//画笔工具
Graphics g=image.getGraphics();
//在横纵坐标100的位置显示这三个字
g.drawString("总冠军", 100, 100);
//划线,起点坐标50,50,终点坐标100,100
g.drawLine(50, 50, 100, 100);
//画弧,弧线外切坐标50,50.外切矩形100,100.弧线起点0,弧度数360(圆)
g.drawArc(20, 20, 100, 100, 0, 360);
//同上,实心的圆
g.fillArc(0, 0, 20, 20, 0, 360);