你的位置:首页 > 软件开发 > Java > JSP学习笔记

JSP学习笔记

发布时间:2015-04-21 20:01:33
什么是JSPJSP的优势JSP的劣势JSP与PHP的比较JSP工作原理JSP的九大内置对象JSP的三个编译指令JSP的七个动作指令JSP标准标签库:JSTL EL表达式JSP学习思维导图 一、什么是JSP? JSP(JAVA Server Pages)是一种 ...

JSP学习笔记

  • 什么是JSP
  • JSP的优势
  • JSP的劣势
  • JSP与PHP的比较
  • JSP工作原理JSP学习思维导图 (6) 总结JSP工作原理JSP学习笔记(1) 每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;通信控制对象Servlet对象page、config错误处理对象
    • request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
    • response对象:此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL
    • session对象:指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。
    • out对象:JspWriter类的实例,是向客户端输出内容常用的对象。
    • pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者。
    • config对象:是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
    • page对象:就是指向当前JSP页面本身,代表了正在运行的由JSP文件产生的类对象
    • exception对象:代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用
    • application对象:实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

    七、JSP的三个编译指令

        JSP编译指令是通知JSP引擎的消息,在将JSP编译成 Servlet 时起作用,处理指令通常可替换成 Java脚本,是 JSP脚本的标准化写法。它不直接生成输出。编译指令都有默认值。

        语法格式:<%@ 编译指令名 属性名="属性值"...%>

    (1) page指令:该指令是针对当前页面的指令,对整个页面有效,主要用来设定一些参数,比如contentType,language等。

    (2) include指令:用于指定包含另一个页面(静态包含),在进行jsp向servlet转换之前,首先是将inclue file里面的内容执行,然后再进行转换,最终只会转换成为一个单一的servlet。

    (3) taglib指令:用于定义和访问自定义标签。

    八、JSP的七个动作指令

        动作指令与编译指令不间,编译指令是通知 Servlet 引擎的处理消息,而动作指令只是运行时的脚本动作。

    (1) forward指令:用于将页面响应转发给另外的页面。既可以转发给静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet。

        执行forward指令转发请求时,客户端的请求参数不会丢失。

        执行forward指令转发请求时,用户请求的地址没有发生变化,但页面内容完全变为被forward目标页的内容。

    (2) include指令:是一个动态include指令,也用于导入某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。  

        静态include和动态include的区别:静态include是把父页面和包含进来的页面,代码合并后,才一起翻译成servlet,反馈到前台,形成一个HTML页面(编译是发生)。动态include是把父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面(请求时发生)。

    (3) useBean指令:表示用来在JSP页面中创建一个BEAN实例并指定它的名字以及作用范围。

    (4) getProperty指令:表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。

    (5) setProperty指令:表示用来设置Bean中的属性值。

    (6) plugin指令:表示执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它。

    (7) param指令:用于设置参数值。

    九、JSP标准标签库:JSTL 

        JSP的标签函数库主要分为五大类:

    JSTL

    前置名称

    URI

    范例

    核心标签库

    c

    http://java.sun.com/jsp/jstl/core

    <c:out>

    I18N格式标签库

    fmt

    http://java.sun.com/jsp/jstl/fmt

    <fmt:formatDate>

    SQL标签库

    sql

    http://java.sun.com/jsp/jstl/sql

    <sql:query>

    http://java.sun.com/jsp/jstl/

    <x:forEach>

    函数标签库

    fn

    http://java.sun.com/jsp/jstl/functions

    <fn:split>

    功能分类

    标签名称

    表达式操作

    out、set、remove、catch

    流程控制

    if、choose、when、otherwise

    迭代操作

    forEach、forTokens

    URL操作

    import、param、url、redirect

    十、EL表达式

        所有EL都是以${为起始、以}为结尾的。

        EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:${sessionScope.user.sex}等于${sessionScope.user["sex"]}

        . 和 [ ] 也可以同时混合使用:${sessionScope.shoppingCart[0].price}

     

      

    原标题:JSP学习笔记

    关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。