JSP 9大对象
2015-08-03 17:50
501 查看
jsp 中有内置的9种对象,
1.request 对象(页面请求对象)用法1,在超链接后面通过?加上参数,参数间用&隔开
对于jsp页面,要加上 .jsp,对于跳转到servlet ,直接用 路径+文件名
参数获取的方法是request.getParameter("参数名");
同样的方式可以获取表单中的信息,对于复选框,可以用一个字符串存储使用request.getParameterValues();
解决中文乱码
2种方式
1.在获取传递过来的参数中文乱码的时候,
可以用new String(request.getParameter("user").getByte("iso-8859-1"),"GBK"); 获得字符串(重新用字节码构造了中文字符)
2.还可以用request 的设置字符编码的方法解决中文乱码.
request.setCharacterEncoding("UTF-8");
//对post提交有效
3.模拟http的响应头部
request 获取客户端信息的各种方法
{
getHeader(String name) String
返回制定名称的HTTP头信息
getMethod()
String 获取客户端向服务器发送请求的方法
getContexPath()
String 返回请求路径
getProtovol()
String
返回请求使用的协议
getRemoteAddr()
String 返回客户端使用的IP地址
getRemoteHost()
String 返回客户端的主机名
getRemotePort()
int 返回客户端发出请求的端口号
getServletPath()
Stirng
返回接受客户提交信息的页面
getRequestURI()
String
返回不包括参数的客户的请求发地址
getRequestURL()
StringBUffer返回客户端请求的地址
}
request 对象的作用域的属性的管理
通过request.方法,进行操作
通过setAttribute("name",value);
设置属性,
通过getAttribute("name");
获取属性
通过removeAttribute("name") ;
移除属性
注意作用周期
request中的cookie进行操作
cookie简介:
中文译名小甜饼的意思,但在程序中确实小段的文本信息,可能是因为大小相似,但又很好用吧
来源: 它在网络的服务器上面生成,被发送给浏览器.
作用是: 通过cookie可以标识用户身份,记录用户的登录的密码跟踪重复用户等
存储的方式:
浏览器是以键值对的形式存储,即key/value 存储在客户机的某个指定的目录.
关于它的方法集合:
{
getCookies();
获取所有的cookie 对象
cookie对象.getName();获取这个cookie的名字
getValue();
获取对象的值
在response.addCookie() ;可以添加cookie
}
**
可以实现自动登录的功能
对信息,可以用split("#")分割开,(原因是在封装cookie 的时候是用#号链接起来的)
国际化信息
浏览器通过accept-language 的 HTTP报头向服务器指明它所使用的本地语言.
此时我们就可以用request对象的getLocale()或getLocales() 的方法获取这一信息 ,信息的类型为java.util.Local类型的
java.util.Local类型的对象封装了一个国家和其对应的语言,这样我们就可以对不同国家的用户作出相应的处理
** 程序的段代码if(request.getLocale().equals(java.util.Locale.US)){you can do something whta you want to do !}
2.response 对象(客户响应对象)
重定向:respose.sendRedirect(String Path);
设置输出缓存,
缓存去的内容在一下三种情况下会写入到客户端
1.jsp页面的信息已经全部写入到缓存区.
2.缓存区满了
3.强制清空(刷新)缓存,如response的flushBuffer()方法或out对象的flush()方法;
还有其他的几种对缓存区的操作:
1.getBufferSize();
获取缓存区的实际大小;
2.setBufferSize(int size);设置缓存区的大小
3.reset();
重置缓存区,将缓存区的内容清除,同同时清除状态码,和报头
4.isCommitted();
检测服务器是否已经将数据写入到客户端
处理http文件头
1.设置响应的内容的类型,setContentType(String type);
** 2.禁用缓存,对于安全性较高的网站,设置禁用缓存,可以防止浏览器缓存页面,更加安全.
例如:<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>
3.设置页面的自动刷新 response.setHeader("refresh","10");
** 4.设置定时跳转网页 response.setHeader("refresh","5;URL=login.jsp");
此项内容可以用于"还有5秒跳转到登录页面"的信息,关于秒数自动减少的可以用javascript 实现
此项需实现
3.session 对象(会话对象)
常用的几种关于session 对象的方法
1.创建及获取对象
session.setAttribute(String name,Object obj);
session.getAttribute(String name);
返回类型为Object
2. 移除对象
session.removeAttribute(String key);
3.设置有效时间
session.setMaxInactiveInterval(int interval);
4.其他 session.getCreateTime();
session.getLastAccessedTime();
getId();(获取唯一的编号)
session.isNew();
判断是否是新创建的
5.销毁 session,invalidate();
http://justsee.iteye.com/blog/1570652 Session机制详解
4.还有其他的对象 application out page 等 还有exception 对象
通过pageContext 可以获得上述对象
本章应用:
session 会话超时提示 用户状态 提示:如果未登录,则进行页面的转发<jsp:forward page="login.jsp"/>
类似用法,<jsp:include page="down.jsp"/>被包含或转发的不仅仅是jsp 页面.还可以是其他servle t等
通过cookie 自动登录,
统计在当前页面停留的时间,
可以用此判断用户的身份,进而看是否已经登录.
通过回复添加一个名字为user 的属性 ,在客户端判断,是否有属性名字为user 的,如果没有,则给出请登录的提示,
如果有,则把它的值取出来,然后根据里面的信息获取用户的昵称,进而输出到页面.,这个判断是在页面载入的时候的判断
php中的Session与Cookie
在PHP开发中对比起Cookie,session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 session 的使用。
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。
对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能只做一次验证。为什么呢?因为客户端Cookie 中的信息是有可能被修改的。假如你存储 $admin变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在
Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。
而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 session 文件的内容,因此我们可以单纯存储一个 $admin变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。<引用自百度>
相关文章推荐
- 《JS设计模式笔记》 2,简单工厂模式
- jsp基础语法,用法
- js判断是否移动设备
- JS 基础 用法
- Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)
- 原生JS 封装运动函数
- jsp页面has already been called for this response错误解决方法。
- 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
- 文章标题
- js中substring和substr的用法
- 用D3.js进行医疗数据可视化 (五) 饼图 (Pie Chart)
- JavaScript之验证提醒【升级版,高大上】
- Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)
- JavaScript小应用
- 网页计时器
- 30天了解30种技术系列---(1)现代web应用服务器-Express.js
- JavaScript中字符串与Unicode编码的互相转换
- javaScript 里的Date格式化
- 《JS设计模式笔记》 1,单例模式
- js模板