转发和重定向

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.格式

这是一个链接

这是一个段落

这是一个块元素


换行


在网页中加一条横线

:这是定义了一个???.css格式文件

===============================================

1、转发和重定向的区别:

1)地址:

转发的地址必须是同一个应用内部的各个组建。

重定向的地址没有限制。

2)能否共享request

转发可以

重定向不行

3)浏览器地址栏的地址是否变化

转发不变

重定向不会

4)事件是否处理完毕

转发是一件事未做完。

重定向是一件事已经做完。

2、状态管理:

2)怎样进行状态管理:

第一种方式:在客户端管理用户的状态

(cookie)

第二种方式:在服务器端管理用户的状态

(session)

3)cookie:

a,什么是cookie?

浏览器在访问服务器时,服务器将一些数据以set—cookie消息头的形式发送给浏览器,浏览器会将这些数据(内存或者硬盘)保存起来,当浏览器再次访问服务器时,会将保存的数据会以cookie的消息头的形式发送给浏览器。通过这种方式可以管理用户的状态。

b,怎样去创建cookie?

Cookie cookie=new Cookie(String name, String value);cookie中保存键值对

response.addCookie(cookie);服务器从cookie中读取数据

c,查询cookie

//如果没有cookie,则返回null

Cookie[] cookies=request.getCookies();

String name=cookie.getName();

String value=cookie.getValue();---------遍历cookie

d,cookie保存时的编码问题:cookie的值只能是ascii字符,如果是中文,需要将中文转换出呢个ascii字符形式,可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换

e,cookie的保存时间:

cookie.setMaxAge(int seconds);

seconds>0:浏览器会将cookie以文件的方式保存在硬盘上,在超过指定的时间以后,会删除该文件。

seconds<0:默认值,浏览器会将cookie保存在内存里。只有当浏览器关闭之后才会删除。

seconds=0:删除。

f,删除cookie

比如要删除一个name为“username”的cookie。

Cookie c=new Cookie("username","");

c.setMaxAge(0);

response.addCookie(c);

g,cookie的路径问题

浏览器在向服务器上的某个地址发送请求时,会先比叫cookie的路径和要访问的路径是否匹配,只有匹配的cookie才会发送

cookie的路径可以通过:cookie.setPath(String path)方法来设置,如果没有设置,则有一个缺省的路径,缺省的路径是生成该cookie的组建的路径。比如:/appname/addCookie保存了一个cookie,则该cookie的路径是/appname/addCookie。

规则:cookie的路径必须是要访问的路径的上层目录,或者是于要访问的路径相等,浏览器才会将cookie发送给服务器,否则浏览器不会发送。

一般可以设置setPath("/appname"); 表示访问该目录下的所有地址,均会发送cookie.

h,cookie的限制:

cookie可以被用户禁止。

cookie的大小有限制(4k左右)。

cookie的数量有限制(浏览器大约能保存300个)。

cookie的名字和值只能是字符串,要考虑编码问题。

cookie不安全。

4)session

a,什么是session

浏览器访问服务器时,服务器会创建一个session对象(该对象有一个唯一的id,一般称为sessionId)服务器在缺省情况下会将sessionId以cookie机制发送给浏览器。当浏览器再次访问服务器时,会将sessionId发送给服务器。服务器依据sessionId就可以找到对应session对象。通过这种方式,就可以管理用户的状态。

b,如何获得session对象:

方式一:HttpSession session=request.getSession(boolean flag);

当flag=true:服务器会先查看请求中是否包含sessionId,如果没有,则创建一个session对象,如果找到,则返回,如果找不到则创建一个新的session对象。

当flag=false:服务器会先查看是否包含sessionId,如果没有则返回null,如果有,则依据sessionId去查找对应的session对象,如果找到则返回,如果找不到,则返回

null。

方式二:HttpSession session=request.getSession();等价于HttpSession session=request.getSession(true);

c,接口HttpSession的常用方法:

String session.getId();-----获得sessionId;

session.setAttribute(String name,Obiect obj); obj最好实现Serializable 接口(序列化接口)。

Object session.getAttribute(String name); 如果name对应的值不存在,返回null。

session.removeAttribute(String name);

d,session超时:服务器会将超过指定时间的session对象删除(在指定时间内,该session对象没有使用)。

方式一:session.setMaxInactiveInterval(int senconds);

方式二:服务器有一个缺省的超时限制,可以通过修改相应的配置文件来重新设置。比如可以修改tomcat的server.xml,另外,也可以修概某个应用的web.xml e,删除session

session.invalidate();

案例:

session验证

原理:1,在登录成功之后,在session上面绑定一些数据,比如:session.setAttribute("user",user);

2,在访问需要保护的页面或者资源时,执行Object obj=session.getAttribute("user");

如果obj为null,说明没有登录,一般重定向到登录页面,否则登录成功。

1、验证码

1,create table t_computer(

id bigint primary key auto_increment,

model varchar(20),

pic varchar(50),

proDesc text,

price double);

2,insert into t_computer(model,pic,proDesc,price) value('x200','x200.jpg','还算便宜',2000); insert into t_computer(model,pic,proDesc,price) value('x500','x500.jpg','性价比最好',3000); insert into t_computer(model,pic,proDesc,price) value('x600','x600.jpg','性能最好',8000);

3,Computer 实体类

4,ComputerDAO类

相关文档
最新文档