相对路径与绝对路径
相对路径:
链接地址 <a href="list.do"></a>
表单提交地址 <form action="add.do">
重定向 response.sendRedirect("list.jsp");
转发 request.getRequestDispatcher("listEmp.jsp");
(1)什么是相对路径?
不以"/"开头的路径。
(2)什么是绝对路径?
以"/"开头的路径。
(3)怎样写绝对路径?
链接地址、表单提交地址、重定向绝对路径应该从应用名开始写,而转发应该从应用名之后开始。
获得appname:String request.getContextPath()
如:
重定向——response.sendRedirect(/*重定向从应用名开始写*/
request.getContextPath()
+ "/app3/sub/some.jsp");
/*转发从应用名之后写*/
转发——request.getRequestDispatcher("/app3/sub/some.jsp")
.forward(request, response);*/
状态管理
(1)什么是状态管理
将客户端(浏览器)与服务器之间多次交互当作一个整体来看,并且将多次交互所涉及的数据(状态)保存下来。
(2)如何进行状态管理
第一类方式:将状态保存在客户端(Cookie)
第二类方式: 将状态保存在服务器端(Session)
(3)cookie技术:
1) 什么是cookie?
a,cookie是一种客户端的状态管理技术
b,当浏览器向服务器发送请求的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器,
浏览器会将这些数据保存下来。当浏览器再次访问服务器时,会将这些数据以cookie消息头的方式发送给服务器。
2)如何创建一个cookie?
Cookie c = new Cookie(String name,String value);
response.addCookie(c);
3)cookie的查询
Cookie[] request.getCookies();
注意,该方法有可能返回null。
String cookie.getName();
String cookie.getValue();
4)cookie的生存时间
cookie.setMaxAge(int seconds);
注意:单位是秒
seconds >0 : 浏览器会将cookie保存在硬盘上,超过
指定的时间,会删除该cookie。
seconds < 0 : 缺省值,浏览器会将cookie保存在内存
里,只要浏览器不关闭,cookie一直保存,当浏览器
关闭,cookie会被清空。
seconds = 0 : 删除cookie
比如,要删除一个名叫userId的cookie:
Cookie c = new Cookie("userId","");
c.setMaxAge(0);
response.addCookie(c);
5)cookie的编码问题
cookie只能保存ascii字符,对于不合法的字符(比如中文)需要进行编码,即转换成合法的ascii字符。
可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。
6)cookie的路径问题
a,什么是cookie的路径问题?
浏览器在向服务器发送请求时,会比较cookie的路径与要访问的服务器的路径是否匹配,只有
匹配的cookie才会发送给服务器。
b, cookie的默认路径
默认路径等于创建该cookie的组件的路径。
c,匹配规则
浏览器要访问的路径必须是cookie的路径或者
其子路径时,才会发送对应的cookie。
d, 设置cookie的路径cookie.setPath(String path);
比如 cookie.setPath("/web07");
将cookie的路径一般设置为应用名,这样可以保证
该cookie可以被该应用的其它组件都能访问到。
7) cookie的限制
a, cookie可以被用户禁止。
b, cookie不安全,敏感数据,比如密码,帐号等等需要加密。
c, cookie的大小有限制,大约是4k左右(具体大小跟浏览器有关系)。
d, cookie的个数也有限制,大约是300个(具体个数跟浏览器有关系)。
e, cookie只能够保存字符串。
8)保存和查询Cookie流程
a. 浏览器向服务器发送addCookie请求
服务器中的AddCookieServlet创建了两个Cookie:cookie和cookie2
b. 服务器端执行语句response.addCookie(cookie);生成消息头“set-cookie”,
并将两个Cookie以键值对的方式(“name=aaa”、“passwd=123”)存放在消息头中发 送给浏览器
c. 浏览器将Cookie信息保存到本地内存中
d. 浏览器继续向服务器发送请求(带着消息头cookie)
服务器端的FindCookieServlet找到Cookie信息,并显示给浏览器
Cookie详细用法
最新推荐文章于 2022-11-02 15:12:04 发布