JSP 精华知识点总结!

版权声明: https://blog.csdn.net/Song_JiangTao/article/details/80924633

1、什么是Jsp?

  • JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,Jsp页面是动态页面区别于Html页面
  • 一个jsp页面包括,指令标识、html代码、javascript代码、嵌入的java代码、注释、jsp动作标识等。但不都是必须的。
  • 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.HttpServletResponse response 表示响应对象,设置响应头信息以及编码格式,客户端跳转,获取响应的流 request
javax.servlet.http.HttpServletRequest request 即一次请求,表示请求对象,用于接收客户端请求数据以及服务器端跳转; request
javax.servlet.http.HttpSession session 即一次会话,从访问服务器项目开始该对象被创建,浏览器关闭,会话断开但是后台session依然存在,直到该对象自动销毁(失效)或手动销毁,会话结束;常用于:标识访问的用户 session
javax.servlet.ServletContext application 该对象在服务器启动时被创建,该对象被整个项目共享,作用于整个项目;数据被整个项目共享; application
javax.servlet.jsp.pageContext pageContext 获取当前页面jsp上线文环境:即jsp运行的环境(运行编译的位置)以及该jsp相关内置对象 page
javax.servlet.ServletConfig config 即在执行doGet和doPost前,进行数据参数传递 page
java.servlet.jsp.JspWriter out 用于页面输出显示数据,重写页面数据 page
java.lang.Object page 即当前页面对象(Servlet)即this page
java.lang.Throwable exception 用于页面抛出的异常信息 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、细节知识点

  • s e r v l e t j s p
    • servlet是使用java servlet接口(API)运行在web应用服务器上的java程序,jsp是在servlet规范之上的动态网页技术
  • 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作用范围的数据;

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

      扩展阅读!

  • H T M L J S P
    • HTML是静态页面
    • JSP是动态页面,简化了servlet的设计

猜你喜欢

转载自blog.csdn.net/Song_JiangTao/article/details/80924633