JSP内置对象编程技巧

js|编程|对象|技巧|内置对象

1.1 application
*在jsp中获得application对象
如:getServletContext().setAttribute("counter",new mycount.Counter());
如:<jsp:useBean scope="application" id="counter" class="mycounter.Counter"/>
*在jsp中处理On Application Start和On Session Start事件的方法
使用HttpSessionBindingListener类.
添加session:
session.putValue("bingdings.listener",new MyListener(getServletContext());
定义MyListener类:
import javax.servlet.http.*;
import javax.servlet.*;
public class MyListener implements HttpSessionBindingListener{
ServletContext context;
public MyListener(ServletContext context){
this.context=context;
}
public void valueBound(HttpSessionBindingEvent event){
System.out.println("valuebound:someone just bound my listener to a session!");
}
public void valueUnbound(HttpSessionBindingEvent event){
System.out.println("valueunbound:someone just unbound my listener!");
}
}

1.2 request
*获取一个正在运行时的jsp/servlet文件的绝对url地址
Stringf file=request.getRequestURL();
if(requet.getQueryString()!=null{
file+='?'+request.getqueryString();
}
URL reconstructedURL=new URL(request.getScheme(),request.getServerName(),request.getServerPort(),file);
out.println(reconstructedURL.toString());
*获取客户端通过哪一个url访问本页面
String callPage=request.getHeader("Referer");
*获取当前脚本在当疥文件系统中的真实路径
request.getRealPath(request.getServletPath());
*判断多个submit中的一个
<input type=submit name="sub" value="up">
<input type=submit name="sub" value="down">
在jsp中使用request.getParameter("sub");就可分辨

1.3 response
*网页重定向之三方法
(1)response.sendRedirect(url);
(2)<%response.setStatus(HttpServletResponse.SC_MOVED_PREMANENTLY);
String nowloc="/newpath/index.htm";
response.setHeader("Location",newloc);%>
(3)<jsp:forward page="/newpage.jsp"/>
注意上法只能在任何输出还没有发送到客户端之前使用这种方法
*禁用缓存
<%response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);%>

1.4 session
*存活时间
<%session.setMaxInactiveInterval(300);%>
*注销
session.invalidate();

1.5 exception
*在jsp页面中处理Servlet的错误
protected void sendErrorRedirect(HttpServletRequest request,
HttpServletResponse response,String errorPageURL,Throwable e)
throws ServletException,IOException{
request.setAttibute("javax.servlet.jsp.jspException",e);
getServletConfig().getServletContext();
getRequestDispatcher(errorPageURL).forward(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response){
try{
//
}
catch(Exception e){try{
sendErrorRedirect(request,response,"/jsp/ErrPage.jsp",e);
}catch(Exception e){e.printStackTrace();}
}
}
*在jsp页面中输出错误的stacktrace
(1)
<%@ page isErrorPage="true%>
<%
out.println("<pre>");
printWriter pw=response.getWriter();
exception.printStackTrace(pw);
out.println("</pre>");
%>
(2)
<%@ page isErrorPage="true%>
<pre>
<%
exception.printStackTrace(new PrintWriter(out));
%>
</pre>

1.6 Cookie
*设置cookie
<%
Cookie mycookie=new Cookie("aName","aValue");
response.addCookie(mycookie);
//mycookie.setMaxAge(time);
%>

时间: 2024-11-03 21:10:57

JSP内置对象编程技巧的相关文章

JSP内置对象:Request和Response的简单介绍及使用_JSP编程

JSP内置对象之request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例.序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLen

jsp内置对象入门(7) pageContext对象详解

我们已经学完了jsp内置对象的最主要的四种对象----page.request.response.session和application,在内置对象中有一个pageContext也是很重要的,因为它在某些程度上是全能的,因为它的一些方法能够代替四种内置对象的方法. pageContext对象简介 pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个jsp页面的上下文,此类中除了之前讲解过的属性操作之外,还定义了以下的一些方法,正是这些方

实例详解JSP内置对象

js|对象|内置对象|详解 jsp九种内置对象:request, reponse, out, session, application, config, pagecontext, page, exception. 一.request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息. 1.Request对象可以使用getParameter(string s)方法获取该表单通过text提交的信息.如: Request.getParamet

jsp内置对象入门(4) response对象详解

jsp内置对象[03]中学完了request对象,现在学习response对象,request是客户端对服务器端的请求,而response是服务器端对客户端的回应. response对象简介 response对象主要作用是用于对客户端的请求进行回应,将WEB服务器处理后的结果发回给客户端. response对象属于javax.servlet.http.HttpServletResponse接口的实例 HttpServletResponse接口的定义格式与HttpServletRequest接口的

jsp内置对象入门(3) request对象详解【02】

关于request对象的方法有很多,在jsp内置对象[03]request详解[01]中,我们一起学习了request对象中的参数接受问题,那么现在再来看一下request的其他方法: 乱码解决( setCharacterEncoding()) 乱码可是WEB开发中的问题老大哥了,我相信有不少接触过这个东西的人都对其相当的头疼. 什么是乱码? 在运行程序的时候,本来应该显示的中文竟然变成了莫名其妙的其他看不懂的字符,那我们说就碰到乱码了.我们以下面的程序为例: Request_01.jsp <%

jsp内置对象入门(3) request对象详解【01】

在jsp内置对象[02]中我们简单的学习了page.request.session.application四种对象的属性范围.那么从这篇文章开始我们共同来具体学习request.response.session和application的用法.先从request讲起 request内置对象介绍: request内置对象时使用最多的一个对象了,其主要作用是用来接收客户端发送而来的请求信息,例如:请求的参数.发送的头信息等都属于客户端发来的信息,request是javax.servlet.HttpSe

jsp内置对象入门(2) 【02】session、application

我们继续来学习,上一篇文章中说到了request属性,那么既要想客户端和服务端都都能实现跳转的话,就用到了session. 第三种:session属性 我们接着修改一下上一篇文章中的代码来对比一下: Session_01.jsp <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <html> <head> <t

jsp内置对象入门(2) 【01】page、request

内置对象是jsp的核心部分,可以说内置对象贯穿WEB的始终,即使在后续的开发中也依然频繁的用到. 在"jsp内置对象[01]"中的表格介绍了9中内置对象,真正常用到的就四种:page.request和response.session.application. 这四种内置对象各自都有自己的用途和方法.但都有一个相同的目的:就是都是用来接受参数的,都有如下的属性操作方法: 那么四种对象不同的地方就在于四种内置对象有四种不同的属性操作范围.我和大家一起来详细看一下四种属性范围个作用在什么范围

jsp内置对象入门(1) 内置对象概览

jsp内置对象可以说已经接触到了jsp最核心的部分了.其实我们之前就已经接触过这一方面的知识了,大家还记得以前接受参数的时候有个request.getParameter();了吗.没错,这就是我们所讲的内置对象的一种对象里的一个方法. jsp内置对象: 在jsp之中,已经专门为用户的使用提供了许多的内置对象,所谓的内置主要指所有的对象不用再由用户自己进行对象的实例化操作,而可以直接进行使用. 例如,之前学习的request,有一个接受参数的方法,public String getParamete