jsp九大内置对象

来源:互联网 发布:gtaol美女捏脸数据 编辑:程序博客网 时间:2024/06/18 12:11

内置对象简介

jsp内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。一共有九大内置对象。

常用的:

  • out
  • request
  • response
  • session
  • application

不常用的:

  • page
  • pageContext
  • exception
  • config

    Web程序是请求(request)与响应(response)模式。

get与post区别

<form name="regForm" action="动作" method="提交方式"></form>
  • get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索、查询等功能。
  • post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传等功能。

request

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。

常用方法如下:

  • String getParameter(String name)返回name指定参数的参数值
  • void setAttribute(String, Object);存储此请求中的属性
  • Object getAttribute(String name)返回指定属性的属性值
  • String getContentType()得到请求体的MIME类型
  • String getProtocol()返回请求用的协议类型及版本号
  • String getServerName()返回接受请求的服务器主机名
  • int getServerPort()返回服务器接受此请求所用的端口号
  • String getCharacterEncoding()返回字符编码方式
  • void setCharacterEncoding()设置请求的字符编码方式
  • int getContentLength()返回请求体的长度(以字节数)
  • String getRemoteAddr()返回发送此请求的客户端IP地址
  • String getRealPath(String path)返回一虚拟路径的真实路径
  • String getContextPath()返回上下文路径

    jsp中form的name对应着request的Parameter。

中文乱码问题:

  • Header:request.setCharacterEncoding(“utf-8”)
  • URL:配置tomcat服务器。conf下的server.xml中的Connector标签加上属性URIEncoding=”utf-8”

    求证form的get请求,中文归属于Header还是URL?

response

response对象包含了响应客户端请求的有关信息,但在jsp中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。

常用方法如下:

  • String getCharacterEncoding()返回响应用的是何种字符编码
  • void setContentType(String type)设置响应的MIME类型
  • PrintWriter getWriter()返回可以向客户端输出字符的一个对象(注意比较:PrintWriter与内置out对象的区别)
  • sendRedirect(java.lang.String location)重新定向客户端的请求

请求转发与请求重定向

  • 请求转发:服务器行为,request.getRequestDispatcher().forward(request,response)是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
  • 请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
  • getParameter:获取表单或者链接中的参数,只能存放String类型,所以注意类型换。
  • getAttribute:获取自定义的属性值。request与session在这方面的区别是生命周期不一样。可存放Object类型,同样注意类型转换。

session

表示客户端与服务器的一次会话。具体到Web中的session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,session实际上是一个特定的时间概念。
  • session对象在第一个jsp页面被装载时自动创建,完成会话期管理。
  • 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
  • 当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。
  • session对象是HttpSession类的实例。

常用方法

  • long getCreationTime()返回session创建时间
  • public String getId()返回session创建时jsp引擎为它设的唯一ID号
  • public Object setAttribute(String name,Object value)使用指定名称将对象绑定到此会话
  • public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
  • String[] getBalueNames()返回一个包含此session中所有可用属性的数组
  • int getMaxInactiveInterval()返回两次请求间隔多长时间此session被取消(单位秒)(也可setMaxInactiveInterval())

session的生命周期

  • 创建:当客户端第一次访问某个jsp或者Servlet的时候,服务器会为当前会话创建一个SessionId,每次客户端像服务端发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。
  • 活动:只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话,除非关闭全部页面重新访问,才会创建新的会话(注意原有会话还存在,只是旧的SessionId没有客户端会携带给服务端进行校验了)。
  • 销毁:只有三种方式:1、调用了session.invalidate()方法;2、session过期(超时);3、服务器重新启动。
  • **超时时间:**tomcat默认为30分钟。修改方式有两种:
session.setMaxInactiveInterval(时间);//单位s<session-config>    <session-timeout>10</session-timeout>//单位min</session-config>

application

全局变量,跟随服务器启动存在,常用的有

application.setAttribute("key",value);application.getAttribute("key",value);application中的属性有:<%    Enumeration attributes = application.getAttributeNames();    while(attributes.hasMoreElements()){        out.println(attributes.nextElement()+"&nbsp;&nbsp;");    }%><br>JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo()%>

page

指页面本身。与Object一样,有getClass()、toString()等方法。

pageContext

可以访问session,也可以取本页面所在的application的某一属性值,相当页面中所有功能的集大成者。

  • JspWriter getOut()返回当前客户端响应被使用的JspWriter流(out)
  • HttpSession getSession()返回当前页中的HttpSession对象(session)
  • Object getPage()返回当前页的Object对象(page)
  • void forward(String relativeUrlPath)使当前页面重导到另一页面
  • void include(String relativeUrlPath)在当前位置包含另一文件(jsp)

config

包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象),常用方法如下:

  • ServletContext getServletContext()返回含有服务器相关信息的ServletContext对象
  • String getInitParameter(String name)返回初始化参数的值
  • Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的值枚举

exception

<%@ errorPage="exception.jsp">//出异常页面需包含的属性,指定了异常后跳转的页面<%    System.out.println(100/0);//抛出运行时异常,算数异常%><%@ isErrorPage="true">//异常处理页面需包含的属性异常消息是:<%=exception.getMessage()%><br>异常的字符串描述:<%=exception.toString()%><br>
1 0
原创粉丝点击