Application的作用范围(Application_Scope):从服务器运行到服务器关闭。
Session的作用范围(Session_Scope):是在客户端和服务器连接开始,道连接中断为止。
Request作用范围(Request_Scope):指在一个JSP页面向另一个JSP页面提出请求到请求完成之间。
Page作用范围:作用范围是当前页面。
Page的常用方法:
方法 | 说明 |
---|---|
setAttribute(String name,Object value) | 设置name的属性值为value |
getAttributrNames() | 获取所有属性名 |
getAttribute(name) | 获取属性名为name的属性的值 |
removeAttribute(name) | 删除属性姓名为name的属性值 |
out对象常用的方法:
方法 | 返回类型 | 说明 |
---|---|---|
close() | void | 关闭输出流,清空所有内容 |
newLine() | void | 输出一个换行字符 |
print() | void | 输出一行信息,不自动换行 |
println() | void | 输出一行信息,自动换行 |
隐含对象request是javax.servlet.HttpServletRequest接口实现类的对象,代表从客户端用户发送过来的请求。使用request对象可以获取客户端的信息以及用户提交的数据或参数。每次客户端请求都会产生一个request实例,请求结束后销毁request。
获取客户端信息的常用的方法:
方法 | 返回类型 | 说明 |
---|---|---|
getCharacterEncoding() | String | 返回字符编码格式 |
getContextPath() | String | 返回指明请求context的请求URL的部分 |
getCookies() | Cookie[] | 返回客户端所有Cookie对象数组 |
getHeader(String name) | String | 获取HTTP协议定义的头信息 |
getHeaderNames() | Enumeration | 获取所有HTTP协议定义的头文件名称 |
getHeaders (String name) | Enumeration | 获取request指定头文件的所有值的集合 |
getRequestURL() | StringBuffer | 获取requestURL,但不包括参数字符串 |
getRequestURL() | String | 返回该请求消息的URL中HTTP协议第一行里从协议名称到请求字符串的部分 |
… | … | … |
获取请求参数的常用方法:
方法 | 返回类型 | 说明 |
---|---|---|
getAttribute(String name) | Object | 返回name指定的属性值,如果不存在该属性则返回null |
getAttributeNames() | Enumeration | 返回request对象的所有属性的名字 |
setAttribute(String name,Object object) | void | 设置名字为name的request参数的值,该值由object决定 |
getParameter(String name) | String | 获取客户端传送给服务器的参数值,参数由name属性决定 |
getParameterNames() | Enumeration | 获取客户端传送给服务器的所有参数名 |
getParameterValues() | String[] | 获取指定参数的所有值 |
… | … | … |
JSP中文乱码问题:
原因:
在使用request对象获取请求参数时,使用默认的编码格式ISO-8859-1,但是在JSP页面中一般采用的编码格式时UTF-8,这就导致了请求的文字编码格式与页面中的编码格式不一致。
解决方案:
<%
String name = request.getParameter("uname");
String userName = new String(name.getBytes("ISO-8859-1"),"UTF-8");//解决中文乱码
out.println("用户名:"+request.getParameter("uname"));//乱码的
out.println("yonghuming:"+userName);//正常显示
%>
response概述:
每次服务器端都会相应一个response实例。response对象经常用
于设置HTTP标题、添加Cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL…
response重定向:
<%
String user = request.getParameter("uname");
String username = new String(user.getBytes("ISO-8859-1"),"UTF-8");
String pwd = request.getParameter("upwd");
if(user.equals("")||pwd.equals("")||user==null||pwd==null){
//用户名或密码为null或“ ”时,重定向到登陆页面
response.sendRedirect("user.jsp");
}else{
out.println(username+"登录成功!");
}
%>
概述:
隐含对象session是javax.servlet.http.HTTPSession接口实现类的对象。在Web开发中,服务器为每一个用户浏览器创建一个会话对象,即session对象。默认情况下一个浏览器独占一个session对象。
常用对象方法:
方法 | 返回类型 | 说明 |
---|---|---|
getAttribute(String name) | Object | 获取指定名字的属性 |
getAttributeNames() | Enumeration | 获取session中所有的属性名称 |
setMaxInactiveInterval(int interval) | void | 设置最大的session活动时间,如超过该时间,session自动失效,时间单位秒 |
removeAttribute(String name) | void | 删除指定名字的属性 |
setAttribute(String name,Object object) | void | 设定指定名字属性的属性值,并存储在session对象中 |
… | … | … |
销毁session:
(1):通过session对象的invalidate()方法,即:
session.invalidate();
(2):超过session的最大有效时间
(3):服务器进程被停止,session失效。
(1)URL重写:
通过request对象的getParameter()方法获取参数,从而实现session的跟踪。
(2)表单隐藏字段:
<input type="hidden" name="..." value="...">
(3)Cookie:…
(4)HttpSession对象:…