四种属性范围
- page:在一个页面内保存属性,跳转之后无效
language属性:设置jsp页面使用的语言,目前只支持Java,默认值为java
import属性:设置JSP导入的类包,嵌入的java代码片段需要导入相应的类包
pageEncoding属性:指定页面编码格式,默认设置为ISO-8859-1,此时页面不支持中文,应更改为UTF-8
contentType属性:设置页面的MIME类型和编码
session属性:指定页面是否使用HTTP的session会话对象,默认值为true
errorPage属性:设置页面的异常处理页面JSP地址,对应的异常处理JSP页面的isErrorPage必须设置为true,如果设置该属性,那么在web.xml文件中定义的任何错误处理页面都将被忽略,优先使用该属性定义的异常处理页面。
- request:在一次服务请求范围内,服务器跳转后依然有效
- session:在一次会话范围内,无论何种跳转都可以使用,但是新开浏览器无法使用
- application:在整个服务上保存,所有用户都可以使用
九大内置对象:
- 由JSP规范提供,不用编写者实例化。
- 通过Web容器实现和管理
- 所有JSP页面均可使用
- 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)
常用内置对象分类:
- 输出输入对象:request对象、response对象、out对象
- 通信控制对象:pageContext对象、session对象、application对象
- Servlet对象:page对象、config对象
- 错误处理对象:exception对象
request对象:
//获取参数值
request.getParameter("username");
//客户端的请求转向到getRequestDispatcher()方法中参数定义的页面或者链接
request.getRequestDispatcher("login_success.jsp").forward(request, response);
//获取参数值
if(request.getParameterValues("hobit") !=null)
{
String[] favo = request.getParameterValues("hobit");
for(int i=0;i<favo.length;i++)
{
out.println(favo[i]+" ");
}
}
//请求体的MIME类型:
<%=request.getContentType() %>
//协议类型和版本号:
<%=request.getProtocol() %>
//服务器主机名:
<%=request.getServerName() %>
//服务器端口号:
<%=request.getServerPort() %>
//请求文件的长度:
<%=request.getContentLength() %>
//请求客户端的IP地址:
<%=request.getRemoteAddr() %>
//请求的上下文路径:
<%=request.getContextPath() %>
application对象:
<%
application.setAttribute("city","北京");
application.setAttribute("postcode","10000");
application.setAttribute("email","lisi@126.com");
%><br>
所在城市是:<%=application.getAttribute("city") %><br>
application中的属性有:
<%
Enumeration<?> attributes = application.getAttributeNames();
while(attributes.hasMoreElements())
{
out.println(attributes.nextElement());
}%><br>
JSP引擎的版本【Tomcat】:<%= application.getServerInfo() %>