1.JSP内置对象
1.1request 对象封装了用户提交的信息,该对象调用相应的方法就可以获取封装信息,
get和post方法主要区别:get方法提交的信息会显示在浏览器地址栏中,而post提交的信息不会显示在地址栏中;
request 对象可以使用getParameter(String s) 方法获取表单提交的信息,
1.2处理汉字信息:
当用request对象获取客户端提交的汉字字符时,会出现乱码问题,所以必须对获取的字符信息进行特殊处理;
String str = request.getParameter("girl");
byte b[] = str.getBytes("ISO-8859-1");
str = new (b);
1.3常用方法举例:
getServletPaht() 获取用户请求的JSP页面文件的目录
getContentLength() 获取客户提交的整个信息的长度
getMethod() 获取客户提交信息的方式 post 或get
getRemoteAddr() 获取客户端IP地址
getRemoteHost()获取客户机名称
2.1response对象
response对象对客户的请求做出动态响应,向客户端发送数据,
response的重定向 当响应一个用户时,需要将客户重新引导另一个页面,
response.sendRedirect("XXX.jsp");
response对象的setStatus(int n) 方法来增加状态行的内容
response.setStatus(408);
out.print("不显示了");
3 session对象
HTTP协议是无状态协议,一个客户向服务器发送请求(request),然后服务器返回响应,连接就关闭了;
因此必须使用会话记录有关的连接信息。
3.1session对象的ID
当一个客户首次访问服务器上的一个 JSP 页面时,JSP 引擎产生一个 secssion 对象,这个 session 对象调用相应的方法可以存储客户在访问各个页面期间提交
的各种信息,比如,姓名、号码等信息。这个 session 对象被分配了一个 String 类型的 Id 号,JSP 引擎同时将这个 Id 号发送到客户端,存放在客户的 Cookie
中。这样,session 对象和客户之间就建立起一一对应的关系,即每个客户都对应着一个 session 对象(该客户的会话),这些 session 对象互不相同,具有不同
的 Id 号码。我们已经知道,JSP 引擎为每个客户启动一个线程,也就是说,JSP 为每个线程分配不同的 session 对象。当客户再访问连接该服务器的其它页面
时,或从该服务器连接到其它服务器再回到该服务器时,JSP 引擎不再分配给客户的新 session 对象,而是使用完全相同的一个,直到客户关闭浏览器后,服务器
端该客户的 session 对象被取消,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的 session 对象。
String s =session.getId();
3.2 session对象和URL重写
如果客户端不支持Cookie,那么客户在不同网页之间的对象可能是互不相同的,因为服务器无法将ID存放到客户端,就不能建立session对象和客户一一对应的关系,可以通过URL重写来实现session对象的唯一性
session.jsp 中
String s =session.getId();
String str = response.encodeURL("tom.jsp");
<form action<%=str%> method=post name=form>
tom.jsp中
String s =session.getId();
String str = response.encodeRedirect("jerry.jsp");
<a href = "<%=str%>">
jetrry.jsp中
String s= session.getId() ;
String str = reponse.encodeRedirect("tom.jsp");
<a href = "<%=str%>">
3.3session 对象的常用方法:
public void setAttribute(String key,Object obj)
session对象类似于散列表,session 对象可以调用该方法将参数 Object 指定的对象 obj
添加到 session 对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对
象的关键字相同,则先前添加的对象被清除。
public Object getAttribute(String key)
获取session对象含有关键字key的对象
public removeAttribute(String key)
从当前对象中删除关键字是key的对象
public void setMaxInactiveIterval(int n)
设置session对象的生存时间(单位是秒)
public long getCreationTime()
获取该对象的创建时间单位是毫秒