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()+" "); }%><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
- JSP九大内置对象
- JSP内置九大对象
- JSP九大内置对象
- JSP九大内置对象
- jsp 九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- Jsp九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- jsp九大内置对象
- JSP九大内置对象...
- jsp九大内置对象
- JSP九大内置对象
- MyBatis Generator实战
- 玩玩小爬虫——入门
- 深入浅出设计模式之装饰者模式、工厂模式
- ItextPdf 数字签名,HTML转PDF功能
- 玩玩小爬虫——试搭小架构
- jsp九大内置对象
- 陆奇是谁?
- 玩玩小爬虫——抓取动态页面
- 【Java】递归
- 玩玩小爬虫——抓取时的几个小细节
- 性能优化:减少应用程序安装包的大小
- 经典算法题每日演练——第四题 最长公共子序列
- 经典算法题每日演练——第五题 字符串相似度
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法