jsp基础

一、jsp运行原理

 当浏览器访问JSP页面时,web服务器会将JSP翻译成Servlet并执行,将内容写到response对象中,JSP页面中的各种html标记以out.write()方式写入到response对象中。
 
二、jsp语法

 jsp模版元素:jsp页面中的html标记
 jsp脚本表达式:<%=变量或者表达式 %>,它用于向浏览器输出数据
 jsp脚本片段:<%java代码%>,多个脚本片段可以看成一个整体
 jsp声明:<%!java代码 %>,Java代码会被翻译到Service方法外面去
 jsp注释:<%-- --%>,注释的内容不会被发送到浏览器
 
三、jsp的page指令

 语法:<%@ page ContentType="text/html;charset=UTF-8" import="java.util.data"%>
 page指令的属性: language="java"-->脚本片段中嵌入的是什么代码,extends="package.class"-->翻译后的servlet继承自哪个类,import="java.util.*"-->导入包名
 session="true|false"-->翻译后的jsp是否要新建一个session对象,buffer="none|8kb|sizekb"-->jsp页面是否需要缓冲,主要用于out对象输出数据是否写到缓冲区
 autoFlush="true|false"-->缓冲满了是否自动刷新,isThreadSafe="true|false"-->该jsp是否是线程安全的,false是安全的,info="text"-->带些信息,errorPage="relativeURL"
 -->指定出错页面,路径如果以"/"开头则代表当前web应用,对于错误处理页面也可以在web.xml文件中通过<error-page>元素为整个页面配置错误处理页面,<exception-type>指定异常类
 完全限定名,<location>以"/"开头指定错误页面路径,如果设置了某个页面的errorPage指令,则web.xml中的配置对该页面无效。ContentType="text/html;charset=UTF-8"指定页面格式
 和编码方式,isELIgnored="true",告诉web服务器是否忽略EL表达式。
 
四、jsp的include指令

 <%@include file=""%> -->静态包含 <%request.getRequestDispatcher("/").include(request,response)%> -->动态包含
 
五、jsp的taglib指令

六、jsp的九大隐式对象

 request,response,application,session,exception,out(jspWriter),page,config(ServletConfig),pageContext
 
七、jsp的out对象

 out对象通过调用pageContext对象的getOut()方法获得,只有满足下面条件之一,out对象才去调用ServletResponse.getWriter()方法获得PrintWriter对象,将其缓冲区中的内容写到
 response对象中。
 1.关闭页面的缓存(page 的buffer指令)
 2.out对象的缓冲区已满
 3.整个jsp页面已结束
 
八、PageContext对象

 PageContext对象代表jsp页面的运行环境,他的生命周期是一个页面,他封装了其他八大隐式对象(用在自定义标签开发中),他还是一个域可以用来保存数据,他还封装了web开发中经常用到的一些操作,例如包含和跳转其他资源,检索其他
 域中的属性(EL表达式的底层实现)
 pageContext.findAttribute(String name)用来寻找其他域中的属性,查找顺序page,request,session,application
 pageContext还有两个方法:forward()和两个include()(用来分别替代request和include指令的包含)
 
九、jsp常用标签
 
 jsp标签有时也称jsp action元素,他可以实现业务逻辑功能,避免在jsp中写入java代码。
 常用标签:
 <jsp:include>
 <jsp:forward>-->应用场景,配置网站首页的时候,配置jsp为首页,jsp插入跳转servlet的标签
 <jsp:param>-->用于传递数据
 
十、jsp映射

 <servlet>
  <servlet-name></servlet-name>
  <jsp-file></jsp-file>
 </servlet>
 <servlet-mappping>
  <servlet-name></servlet-name>
  <url-pattern></url-pattern>
 </servlet-mappping>

posted @ 2011-12-27 12:34  xiao秋  阅读(899)  评论(0编辑  收藏  举报