request.getContextPath()到底获取的谁的绝对路径?什么叫绝对路径?在硬盘里存在的吗?
假设有一个项目名为:report_emp
request.getContextPath()获得的是当前的项目名 /report_emp,
要想获得项目实际在磁盘中存贮路径可以使用request.getSession().getServletContext().getRealPath("/");
本地资源管理器而言:
绝对路径:是从盘符开始的路径,磁盘上真正的路径的,例如:E:\帮助文档\Jquery\jqAPI;
相对路径:是从当前路径开始的路径,如当前路径为E:\帮助文档,则Jquery\jqAPI为相对路径;
就web站点而言:
假如我们在report_emp的admin/login.jsp中访问了report_emp/admin/images/logo.gif的图片
绝对路径:以Web 站点根目录为参考基础的目录路径;
在login.jsp中的src则为report_emp/admin/images/logo.gif
相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径;
在login.jsp中的src则为./images/logo.gif
区别:
request:
1、request.getParameter("key")接受的是来自客户登陆端的数据,接受的是post或get方式传送的value。
2、请求的默认字符集是ISO-8859-1,不支持中文,需要new String (request.getParameter(key).getbyte("ISO-8859-1"),"UTF-8")进行转码。
3、可以给请求对象添加数据但是必须通过forward进行转发。
4、request.setAttribute(key,object)--发送对象,request.getAttribute(key,object)--接受对象。
5、接收cookie Cookie[] ck = request.getCookies();获取值--遍历for(Cookie cks:ck){out.print(URLDecoder.decode("编码后的字符串"))}。
response:
1、发送cookie--添加cookie对象:Cookie ck=new Cookie("key","value");addCookie(Cookie对象)
2、跳转页面--sendRedirect("跳转地址")--直接跳转。
3、setHeader("refresh","秒数;URL=跳转地址")--定时跳转页面。
4、setHeader("refresh","秒数")--定时刷新页面。
5、没有设置属性值的方法。没有setAttribute的方法。
6、setheader("cache-control","no-cache")--禁止浏览器缓存
session:
1、setAttribute("key",object)--设置属性值。getAttribute("key")--获取属性值--返回Object类型需要将获取到的值用toString()方法。
2、session.invalidate()--销毁session--一般退出登录时用。
3、setMaxInactiveInterval(秒数)--设置超时秒数。