JSP学习笔记(二)
JSP内置对象
- request对象
- response对象
- session对象
- application对象
- out对象
有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这就是JSP的内置对象
1.request对象
request对象是实现了ServletRequest接口类的一个实例
[1].HTTP请求
HTTP通信协议是用户与服务器之间一种提交信息与响应信息的通信协议,其中request封装了用户提交的信息,即请求。
HTTP请求包括请求行,头域和可能的信息体,如:
GET/hello.htm HTTP/1.1
Host: localhost:8080
accept-encoding: gzip, deflate
第一行是请求行,其中GET是请求行规定的请求方法,hello.htm是请求的资源,HTTP/1.1是使用的HTTP协议的版本。
第二行是头(header),是请求资源文件所在的地址。
第三行也是头(header),是告诉服务器端:我的浏览器支持gzip和deflate格式的网页压缩格式哦
[2].获取用户提交的信息
<form action = "abc.jsp" method = "post">
<input type = "text" name = "boy" value = "ok">
<input type = "submit" value = "提交">
</form>
用户向abc.jsp提交表单,而我们在abc.jsp中使用:
request.getParameter(“boy”)就可以获取name为boy的文本输入框的内容
上一章中的 <jsp: param name = “” value = “”> 也可以通过这种方式来获取
为了防止获取的中文信息乱码,可以对request设置编码:
request.setCharacterEncoding("utf-8");
2.response对象
response对象对用户的请求作出动态响应,向用户发送数据
[1]动态响应contentType属性
response.setContentType("application/msword; charset = utf-8");
例如让用户点击保存当前页面为word文档,则在用户点击后设置该属性,此时用户浏览器就会启用word来显示或保存当前页面
[2]HTTP响应
响应由状态行开始,可以包含几个头即可能的信息体,如:
请求成功,则返回"HTTP/1.1 200 OK"
请求失败,则返回"HTTP/1.1 404 Object Not Found"
[3]response重定向
response.sendRedirect(“url”);即跳转页面到url
注:详细过程:redirect 会首先发一个response给浏览器,然后浏览器收到这个response后再发一个requeset给服务器,服务器接收后发新的response给浏览器。这时页面从浏览器获取来的是一个新的request。这时,在原来跳转之前的页面用request.setAttribute存的东西都没了,如果在当前的新页面中用request.getAttribute取,得到的将会是null。这种方式的跳转会改变浏览器的地址栏中的url地址。
addHeader(String head,String value);
setHeader(String head,String value);
用来动态添加新的响应头和头的值,如果添加的头已经存在,则覆盖
3.session对象
session是实现了HttpSession接口类的一个实例
[2]
当一个用户首次访问Web服务目录中的一个JSP页面时,Tomcat服务器产生一个session对象,这个对象调用相应的方法可以存储用户在访问该Web服务目录中各页面期间提交的各种信息,如姓名和性别等等。
这个session对象被分配了一个String类型的id号,Tomcat服务器同时将这个id号发送到用户端,存放在用户的Cookie中。
不同用户之间的session对象互不相同
[3]session对象与URL重写
如果用户端不支持或禁用了Cookie,那么,JSP页面可以通过URL重写来实现session对象的唯一性,就是当用户从一个页面重新连接到一个页面时,通过向这个新的URL添加参数,把session对象的id传递过去,例如如果想跳转到second.jsp页面,代码实现如下:
String str = response.encodeRedirectURL("second.jsp"); //重写
response.sendRedirect(str);
4.application对象
不同Web服务目录下的application不同
5.out对象
out.println和out.print的区别是println会向缓存区写入一个换行,但是浏览器不识别该换行
最新文章
- [.NET] 利用 async &; await 进行异步 IO 操作
- 设计模式C#实现(十五)——命令模式
- 算法导论( FFT &; 自动机 &; 最优二叉搜索树 !!!)
- java -jar 执行 eclipse export 的 jar 包报错处理
- python版本升级及pip部署方法
- JAVA经典算法40题及解答
- 使用C#中JavaScriptSerializer类将对象转换为Json格式数据
- iOS 将图片保存到本地
- CodeForces 135C C. Zero-One
- C++中关于重载默认构造函数与默认全部参数的构造函数的使用注意
- 14.7.1.2 MySQL创建用户句法
- js promise看这篇就够了
- Windows Server 2016-客户端加域端口汇总
- DocX开源WORD操作组件的学习系列一
- 【SQL】 MySql与SqlServer差异比较(MySql踩坑全集)
- SQL Server导入导出不丢主键和视图的方法
- Error:Failed to resolve: android.arch.core:common:1.1.0
- RedHat 6 yum 使用网易源
- C语言 &#183; 因式分解
- StringUtils 正则校验