JSP 学习笔记

JSP 语法

jsp 声明

  • 定义的变量是全局变量

    <%! %>
    

jsp 程序段(jsp 脚本)

  • 在其中声明的变量是局部变量

    <% 
    
    %>
    

jsp 表达式

  • 在 jsp 页面中执行的表达式

    <%= 表达式 %>(注意:表达式不以分号结束)
    

jsp 注释

  • html 注释;暴露给客户端

    <!-- 注释 -->
    
  • jsp 注释:只在编辑代码时可见,不会爆露给客户端

    <%-- 注释 --%>
    
  • 在 jsp 程序段中 java 的注释可以使用

JSP 页面的生命周期

  • 若第一次请求此 JSP,JSP 引擎把 JSP 文件转换成为一个 Servlet ,生成字节码文件,并执行 jspInit();解析生成的字节码文件,并执行 jspService();若不是第一次请求,则直接拿字节码文件进行执行;用 jspDestroy() 进行销毁;
  • jspService() 方法被用来处理用户请求。每次请求 JSP 引擎会创建一个新的线程进行处理,多线程并发请求处理。

JSP 编译指令

  • jsp 设置属性,获取 jsp

Page 指令

  • 主要指定脚本指令、引入外部文件等;可以包含多个 page 指令

    <%@ page language="java"(脚本语言)
            contentType="text/html;charset=UTF-8"(返回给浏览器,指定浏览器解析的类型)
            pageEncoding="UTF-8"(文档内容类型)
            import=""
            errorpage="errorpage.jsp"(当 jsp 抛出错误信息时,返回这个页面)
     %>
    <%@ page import="java.util.ArrayList"(引入 java 包) %>
    

include 指令

  • 将一个外部文件嵌入到当前 JSP 文件中,同时解析这个页面的 JSP 语句

taglib 指令

  • 使用标签库定义新的自定义标签,在 JSP 页面中启用定制行为

JSP 内置对象

内置对象简介

  • JSP 内置对象是 web 容器创建的一组对象,不使用 new 关键字就可以使用的内置对象;

out 对象

  • out 对象是 JspWriter 类的实例,是向客户端输出内容常用的对象
  • 常用方法:
    • println()
    • clear()
    • cleanBuffer()
    • flush()
    • getBufferSize()
    • getRemaining()
    • isAutoFlush()
    • close()

request 对象

  • request 对象是 HttpServletRequest 类的实例。request 对象具有请求域,即完成客户端的请求之前,该对象一直有效
  • 常用方法:
    • getParameter(String)
    • getParameterValues(String)
    • setAttribute(String,Object)
    • getAttribute(String)
    • getContentType()
    • getProtocol()
    • getServerName()
    • getServerPort()
    • getCharacterEncoding()
    • setCharacterEncoding()
    • getContentLength()
    • getRemoteAddr()
    • getRealPath(String)
    • request.getContextPath()
  • post 请求乱码问题
    • 解决:通过 request.setCharacterEncoding("UTF-8");
  • 超链接中文乱码
    • 解决:配置 Tomcat 的 conf 下的 Server.xml 文件中的 Connector 标签,添加属性 URIEncoding="utf-8"

response 对象

  • response 对象是 HttpServletResponse 类的实例。它的作用域是页面,即该页面的 response 对象只能对这次访问有效,其它页面的 response 对象对当前页面无效。
  • 常用方法:
    • getCharacterEncoding()
    • setContentType(String)
    • getWriter()
    • sendRedirect(String) :重定向客户端的请求

session 对象

1、session 简介
  • session 表示客户端与服务器的一次会话
    • web 中的 session 指的是用户在浏览某个网站时,从进入网站到浏览器关闭的这段时间
  • session 保存在内存中,每个浏览器对应一个 session
2、session 对象
  • session 对象是一个 JSP 内置对象;在第一个 JSP 页面被装载时自动创建,完成会话管理。
  • session 对象是 HttpSession 类的实例
  • 常用方法:
    • getCreationTime()
    • getId()
    • setAttribute(String,Object)
    • getAttribute(String)
    • getValueNames()
    • getManInactiveInterval()
    • setManInactiveInterval()
3、Session 的生命周期
  • 创建阶段:当客户端第一次访问某个 jsp 或 Servlet 时,服务器会为当前回话创建一个 SessionId,其后再向服务器端发送请求时,会将此 SessionId 携带过去,服务器会对此 SessionId 进行校验。
  • 活动阶段:在 web 开发中,浏览器没有关闭,就是一次会话,即同一个 SessionId。若浏览器没有关闭,重新打开访问项目资源,还是同一个会话。
  • 销毁阶段:三种方式
    • 调用了 session.invalidate() 方法
    • Session 过期(超时)
    • 服务器重新启动

application 对象

  • application 对象实现了用户间数据的共享,可存放全局变量,即 application 的属性是全局的,所有用户都是相同的。
  • application 的生命周期,开始于服务器的启动,终止于服务器的关闭。
  • application 对象是 ServletContext 类的实例。
  • 常用方法:
    • setAttribute(String,Object)
    • getAttribute(String)
    • getAttributeNames()
    • getServerInfo()

其它内置对象

  • page 对象
    • page 对象就是指向当前 JSP 页面本身,是 java.lang.Object 类的实例
    • 常用方法(与 Object 类相同):
      • getClass()
      • hashCode()
      • ….
  • pageContext 对象

    • pageContext 对象提供了对 JSP 页面内所有的对象及名字空间的访问
    • pageContext 对象可以访问到本页面所在的 Session 和 application 的某一属性值
    • 常用方法:
      • getOut()
      • getSession()
      • getPage()
      • getRequest()
      • getResponse()
      • forward(String)
      • inclide(String)
  • Config 对象

    • config 对象是在一个 Servlet 初始化时,JSP 引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(属性名和属性值构成)以及服务器的有关信息
    • 常用方法:
      • getServletContext()
      • getInitParameter(String)
      • getInitParameterNames()
  • exeption 对象
    • exeption 对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个 JSP 页面要应用此对象,必须把 Page 的属性 isErrorPage 设为 true,否则无法编译。
    • Exeption 是 java.lang.Throwable 的对象
    • 常用方法:
      • getMessage() 返回描述异常的消息
      • toString()
      • printStackTrace() 显示异常及其栈轨迹
      • FillInStackTrance() 重写异常的执行栈轨迹

请求转发与请求重定向

  • 请求重定向:客户端行为,response.sendRedirect(“”),等同于两次请求,前一次请求对象不会保存,地址栏的 URL 地址会改变
  • 请求转发:服务器行为,request.getRequestDispatcher(“”).forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的 URL 地址不会改变。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值