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

jsp基础学习笔记,喜欢的看看

2013-11-14 18:04 260 查看
*3 JSP工作原理

  1)Web服务器会在第一次访问某jsp时,将jsp翻译成java原码,该原码是一个servlet  

  2)jsp的三个生命周期方法:date_jsp(),_jspInit(),_jspDestory(),_jspService()方法,生命周期类似于servlet

  3)在_jspService()方法,Web服务器自动默认创建8个内置对象并设置值

  4)其中静态的资源通过out.write()方法输出,动态资源通过out.print()方法输出

  5)从最终的本质上讲,jsp都是servlet,按照servlet方式运行

  6)参见<<JSP原理.JPG>>

 

*4 JSP语法

  1)JSP模版元素

    就是JSP中的<html>静态的标签

 

  2)JSP表达式

    语法:<%="变量/常量"%>,字符串用""号定界,无需分号结束

    需要向浏览器输出内容时,可以使用JSP表达式,

    类似于Servlet中resposne.getWriter().write("哈哈");     

 

  3)JSP脚本片断

    语法:<%一行呀多行Java代码,以分号结束%>

    生成的源码,都位于_jspService()方法中,多个JSP脚本片段可以相互访问

  4)JSP声明

    语法:<%! 声明实例变量或普通方法%>

   

  5)JSP注释

    语法:<%-- JSP特有的注释 --%>

    JSP引擎不会将其翻译成Servlet源码,即忽略

    其它注释都会被翻译进Sercvlet源码

    JSP特有注释不允许嵌套

============================================================

2 JSP中九大内置对象

  request:取得请求参数

  response:响浏览器输出内容

  session:在当前会话中有效,新会话中无效

  application:在当前web应用中有效

  config:获取jsp在web.xml文件中配置的初始化参数

  exception:当jsp页面是错误处理页面,方可使用

  out:输出到浏览器

  page

  pageContext    

 

3 PageContext对象作用

  1)可以引用其它8个内置对象

      如果一个普通的java类,拥用PageContext对象,则该普通Java类就可以与Web资源交互,例如取得客户端IP地址

  2)域对象

    >>PageContext域对象只能在当前JSP页面中有效,请求出了该JSP页面,原PageContext对象内容销毁

    >>PageContext将值放入到指定的域对象,同样需要从指定的域对象中取值

    >>findAttriute()会根据name依次去JSP中四个域对象查询,找到即止,如果都找不到,返回null字符串

        

 

  3)封装Web常用的操作,例如转发/包含/。。。。

    >>PageContext.include()

    >>PageContext.forward()

      

*4 JSP中四个域对象汇总

  1)什么是域对象:在多个动态Web资源之间共享信息,需要域对象;例如:Servlet到Servlet,Servlet到Jsp,Jsp到Jsp

  2)JSP中域对象有四个:PageContext->request->session->application

  3)应用场合:

    >>PageContext:只能应用在当前面页的一次请求中

    >>request:只要在一次请求中,不论该请求经过N个动态资源,只且只能是转发

    >>session:只要在一次新会话中,不论该请求经过N个动态资源,不论转发还是重定向,例如:购物车

    >>application:只要在当前web应用中,不论该请求经过N个动态资源,不论转发还是重定向,不论多个新会话,

                       例如:在线访问计数器,QQ群聊室

  4)参见<<jsp中4个域对象.JPG>>

*5 JSP内置非JavaBean标签(美化+业务逻辑)

  1)JSP标签主要目的:替代JSP页面中的<%%>脚本符号,

  2)目标:达到美化和业务逻辑相统一的JSP页面

  3)常用的标签/动作

    <jsp:include/>(动态包含/运行/执行)

        (1)将被包含的jsp都生成对应的servlet,即如果包含3个jsp的话,则生成3个servlet

        (2)在运行jsp时,动态包含

        (3)总的jsp文件,生成的servlet结构良好    

        (4)<%@include%>指令是通过file属性,而<jsp:include>标签是通过page属性

    <jsp:forward/>

        转发到指定的jsp页面

    <jsp:param/>   

        包含一个或多个参数

   

   4)JSP错误的种类:

    >>JSP语法出错

    >>JSP语法无错,但翻译成Servlet时出错了,源码有,但字符没有

    >>JSP语法无错,翻译成Servlet时无错,执行class时出错了

   

*6 JSP中内置JavaBean标签 + Page对象

  <jsp:useBean/>

    先查询,如果查询不到,再创建新的JavaBean对象,同时绑定到指定域对象中

    对于<jsp:useBean/>标签中的内容,只能在创建新的JavaBean对象时执行        

    id=绑定到域对象的名字

  <jsp:setProperty/>

    为JavaBean设置值

    param表示参数的名

    只能当参数名和JavaBean的属性名一致的情况下,可以使用通配符收集,代码如下:

    <jsp:setProperty name="student(域对象中的name属性的值)" property="*"(属性名和参数名一致)/>

  <jsp:getProperty/>

    取得JavaBean属性的值

7 EL和JSTL快速入门

 *1)EL可以替代和简化JSP脚本的输出  

  2)语法格式:${EL语法},前提:<%@ page isELIgnored="false"%>

  3)输出普通变量/JavaBean/多个JavaBean嵌套的值

  4)EL只会从域对象中查询值,找不到返回""空串,底层就是pageContext.findAttribute()方法的封装

 * 5)JSTL替代和简化JSP脚本的迭代操作的输出

  6)JSTL的开发步骤:

    >>导入二个jar包:Jstl.jar和Standard.jar[都是class文件]

        >>在需要使用jsp的页面中导入如下代码:

        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    

这里好多视频下载学习http://www.itcast.cn/channel/video.shtml,喜欢的看看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp web应用 标签 应用