美国上市公司,专注Java培训22年

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


九种内置对象
对象 类型
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映射路径,让其满足请求路径

【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多

Java开班时间

收起