Jsp

作者: 耗子撼大象 | 来源:发表于2017-04-11 17:49 被阅读0次

    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)页面包含(动态包含):<jsp:include page="被包含的页面"/>
      2)请求转发:<jsp:forward page="要转发的资源" />
      静态包含和动态包含的区别:静态包含会把所有页面一次性翻译到一个servlet的service方法中,而对于动态包含,会翻译成多个servlet.java文件,需要的时候才动态引用。
    

    EL表达式和JSTL标签库使用

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

    相关文章

      网友评论

          本文标题:Jsp

          本文链接:https://www.haomeiwen.com/subject/wbduattx.html