第二章 Jsp数据交互
1. 什么是Jsp内置核心
Java内置对象 Java作用域
2.什么是内置对象
就是Web容器创建一组对象
3.Jsp中九大内置对象
request 请求对象
out 输出对象
response 响应对象
application 应用程序对象
session 会话对象
pageContext 页面上下文对象
page 页面对象
config 配置对象
exception 异常对象
4.request对象常用方法
String getParameter(String name) 根据表单组件名称获取提交数据
String []getParameterValues(String name)获取表单组织对应多个值时的请求数据
void setCharacterEncoding(String charset)指定每个请求的编码
RequestDispatcher getRequestDispatchaer(String path)返回一个requestDispatcher对象该对象的forward()方法用于转发请求
5.通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码:
在调用getParameter()之前,设置请求对象request的编码方式。
<% request.setCharacterEncoding("utf-8");%>
如果是通过get方式提交的form,两种处理乱码方案:
通过new String(str.getBytes(“iso-8859-1”),”utf-8”);
这种方式的缺点,每获取到一个用户提交的数据就要进行一道转换
通过conf下的server.xml文档的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEcoding=”utf-8” />
6.常见的错误码 (响应)
404:服务器上找不到请求资源页面
500:服务器内部错误
7.重定向
如果想从一个页面重定向到另一个目标页面,这个时候使用的是response.sendRedirect(“目标地址”);
8.转发
如果想从一个页面重定向到另一个目标页面,这个时候使用的是转发操作,
request.getRequestDispatcher("main.jsp").forward(request,response);
9.重定向和转发的区别
怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择重定向。
转发和重定向的区别
不要仅仅为了把变量传到下一个页面而使用session作用域,那会无故增大变量的作用域,转发也许可以帮助你解决这个问题。
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
10.session对象常用方法
void setAttribute(String key Object value) 以key/value的形式保存对象值
Object getAttribute(String key)通过Key获取对象值
void invalidate 设置session对象失效
String getid(获取session)
void setMaxinactiveinteral(int interval) 设置sessionn非活动时间
int getMaxina ctiveinvelnnterval() 获取session的有效非活动时间
void removeAttribute(String key)从session中删除指定名称(key)所对应对象