• JSP


    现在我们开发jsp用的比较少了,但还是了解一下吧。

    一、JSP

    1、什么是jsp?

    --jsp全面 java server page,中文名叫java服务器页面,其根本是一个简化的Servlet设计。jsp是由sun公司倡导、许多公司参与而建立的动态网页技术标准。它在HTML中嵌入java代码和jsp标签,构成了jsp网页。在接收到用户请求时,服务器会处理java代码片段,然后将生成的处理结果HTML页面返回给客户端,客户端浏览器负责展示最终的页面结果。

    2、jsp优势?

    1)、跨平台;

    2)、业务代码分离;

    3)、组件重用(javaBean);

    4)、继承Java Servlet功能;

    5)、预编译。

    3、jsp劣势?

    1)、产品复杂性强;

    2)、受限于内存。

    4、九大内置对象?

    1)、request对象:主要封装客户端的请求信息,通过request了解客户请求,做出响应,是HttpServletRequest的实例。

    2)、response对象:主要封装响应客户端请求的信息,但在jsp中很少直接使用,是HttpServletResponse的实例。

    3)、session对象:指的是客户端与服务器的一次会话,从客户端连接服务器的一个WebApplication开始,到客户端与服务器断开结束,是HttpSession的实例。

    4)、out对象:是客户端输出内容的常用对象,是JspWriter的实例。

    5)、page对象:就是指向当前jsp页面本身,有点像类中的this,是java.lang.Object类的实例。

    6)、application对象:application对象实现了用户间数据的共享,可存放全局变量。开始于服务器的启动,结束于服务器的关闭,在此期间此对象一直存在。在用户的前后连接或不同用户之间连接中,可以对此对象的同一属性进行操作。在任何地方对此对象属性进行操作,都将影响到其他用户对此的访问。是ServletConttext类的实例。

    7)、exception对象:是页面在运行过程中出现意外产生的对象。如果一个jsp页面要使用此对象,要将isErrorPage设为true。

    8)、pageContext对象:提供了对jsp页面内所有对象及名字空间的访问,也就是说它可以访问到本页所在的session,也可以取本页面所在的application的某一属性值,相当于页面中所有功能的集大成者。

    9)、config对象:是在一个Servlet初始化时,jsp引擎向它传递信息用的,此信息包括Servlet初始化时所用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。

    5、jsp语法?

    1)、<% java代码 %>可以编写java代码;

    2)、<%=XXX%>输出结果;

    3)、注释:<%-- --%>jsp注释;//java单行注释;/**/java多行注释;<!-- -->会显示在浏览器端源码中;

    4)、jsp中声明方法与属性(全局变量):<%! 方法、属性%>

    6、jsp三大指令?

    1)、page指令:用来声明jsp页面的属性;

    2)、include指令:比较简单只有一种形式:<%@ include file="relativeURL"%> relativeURL:应用程序内另一个jsp文件或者HTML文件路径;例如:网址内所有页面均有一个统一的页眉,就可以使用这个指令将其包含进来;

    3)、taglib指令:用来指明jsp页面内使用的jsp标签库。taglib指令有两个属性,url为类库地址,prefix为标签的前缀。如:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    7、jsp的四大作用域?

    1)、page作用域:代表变量只能在当前页面上生效;

    2)、request作用域:代表变量只能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B;

    3)、session作用域:代表变量能在一次变量中生效,基本上就是能在web项目下都有效,session的使用也跟cookie有很大关系。一般来说,只要浏览器不关闭,cookie就会一直生效,cookie生效,session的使用就不会受到影响;

    4)、application作用域:代表变量能在一个应用下(多个会话),在服务器下的多个项目之间都能够使用,比如baidu、wenku等共享账号。

    二、EL表达式

    1、什么是EL表达式?

    --全名Expression Language,是为了使jsp写起来更加方便的表达式语言。

    2、语法?

    --${},只能写在HTML中,不能写在<%%>括起来的java代码中。

    3、EL表达式的内置对象?

    --pageScope , requestScope , sessionScope , applicationScope , pageContext , param , paramValues , header , headerValues , cookie , initParam

    pageScope , requestScope , sessionScope , applicationScope代表四个作用域对象;

    pageContext:表示jsp中的内置对象pageContext,能获取request等其他jsp八大内置对象;

    param:表示一个请求参数 ${param.username} 等效于 request.getParameter("username");

    paramValues:表示一组请求参数 ${paramValues.loves} 等效于 request.getParameterValues("loves");

    header:表示一个请求头 ${header.referer} 等效于 request.getHeader("referer");

    headerValues:表示一组请求头 ${header.cookie} 等效于 request.getHeaders("cookie"),获取的请求头参数中的内容是一组内容,比如cookie可以是多个cookie一起传过来;

    cookie:获取cookie对象;

    initParam:web项目初始化参数,servletContext.getInitParameter("xxx");

    还有一种特殊的用法,直接获取对象变量,${user.username} user作为User的一个实例对象,并且存放在page的作用域中,上面代码的意思是,依次从page , request , session , application 作用域查找user对象,直到找到为止,底层使用的是pageContext.findAttribute();是一样的效果。

    三、JSTL标签库

    1、什么是JSTL?

    --前面我们介绍过,为了减少在HTML中嵌入java代码,我们使用EL表达式,但EL表达式无法能力有限,比如遍历集合等,所以我们引入了JSTL标签库,配合EL表达式使用。

    JSTL标签库比较偏前端了,就不具体总结了,有需要的同学可以自己百度学习下,或者参考下博主 一杯凉茶的博文 https://www.cnblogs.com/whgk/p/6432786.html

  • 相关阅读:
    scala IDE for Eclipse开发Spark程序
    RedHat6.5安装Spark单机
    RedHat6.5安装Spark集群
    Spark任务提交jar包依赖解决方案
    本地开发spark代码上传spark集群服务并运行
    Maven3.5.0安装与配置+Eclipse应用
    MAVEN Scope使用
    Maven下载项目依赖jar包和使用方法
    maven中把依赖的JAR包一起打包
    Maven+Eclipse+SparkStreaming+Kafka整合
  • 原文地址:https://www.cnblogs.com/Rain1203/p/10937328.html
Copyright © 2020-2023  润新知