学习笔记:JSP基础

jsp

  • 为什么学习jsp
  •  
  • jsp是什么
    • jsp原理:
      • 当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用。当再次访问jsp页面时  跳过翻译和编译的过程 直接调用
  • HttpJspBase继承HttpServlet,最终还是继承了Servlet接口
    • HttpJspBate在apache-tomcat-9.0.13\work\Catalina\localhost\项目名\org\apache\jsp中
    • init()
    • Servlet()
    • destroy()
  • jsp中脚本代码
    • <%Java代码%>
      • 局部变量(定义在类里面),就是简单的Java代码
    • <%= Java变量或表达式 %>
      • 在网页端输出结果
    • <%!  %>
      • 成员变量(定义在类里面),
  • jsp注释:
    • 用户(浏览器)可以看见的
      • <!-- --> 在jsp编译后的源码中
    • 用户(浏览器)看不见的
      • <%-- --%> jsp开发的注释最安全,在jsp编译后的源码中也找不到
      • // /**/ Java注释,在jsp编译后的源码中原样输出
  • Tomcat 下的 conf -> web.xml文件 根据 jsp 找到 JspServlet类
    • 当用户在浏览器访问jsp文件时,请求会经过Tomcat进行响应,
    • Tomcat根据jsp文件找到JspServlet进行翻译
    • 将翻译之后的文件存在work目录中
    • 然后生成同名的带有下划线的文件(xx.jsp.class 和xx.jsp.java)
  • jsp指令
    • page指令( 属性最多的指令) <%@ page指令( language="java"只能使用Java语言, ContentType=""等价于response.setContentType(""), pageEncoding(用来控制整个jsp文件的编码格式,在jsp文件右键的属性中也可以修改 )  %>
      • 告诉jsp,在页面中需要做什么事情
      • 属性:
        • language="java"只能使用Java语言
        • ContentType=""等价于response.setContentType("")
        • pageEncoding 用来控制整个jsp文件的编码格式,在jsp文件右键的属性中也可以修改
        • session (值为true 或 false)
        • extends
        • errorPage:当发生错误之后 跳转到这个页面,使用是的是转发,一般用于网站的找不到或者出错提示
        • isErrorPage:这是设置出错 处理页面,当为true时表示该页面是处理出错的页面
    • include指令
      • 静态包含  <%@ include file =" header.jsp "%>
      • 动态包含:  < jsp :include page= "header.jsp" ></ jsp :include >
      • 动态包含和静态包含区别:
        • 动态包含:
          • 在源码中使用include方法分别引入两个页面
        • 静态包含:
          • 在源码中直接将两个页面翻译,然后拼接在一起
      •  
    • taglib指令
  • jsp内置(隐式对象)
    • 不需要自己创建就可以使用;通过开关可以使用的某些属性
    • jsp的9个内置对象
      1. request
        •  
      2. response
        •  
      3. pageContext  Context(上下文 上下文环境)
        1. pageContext作用域范围
          • 在当前页面有效
          • 在pageContext中,通过scope参数(参数值可以为:pageContext.REQUEST_SCOPE\pageContext.SESSION_SCOPE\pageContext. APPLICATION_SCOPE ......)设置pageContext作用域范围大小
          • 作用域范围:
            • pageContext(当前页面范围) < request(一次请求)< session(一次会话) < application(也就是servletContext作用域,范围是整个web应用内,数据可以共享)
        2. pageContext对象动态获取项目名称:
          • 使用了API:${ pageContext.request.contextPath  }
        3. 获取作用域的值
          • pageContext.getAttribute( "name" );
            • 如果在获取域的值时,后面不添加任何作用域范围的话,默认情况下找到就是 默认的pageContext域
            • pageContext.getAttribute( "name" ,pageContext. REQUEST_SCOPE ); 获取指定作用域的值
          • pageContext.findAttribute( "name" ); 使用这个方法,不需要指定作用域,会先从最小的作用域中找值,如果没有,那就向较大的域找,直到找到,如果最后都没有找到就返回null
      4. session
        • 用来保存用户信息
      5. application 
        • 所有用户的共享信息
      6. exception(该对象必须在jsp中设置isErrorPage=“true”)
        •  
      7. config
        • 服务器配置,获得初始化参数
      8. out
        • 用于页面输出(往客户端输出内容)
        • response.getWriter.write()是存在buffer缓冲器中,而使用简单的输出(类似于System.println.out())是存在out缓冲区中。
        • 默认情况下out缓冲区大小为8kb,jsp只访问buffer缓冲区中的内容,系统会将out缓冲区中的内容移到buffer缓冲区中(由于buffer缓冲区中已经有内容,所以out缓冲区中的内容会排在buffer缓冲区后面)。
        • 可以使用jsp属性:buffer="0kb"来关闭buffer缓冲区
      9. page
        • 指当前页面转换后的servlet类的实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值