您的位置:首页 > Web前端 > JavaScript

jsp(2)

2016-04-12 12:04 671 查看
JavaBean简介

JavaBeans就是符合某种特定的规范的java类,使用Javabeans的好处是解决代码重复编写,

减少代码冗余,功能区分明确,提高了代码的维护性

JSP动作元素

JSP动作元素,动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名

的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

jsp动作标签

<jsp:useBeans>

作用:在jsp页面中实例化或者在指定范围内使用javabean:

<jsp:useBean id = "标识符" class = "java类名" scope = “作用范围”/>

<jsp:setProperty>

作用:给已经实例化的JavaBean对象的属性赋值,一共有四种形式

<jsp:getProperty>

作用:获取指定JavaBean对象的属性值

Javabean的四个作用域范围

说明:使用useBeans的scope属性可以用来指定javabean的作用范围

page 仅在当前页面有效

request 可以通过HttpRequest.getAttribute()方法取得javaBean对象

session 可以通过HttpSession.getAttribute()方法取得JavaBean对象

application 可以通过application.getAttribute()方法取得javabean对象

JSP状态管理

http协议的无状态性

无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求。

但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是

刚才那个浏览器

简单的说,就是服务器不会去记得你,所以就是无状态协议

保存用户状态的两大机制

Session、Cookie

Cookie是Web服务器保存在客户端的一系列文本

Cookie的作用

对特定对象的追踪

保存用户网页浏览记录与习惯

简化登录

安全风险:非常容易泄露用户的信息

JSP中Cookie的使用

创建: Cookie newCookie = new Cookie(String key,Object value);

写入: response.addCookie(newCookie);

读取: Cookie[] cookies = request.getCookies();

常用方法

void setMaxAge(int expiry) 设置cookie的有效期,秒为单位

void setValue(String value) 在cookie创建后,对cookie进行赋值

String getName() 获取cookie的名称

String getValue() 获取cookie的值

int getMaxAge() 获取cookie的有效时间,秒为单位

案例:

<%
request.setCharacterEncoding("utf-8");
String[] isUseCookies = request.getParameterValues("isUseCookie");
if(isUseCookies!=null&&isUseCookies.length>0){
//这样做可以解决cookie中不能保存中文的问题
String username = URLEncoder.encode(request.getParameter("username"),"utf-8");
String password = URLEncoder.encode(request.getParameter("password"),"utf-8");
Cookie usernameCookie = new Cookie("username",username);
Cookie passwordCookie = new Cookie("password",password);
usernameCookie.setMaxAge(864000);
passwordCookie.setMaxAge(864000);
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}else{
Cookie[] cookies = request.getCookies();
if(cookies != null &&cookies.length > 0){
for(Cookie c : cookie){
if(c.getName().equals("username")||c.getName().equals("password")){
c.setMaxAge(0);
response.addCookie(c);
}
}
}
}
%>


Session与Cookie的对比

session在服务器端保存用户信息

cookie在客户端保存用户信息

session中保存的是Object类型

cookie中保存的是String类型

session会随会话的结束而将其存储的数据销毁

cookie可以长期保存在客户端

session常用于保存重要的信息

cookie保存不重要的用户信息

指令与动作

include指令

语法:<%@include file="URL"%>

forward动作

<jsp:forward page="URL"/>

等同于

request.getRequestDispatcher("/url").forward(request,response);

param动作

<jsp:param name="参数名" value="参数值">

常常与<jsp:forward>一起使用,作为其的子标签
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: