JSP内部对象详解

2016-02-19 19:29 4 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享JSP内部对象详解教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

  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);%

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  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);
  %

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1621121.html

延伸阅读
标签: ASP
  Recordset对象方法 Open方法 recordset.Open Source,ActiveConnection,CursorType,LockType,Options Source Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Re...
标签: Web开发
JavaScript中的Math对象提供了大量的算术运算功能和数值操作方法。 JavaScript中的Math对象的与众不同之处在于,它是一个全局对象。在使用Math对象之前,既不需要将一个变量声明为Math对象,也不需要定义一个新的Math对象,JavaScript将自动地创建好Math对象,我们只须直接使用它即可。这使得Math对象使用起来很容易。 Math对象的属性中包...
假设你正在一个包含矩形的应用程序上工作。每一个矩形都可以用它的左上角和右下角表示出来。为了将一个 Rectangle 对象保持在较小状态,你可能决定那些点的定义的域不应该包含在 Rectangle 本身之中,更合适的做法是放在一个由 Rectangle 指向的辅助的结构体中: class Point { // class for representing points public: Point(...
标签: Web开发
一、page 对象         page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。 二、config 对象         config 对象里存放着一些Servlet 初始的数据结构。       &...
标签: Web开发
因为浏览器会将之前浏览过的数据存放在浏览器的cache中,所以,浏览器有时候会直接从cache中取出数据,因为,我们修改程序后,会显示之前旧的数据 下面这段代码,可以修正这个问题   %      if(request.getProtocol().compareTo("HTTP/1.0")==0)       &nbs...

经验教程

706

收藏

72

精华推荐

OpenCms的JSP标签详解

OpenCms的JSP标签详解

龙飞凤舞000620

java中关于内部类的使用详解

java中关于内部类的使用详解

沒落的高富帅

asp内置对象 ObjectContext详解

asp内置对象 ObjectContext详解

meiyuan564

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部