您的位置:首页 > Web前端 > JavaScript

WEB开发——JSP(九大内置对象、四大作用域、JSP指令、JSP标签)

2018-04-05 21:26 741 查看
JSP:(注释:<%-- 注释信息 --%>)
●  页面由HTML语句和嵌套在其中的Java代码组成的普通文本文件,文件扩展名必须为.jsp
●  Java代码嵌套在<%和%>中,称之为JSP脚本片段,没有在之间的内容称之为JSP的模版元素
●  out.println语句将Java代码产生的结果输出给客户端,System.out.println语句将它们打印到命令行窗口
●  将要输出的变量或表达式直接封装在<%= 和 %>之中,就可以向客户端输出这个变量或表达式的运算结果
●  声明方法需要封装在<%!和%>之中



注意:在一个JSP页面中可以有多个脚本片段(每个脚本片段代码嵌套在各自的<% 和 %>之间),脚本片段之间可以相互访问、可以嵌入模板元素。单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句(例如,循环取值时,从取值部分分隔成两个脚本片段,把值用表达式取出,嵌套在模板元素中)。 在JSP表达式中嵌套的变量或表达式后面不能有分号
------------------------------------------------------------------------------------------------------------------
JSP的运行原理:(JSP本质就是一个Servlet)
首次访问jsp页面时,WEB容器把当前的jsp页面转换成一个Servlet。然后把Servlet编译成class文件。页面访问的是class文件
------------------------------------------------------------------------------------------------------------------
JSP九大内置对象:(隐藏对象)
●  request:HttpServletRequest的一个对象,和Servelt中的request对象相同(常用)
●  response:HttpServletResponse的一个对象(在jsp页面中基本不使用)
●  pageContext:PageContext的一个对象,当前页面的上下文,可获得和当前页面相关的所以信息,并且可以获取其他8个对象(常用)
●  session:HttpSession的一个对象,表示的是浏览器和服务器的一次会话(常用)
●  application:ServletContext的一个对象,表示的是当前web应用(常用)
● config:ServletConfig的一个对象,获得当前页面的配置信息(与Servlet配置相同,类路径变换<jsp-file>路径</jsp-file>)(基本不使用)
●  out:是jspWriter的一个对象,可以用于在页面输出内容(基本不使用)
●  page:表示当前页面对应的Servlet的对象,但是只能访问Object类中的方法(基本不使用)
●  exception:表示异常对象(注意:只能在声明了isErrorPage="true"的页面中使用)
------------------------------------------------------------------------------------------------------------------
JSP四大作用域和属性相关的方法:
四大作用域:
●  pageContext:设置的属性只作用于当前页面
●  request:设置的属性作用在同一次请求中
●  session:设置的属性作用在一次会话中(会话:表是从浏览器打开到关闭)
●  application:设置的属性在整个web工程下都可以访问到
方法:
●  setAttribute(String  name, Object  o) :把一个值使用属性的方式存储起来
●  getAttribute(String  name) :获得指定属性名的值(属性名在作用范围内不存在则返回null值。而不是空指针异常)
●  getAttributeNames( ):获得所有的属性名
●  removeAttribute(String  name):移除指定的属性
------------------------------------------------------------------------------------------------------------------
JSP指令:(为JSP引擎而设计的,它们不直接产生任何可见输出,只是告诉引擎如何处理)
●  语法:<%@ 指令 属性名="值" %>(注意:属性名严格区分大小写)
●  例子:<%@ page contentType="text/html;charset=gb2312"%>
指令设置方式:(可以设置在一条上,也可以每个指令单独设置)
第一种方式:
●  <%@ page contentType="text/html;charset=gb2312"%>
●  <%@ page import="java.util.Date"%>
第二种方式:
●  <%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%> 
在目前的JSP2.0中,定义了page、include和taglib三种指令,每种指令都有一些各自的属性

------------------------------------------------------------------------------------------------------------------
JSP指令之Page指令:(用于定义JSP页面的各种属性)
import属性:导入其他类到当前文件
●  例子:<%@page import="java.util.Date" %>
session属性:表示当前页面是否允许使用session对象。为false表示当前页面不可使用session对象
●  例子:<%@page session="false" %>
errorPage属性:表示当前页面如果发生错误时,转发到哪一个页面显示(相对路径)
●  例子:<%@page errorPage="转发页面路径" %>
isErrorPage属性:表示当前页面是否是一个显示错误消息的页面,为true时表示是(可以在页面打印错误消息)
●  例子:<%@page isErrorPage="true" %>



注意:在web.xml文件中配置异常信息,表示作用在整个web工程,如果设置了某个页面的errorPage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用
isELIgnored属性:表示当前页面是否允许使用EL表达式
●  例子:<%@page isELIgnored="true" %>
------------------------------------------------------------------------------------------------------------------
JSP指令之include指令 :(引入一个页面到当前页面中)
●  例子:<%@include file="/include.jsp" %>(相对路径)
注意:两个页面合成一个页面,被引入的页面不会生成java源文件
------------------------------------------------------------------------------------------------------------------
JSP标签:
<jsp:include> :引入一个页面的输出内容到当前页面中,和include指令差不多
●  例子:<jsp:include page="/include.jsp" flush="true"></jsp:include>(相对路径)
●  flush:在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端
<jsp:forward>:用于把请求转发给另外一个资源
<jsp:param>:用于传递参数



------------------------------------------------------------------------------------------------------------------
转发有:
●  include指令:<%@include file="/include.jsp" %>
●  include标签:<jsp:include page="include.jsp"></jsp:include>
●  错误跳转:<%@page errorPage="转发页面路径" %>
●  forward标签:<jsp:forward page="hello.jsp"></jsp:forward>
●  pageContext.forward("/hello.jsp")
●  request.getRequestDispatcher(“转发地址”).forward(req,resp)
注意:在WEB-INF在的资源可以通过请求的转发方式访问到

------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐