您的位置:首页 > Web前端 > JavaScript

JSP基础知识点整理

2019-06-13 08:39 1531 查看

一.JSP(Java Server Page)
定义: Jsp 就是一个 Servlet,当我们第一次访问 Jsp 的时候,Jsp 引擎都会将这个 Jsp 翻译 成一个 Servlet,这个文件存放在 Tomcat 中的 work 目录中。
静态页面和动态页面的区别:
  1 .静态页面内容一成不变,可直接用本地浏览器打开;动态页面内容一般由依靠服务端的程序生成的,不同人、不同时候访问页面,显示的内容都可能不同
  2 .html是一种解释型语言,不需要指定的 编译工具,只要在txt文档中写上html标记就可以正常显示,jsp是Java服务端的页面,是动态的,需经过JDK编译后把内容发送给客户端去显示(依靠服务端解析成html才能在网页显示)
3 .html和jsp的表头不一样,这个是JSP的头“ <%@ page language=“java” import=“java.util.*” pageEncoding=“gbk”%>”在表头中有编码格式和倒入包等。也是很好区分的,在jsp中用<%%>就可以写Java代码了,而html没有<%%>
二.基础语法

  1. 注释
    在 JSP 中支持两种注释的语法操作,一种是显示注释,这种注释是允许客户端看见的; 另一种是隐式注释,此种注释是客户端无法看见的
    显示注释语法:从 HTML 风格继承而来
    隐式注释语法:从 JAVA 风格继承;JSP 自己的注释
    JSP 的三种注释方式:
  1. // 注释,单行注释 /* 多行注释*/
    2.
    3.<%-- JSP注释 --%>
  1. Scriptlet
    在 JSP 中最重要的部分就是 Scriptlet(脚本小程序),所有嵌入在 HTML 代码中的 Java 程序都必须使用 Scriptlet 标记出来,在 JSP 中一共有三种 Scriptlet 代码:
    第一种:<% %>: java 脚本段,可以定义局部变量、编写语句
    第二种:<%! %>:声明,可以定义全局(成员)变量、方法、类
    第三种:<%= %>:表达式,数据一个变量或具体内容
  2. Jsp指令
    JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
    Jsp主要有以下指令:page指令 taglib指令 include指令
    1.page指令:language:支持的语言,目前只有java
    contentType:响应类型及编码格式
    pageEncoding:字符编码
    import:导包,只有该属性可以同时设置多次
    errorPage:当页面报错时要跳转的页面,一般与isErrorPage属性一起使用,且跳转的页面的isErrorPage属性设置为true
    isErrorPage:是否是处理错误的页面,默认是false。一般与errorPage属性一起使用
    注:页面的编码以charset的值为准;若charset未设置,则以pageEncoding为准;若两者都未设置,则使用默认编码ISO-8859-1。
  3. Jsp标签
    Jsp标签英文名是Jsp Action,则Jsp标签是Jsp动作元素,用来处理Jsp页面中的业务逻辑,从而避免了写java代码,对提高了页面的维护性、可读性和整洁性
    5)静态包含
    include静态包含
    格式:<%@include file=“文件路径” %> 相对路径
    file属性支持表达式去取值
    特点:
    只会生成一个源码文件,相当于直接将内容拷贝进来,所以不能有同名变量。
    运行效率高一点点。耦合性较高,不够灵活。
    6)动态包含
    include动态包含
    语法:<jsp:include page=“要包含的文件路径”></jsp:include>
    page属性支持表达式去取值
    特点:
    生成多个源码文件,相当于方法的调用,可以有同名变量。
    耦合度低,比较灵活,效率高。
    注:
    1.jsp:include双标签之间不能有任何内容(除非有参数)
    Expecting “jsp:param” standard action with “name” and “value” attributes
    2.动态包含可以传递参数
    <jsp:param name=“参数名” value=“参数值”/>
    获取参数使用:request.getParameter(name)
    value属性支持表达式,name属性不支持
    The name attribute of the jsp:param standard action does not accept any expressions
    二. JSP内置对象(9个内置对象):
    1、request对象
    request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求
    2、response对象
    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
    3、session对象
    session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。
    4、application对象
    application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
    5、out 对象
    out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
    6、pageContext 对象
    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象
    7、config 对象
    config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
    8、page 对象
    page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
    四种域对象属性范围:
    1.page(pageContext):只在一个页面中保存属性。 跳转之后无效。
    2.request:只在一次请求中有效,服务器跳转之后有效。 客户端跳无效
    3.session:再一次会话中有效。服务器跳转、客户端跳转都有效。 网页关闭重新打开无效
    4.application:在整个服务器上保存,所有用户都可使用。 重启服务器后无效
    注意:如果设置过多的application属性范围会影响服务器性能。
    三. EL表达式
    语法:keykey代表的是存在域对象中的键注意:el表达式一般操作的是域对象,无法操作变量取值范围:从小范围到大范围取,取到为止,若未取到,则一直向大返回查找;若四个范围都未获取到,返回空字符串。获取指定范围的值:pageScope、requestScope、sessionScope、applicationScopepageContext,request,session,application;范围依次是,本页面,一次请求,一次会话,整个应用程序。而EL默认的查找方式为从小到大查找,找到即可。当域对象全找完了还未找到则返回空字符串””。EL操作对象获取对象中的属性:{key } key代表的是存在域对象中的键 注意:el表达式一般操作的是域对象,无法操作变量 取值范围:从 1b024 小范围到大范围取,取到为止,若未取到,则一直向大返回查找;若四个范围都未获取到,返回空字符串。 获取指定范围的值:pageScope、requestScope、sessionScope、applicationScope pageContext, request, session, application;范围依次是,本页面,一次请求, 一次会话,整个应用程序。 而 EL 默认的查找方式为 从小到大查找,找到即可。当域对象全 找完了还未找到则返回空字符串””。 EL操作对象 获取对象中的属性:keykey代表的是存在域对象中的键注意:el表达式一般操作的是域对象,无法操作变量取值范围:从小范围到大范围取,取到为止,若未取到,则一直向大返回查找;若四个范围都未获取到,返回空字符串。获取指定范围的值:pageScope、requestScope、sessionScope、applicationScopepageContext,request,session,application;范围依次是,本页面,一次请求,一次会话,整个应用程序。而EL默认的查找方式为从小到大查找,找到即可。当域对象全找完了还未找到则返回空字符串””。EL操作对象获取对象中的属性:{对象.属性名}
    注:属性必须提供get和set方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: