JSP 精华知识点总结!

1、什么是Jsp?

  • JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,Jsp页面是动态页面区别于Html页面
  • 一个jsp页面包括,指令标识、html代码、javascript代码、嵌入的java代码、注释、jsp动作标识等。但不都是必须的。
  • JspJavaclass J s p 页 面 本 质 上 是 J a v a 页 面 , 最 终 编 译 形 成 c l a s s 文 件 ,这点可以在tomcat安装目录下的work文件夹下看到
    这里写图片描述
    上面是写的jsp编译形成的Java文件和class文件

2、指令标识

  • 格式:<%@ 指令名 属性1=“属性值1” 属性2=“属性值2”…%>
  • 分类:

    • page指令:

      <%@ page language="java"%>
      <%@ page extends=""%>  //用于设置jsp页面继承的java类
      <%@ page import="java.util.*"%> //设置导入类包,嵌入的java代码
      <%@ page pageEncoding="GB18030"%> //jsp页面的编码格式,默认为:ISO-8859-1,该编码不支持中文
      <%@ page contentType="text/html;charset=UTF-8"%> //设置jsp页面的mime类型和字符编码
      <%@ page session="flase"%> //用于设置jsp页面是否使用http的session会话对象
      <%@ page buffer="128kb"%> //用于设置jsp的out输出对象的使用的缓存区的大小,单位只能是kb,默认为8kb
      <%@ page autoFlush="false"%> //用于设置jsp页面缓存满时,是否自动刷新
      <%@ page isErrorpage="ture"%> //把当前jsp页面当作错误页面处理
      <%@ page errorPage="error/loginErrorPage.jsp"%> //处理当前jsp页面的异常错误的另一个jsp页面,指定的jsp错误页面必须设置isErrorPage属性值为true,errorPage的属性值为url字符串
    • include指令:
      <%@ include file="path"%> //该指令可以在一个jsp页面中包含另一个jsp页面,静态包含,即原样包含,不会被编译执行
    • taglib指令:
      <%@ taglib prefix="tagPrefix" url="tagURl"%> //标识页面使用的标签库,并引用, prefix:指定标签的前缀,前缀不可命名为:jsp jspx java javax sun servlet sunw,url:指定标签库文件的存放位置

3、脚本标识

  • jsp表达式
    • <%=表达式%> //表达式:可以是任何java语言的完整表达式
  • 声明标识:
    • <%!声明变量或方法的代码%> //声明标识用于定义全局变量或方法
  • 代码片段
    • <%java代码或者是脚本代码%>

4、注释

  • //
  • /…./
  • <%–注释内容–%>
    • 这是隐藏注释

5、动作标识

  • <jsp:include>
    • 包含文件标识,向当前页面包含其他文件,静态或者动态文件
    • 格式:
      • <jsp:include page="url" flush="false|true">
      • <jsp:include page="url" flush="false|true">子动作标识<jsp:param></jsp:include>
        • page:路径;
        • flush:可选属性,缓存区是否刷新;
        • 子动作标识:传递参数
  • <jsp:forward>
    • 请求转发标识将请求转发到其他web资源
    • 格式:
      • <jsp:forward page="url"/>
      • <jsp:forward page="url">子动作标识<jsp:param></jsp:forward>
        • page:请求转发的目标页面
        • 子动作标识:传递参数
  • <jsp:param>
    • 传递参数标识
    • 格式:
      • <jsp:param name="参数名" value="参数值"/>
        • name:参数名
        • value:设置对应的参数值

6、Jsp九大内置对象

类型内置对象说明作用域
javax.servlet.http.HttpServletResponseresponse表示响应对象,设置响应头信息以及编码格式,客户端跳转,获取响应的流request
javax.servlet.http.HttpServletRequestrequest即一次请求,表示请求对象,用于接收客户端请求数据以及服务器端跳转;request
javax.servlet.http.HttpSessionsession即一次会话,从访问服务器项目开始该对象被创建,浏览器关闭,会话断开但是后台session依然存在,直到该对象自动销毁(失效)或手动销毁,会话结束;常用于:标识访问的用户session
javax.servlet.ServletContextapplication该对象在服务器启动时被创建,该对象被整个项目共享,作用于整个项目;数据被整个项目共享;application
javax.servlet.jsp.pageContextpageContext获取当前页面jsp上线文环境:即jsp运行的环境(运行编译的位置)以及该jsp相关内置对象page
javax.servlet.ServletConfigconfig即在执行doGet和doPost前,进行数据参数传递page
java.servlet.jsp.JspWriterout用于页面输出显示数据,重写页面数据page
java.lang.Objectpage即当前页面对象(Servlet)即thispage
java.lang.Throwableexception用于页面抛出的异常信息page

7、四个作用域

作用域说明生命周期
application全局作用范围,整个应用程序共享,应用程序启动到停止
session会话作用域,通俗的理解就是打开浏览器访问到,会话销毁访问到会话超时,或者服务器端强制使会话失效
request请求作用域,就是客户端的一次完整请求通常是请求过程中附带的参数,在这个请求被响应后这些参数的生命周期结束
page仅作用于当前页面页面运行完成后就会结束

8、JavaBean

  • 什么是JavaBean?
    • JavaBean是一个遵循特定写法的Java类,它必须遵循下列规则:
      • 1、这个Java类含有一个无参构造函数
      • 2、属性私有化。
      • 3、get() set()方法。
  • Jsp中如何使用JavaBean?
    • Jsp技术提供了三个关于JavaBean组件的动作元素,即Jsp标签,它们分别为:
      • <jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。相当于实例化该JavaBean(Java类)的对象,之后就可以使用该对象调用方法
      • <jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
        • 语法格式:<jsp:setProperty name="beanName" property="propertyName" value=""/>其中name就是JavaBean的类名,property就是私有属性的名字,value就是赋给私有属性的值(value中可以嵌套<%Java代码%>)
        • 其实就是相当于前面usebean以后,对象.set方法。
      • <jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。
        • 语法格式:<jsp:getProperty name="beanInstanceName" property="PropertyName" />前面setProperty以后,可以get到,name是JavaBean的名字,property就是属性名字
  • javabean技术的应用,提高了程序的可读性,易维护性,而且提高了代码的重用性

9、Servlet

这里写图片描述

  • servlet即运行在服务器端的程序,是一个处理客户端请求的组件或者容器
  • servlet执行过程:
    • 1、服务器启动加载web.xml, 客户端发送请求,
    • 2、 根据url访问相关Servlet,执行init方法初始化该Servlet容器,
    • 3、通过service或者dopost、doget 处理业务,
    • 4、当服务器关闭停止,destory方法销毁该容器;
  • servlet代码结构:在java中通常所说的servlet是指HttpServlet对象,在声明一个对象为servlet时,需要继承HttpServlet类,HttpServlet类是Servlet接口的一个实现类,继承该类后,可以重写HttpServlet类中方法对HTTP请求处理
  • servlet技术的特点:功能强大,可移植(不依赖与操作系统),性能高效,安全性高,可扩展
  • servlet api常用的接口和类:
    • Servlet接口
    • ServletConfig接口
    • HttpServletRequest接口
    • HttpServletResponse接口
    • GenericServlet类
    • HttpServlet类

10、MVC

这里写图片描述
在JSP + Servlet + JavaBean的开发中,经常使用Servlet接收请求,将数据保存到JavaBean中,然后将JavaBean保存到request对象,再通过请求转发到负责显示的JSP页面,最终通过标签将JavaBean中保存的数据显示在JSP页面内。

11、细节知识点

  • servletjsp s e r v l e t 与 j s p 的 区 别 ?
    • servlet是使用java servlet接口(API)运行在web应用服务器上的java程序,jsp是在servlet规范之上的动态网页技术
  • getpost 表 单 g e t 和 p o s t 提 交 的 区 别 ?
    • get:以明文的方式通过URL提交数据,在URL中可以看到,提交的数据不超2KB,安全性比较低,效率比post高,适合提交数据量不大,安全性不高的数据
    • post:将用户提交的信息封装在HTML,HEADER内。URL地址栏中不可见适合提交数据量大,安全性高的信息。
  • 请 求 转 发 和 请 求 重 定 向 ?

    • 请求重定向:客户端行为,response.sendRedirect(),从本质上将等同于两次请求,前一次的请求对象不会保存,地址栏的URL会改变,刷新页面数据不会重新查询,无法获取request作用范围的数据
    • 请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL不会改变,刷新页面数据会重新查询,可以获取request作用范围的数据;

      开发时大多数情况都是用服务器端跳转

      扩展阅读!

  • HTMLJSP H T M L 和 J S P 的 区 别 ?
    • HTML是静态页面
    • JSP是动态页面,简化了servlet的设计
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值