一. JSP 总结
9个隐含对象及其常用方法 (虽然为 Java 代码, 但是使用 _EL_ 表达式完全可以进行调用相关 get 方法):
1. Request (HttpServletRequest)
Attribute 相关:
可以理解在
request作用域范围内的一个存储空间, 实现方法是将键值对放入一个HashMap.
1 | Object getAttribute(String name); |
Paramater 相关:
一般用于与
html,jsp页面 及url地址传递参数, 仅能传递字符串. 注意: 没有setParamater方法.1
2String getParameter(String name);
String[] getParameterValues(String name);Cookie 相关:
作为浏览器端持久化储存的一种实现方法, 由服务器加入
response中, 并在request中取出.1
Cookie[] getCookies();
Session 相关:
作为服务器持久化储存的一种实现方法, 在浏览器第一次访问服务器资源时自动创建.
1
HttpSession getSession();
URI 路径:
应用名称 + 页面路径
比如:
/day_15/bbs/bbs.jsp.1
String getRequestURI();
URL 路径:
站点地址 + URI路径
比如:
http://localhost:8080/day_15/bbs/bbs.jsp1
StringBuffer getRequestURL();
ServletPath 路径:
页面路径
一般用于
filter进行页面筛选. 比如:/bbs/bbs.jsp1
String getServletPath();
转发地址:
可以将
request转发到另一页面或Servlet. 注意:path为Servlet context path.1
RequestDispatcher getRequestDispatcher(String path);
编码问题:
对于携带中文作为
Paramater的request在打印时会出现乱码, 所以需要进行编码.1
void setCharacterEncoding(String env);
2. Response (HttpServletResponse)
Cookie 相关:
作为浏览器端持久化储存的一种实现方法, 由服务器加入
response中, 并在request中取出.1
void addCookie(Cookie cookie)
重定向地址
可以跳转到另一页面, 但不转发
request.location必须包含application context path或为URL.1
void sendRedirect(String location);
3. Session (HttpSession)
Attribute 相关:
和
request类似,session也可以携带键值对, 使用方法完全类似.1
2
3Object getAttribute(String name);
void setAttribute(String name, Object value);
void removeAttribute(String name);设置生命周期:
从创建到销毁的时间.
1
2void setMaxInactiveInterval(int interval);
int getMaxInactiveInterval();立即销毁
session:1
void invalidate();
JSessionId:
以
JSessionId为名称存入Cookie中.获取
JSessionId:1
String getId();
时间信息:
获取创建与最近访问时间:
1
2long getCreationTime();
long getLastAccessedTime();获取 ServletContext
1
ServletContext getServletContext();
以上总结的三个隐含对象 request response session, 不只是对于 JSP , 而在整个 Java Web 技术中都极为重要, 对其常用的实现方法必须使用熟练.
4. Application (ServletContext)
Attribute 相关:
和
requestsession类似,Servlet也可以携带键值对, 使用方法完全类似.1
2
3Object getAttribute(String name);
void setAttribute(String name, Object value);
void removeAttribute(String name);Paramater 相关:
获取在
web.xml中设置的Servlet初始化参数.1
String getInitParameter(String name);
Servlet Context Path
为服务器应用的路径名, 如:
/day_15.1
String getContextPath();
仅获取应用名称, 如:
day_15.1
String getServletContextName();
5. Config (ServletConfig)
ServletContext 可以覆盖其实现的所有功能.
Paramater 相关:
获取在
web.xml中设置的Servlet初始化参数.1
String getInitParameter(String name);
获取 ServletContext:
1
ServletContext getServletContext();
获取应用名称:
如:
day_15.1
String getServletContextName();
6. PageContext (PageContext)
可以获取其他所有隐藏对象 Request Response Session ServletContext ServletConfig Out Page Exception:
直接调用
get方法既可. 因为可以调用所有功能, 多用于EL表达式.
7. 其余不常用的三个: Out Page Exception:
以上9个隐藏对象包含 Java Web 最重要的四个作用域:
Application: 作用于整个 Web 应用, 生命周期为 应用的添加到移除.
Session: 作用于一次会话, 生命周期为 浏览器第一次访问生成到生命周期结束自动注销.
Request: 作用于一次请求, 生命周期为 发送请求到请求处理结束.
Page: 仅作用于本页面, 无生命周期.