Jsp

JSP脚本和运行原理

   JSP脚本
       1:<%java代码%> 内部是Java代码翻译到service内部
       2:<%= java 变量或表达式%> 会被翻译到service 方法内部的out.print 
       3:<%! java 代码%> 会被翻译到servlet 成员内容
  jsp 运行原理
       访问一个JSP文件,首先会到web容器work目录下面寻找是否有翻译好的_jsp.java文件,如果没有,web容器就会翻译成_jsp.java文件内容,总之jsp其实也是servlet

JSP指令

   page指令
        格式:<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>常用属性如 下:
         language:jsp脚本中可以嵌入的语言种类
         pageEncoding:当前jsp文件的本身编码---内部可以包含contentTypecontentType:response.setContentType(text/html;charset=UTF-8)
         session:是否jsp在翻译时自动创建session
         import:导入java的包
         errorPage:当当前页面出错后跳转到哪个页面
         isErrorPage:当前页面是一个处理错误的页面
   include指令
        页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
        格式:<%@ include file="被包含的文件地址"%>
   taglib指令
        在jsp页面中引入标签库(jstl标签库、struts2标签库)
        格式:<%@ taglib uri="标签库地址" prefix="前缀"%>

JSP内置/隐式对象

    JSP被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,我们在JSP脚本中可以直接使用这9个对象
    out              javax.servlet.jsp.JspWriter         用于页面输出
    request       javax.servlet.http.HttpServletRequest    得到用户请求信息
    response    javax.servlet.http.HttpServletResponse  服务器向客户端的回应信
    config         javax.servlet.ServletConfig  服务器配置,可以取得初始化参数
    session       javax.servlet.http.HttpSession   用来保存用户的信息
    application  javax.servlet.ServletContext  所有用户的共享信息
    page     java.lang.Object   指当前页面转换后的Servlet类的实例
    pageContext  javax.servlet.jsp.PageContext  JSP的页面容器
    exception    java.lang.Throwable java.lang.Throwable    表示JSP页面所发生的异常,在错误页中才起作用

  PageContext 四大作用域
    依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找

JSP 标签

  1)页面包含(动态包含):
  2)请求转发:
  静态包含和动态包含的区别:静态包含会把所有页面一次性翻译到一个servlet的service方法中,而对于动态包含,会翻译成多个servlet.java文件,需要的时候才动态引用。

EL表达式和JSTL标签库使用

  EL表达式主要是依次从依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取之后将不在向后寻找
  过${pageContext.request.contextPath}获取项目路径
  EL和JSTL的作用就是来替换jsp中的java脚本片段代码

你可能感兴趣的:(Jsp)