尚学堂【官网】-西安Java培训|c++培训|Android培训|安卓培训|java视频教程|软件工程师|-西安雁塔尚学堂计算机学校
Java教程  尚学堂首页Java学院Java教程

JSP中九种内置对象的用法总结

www.xasxt.com 发布人:java  |  来自:本站  |  发布时间:2016-03-26 10:06:32  |  点击次数:2011
九种内置对象
对象 类型
pageContext javax.servlet.jsp.pageContext
request javax.servlet.Http.HttpServletRequest
response javax.servlet.Http.HttpServletResonse
session javax.servlet.Http.HttpSession
appliation javax.servlet.servletContext
config javax.servlet.ServletConfig
page java.lang.Object
out javax.servlet.jsp.JspWriter
exception java.lang.Throwable

1.pageContext 

可以设置4种属性范围但是一般不要用

2.request内置对象

1.接收单独一个参数
public String getParameter(String name)
2.接收一组参数
public string[] getParameterValues(String name);
3.接收所有提交的参数名称
public Enumeration<?> getParameterNames()
返回的是Enumeration类型,其中有两个方法 boolean hasMoreElements(); nextElement();
用while迭代

取得连接类型:public String getMethod();

form 上的Method属性表示表单的处理类型
get:用户直接访问就表示一个get请求,如果get提交,用户输入的表单数据都会显示在地址栏上
post:只能用在表单上,输入的内容不会修改地址栏的数据

总结: 关于getParameter()的使用 三种情况(三种数据来源)
1.使用标签指令传递参数(<jsp:param>)
2.接收表单数据
3.采用地址重写传递数据

乱码的解决分为两种形式:
1.POST请求处理乱码
POST主要在表单上应用,而对于此类的乱码处理,主要依靠HttpServletRequest
接口的一个方法:
设置请求编码:public void setCharacterEncoding(String encoding);
2.GET请求处理乱码
new String (request.getParameter("参数名").getBytes("类型"));

其他方法:
在httpServletRequest 接口里还有2个方法
1.取得客户端的IP地址
public String getRemoteAddr();
2.取得虚拟目录的名称
public String getContextPath();

3.response内置对象

服务端对客户端的回应
javax.servlet.http.httpservletResponse接口的实例对象
得到客户端的输出流
public PrintWriter getWriter() throw IOException ;
除了输出之外,response还实现了三个功能
请求重定向
设置头信息
操作cookie
1.请求重定向
public void sendRedirect(String location);
跳转的同时地址发生改变,客户端跳转,客户端跳转无法传递request可以传递session、application
是页面执行完后跳转,而forward是无条件跳转,跳转之后代码不会执行
2.设置头信息
可以使用request对象取得信息的操作
取得头信息的名称:
public Enumeration getHeaderNames();
根据名称取得头信息
public String getHeader(String name);
设置头信息
public void setHeader(String name ,String value);

设置自动刷新:setHeader("refresh","2;url=...");

页面的跳转:
客户端跳转:页面改变,不传递request,页面执行完
1.response.sendRedirect(路径)
2.response.setHeader("refresh","时间;url=...");
3.window.location = "路径",超链接
服务端跳转:页面不变,可以传递request,无条件的跳转,只要执行到就跳转
实现方式:
<jsp:forward page="路径" />
操作cookie
JSP中提供了专门Cookie操作类,常用方法
构造方法:public Cookie (String name ,String value)
取得Cookie的名字:public String getName();
取得Cookie的内容:public String getValue();
要将Cookie数据设置到客户端上,可以用response提供的方法
将Cookie设置到客户端:
public void addCookie(Cookie cookie) ;
取得设置的Cookie用request
取得全部的Cookie:
public Cookie[] getCookies();返回一个Cookie数组
设置Cookie的保存时间,Cookie类提供的方法
public void setMaxAge(int expiry) ,秒

4.session 对象

cookie 中保存的数据发送到服务端,取出指定的数据进行比较就知道是哪一位用户了
获得id : public String getId();
可以判断用户是否第一次登陆(通过JSESESSION这个Cookie来确定),HttpSession有方法:
public boolean isNew();来判断session是否是新建的
最多用于用户的登陆验证
让session彻底销毁用:
public void invalidate();

5.Config 对象

主要功能是取得页面配置的初始化参数
取得一个初始化参数:
public String getInitParameter(String name);
初始化参数在xml中配置
<servlet>
<init-param>
<param-name>初始化参数名</param-name>
<param-value>参数值</param-value>
</init-param>
</servlet>

6.application 对象

表示一个servlet上下文对象
重要方法:取得虚拟路径对应的真实路径:
public String getRealPath(String Path)
取的是xml中的docbase的路径
request.getContextPath()取得的是Path属性的内容,一般不用,用下面方法替代
getServletContext();

7.PageContext对象

可以直接操作page属性范围
服务器端跳转:
public abstract void forward(String Path) ;
取得ServletRequest接口对象:
public abstract ServletRequest getRequest();
取得ServletResponse接口对象:
public abstract ServletResponse getResponse();
取得ServletConfig对象:
public abstract ServletConfig getServletConfig();
取得ServletContext接口对象:
public abstract ServletContext getServletContext();
包含页面:
public abstract void include(String relPath);
取得HttpSession接口对象:
public abstract HttpSession getSession();

所有的对象都可以通过PageContext取得

Servlet与JSP路径不相同两种修改方式
1.在action上加入BasePath
直接在表单上让其访问父路径
2.修改Servlet映射路径,让其满足请求路径
当前文:JSP中九种内置对象的用法总结
上一页:不是傻子?java程序员应该做开源项目的 6 个原因
下一页:如何学习程序设计?
在线报名(*为必填项)