JSP

JSP的修改:

只需要刷新页面即可,不需要重新部署项目或者重启服务器!

JSP表达式:

语法<%=       %>

注意:1、JSP表达式中不能使用 " ; ";

        2、JSP表达式中不能出现多条语句;

        3、JSP表达式中的内容一定是字符串类型,或者通过toString函数转换成字符串类型。

JSP脚本:(本质就是一个方法,所以不能在脚本中定义方法

语法:<%        %>

其中变量的定义和使用有先后顺序。

JSP声明:

语法:<%!       %>

定义的变量是Page级别中,系统会优先执行。

注意:JSP声明只能定义,不能实现控制逻辑。

    

JSP指令:为JSP引擎设计。提供整个JSP页面的相关信息,并且设定JSP页面的相关属性。(区分大小写)

JSP指令有3个指令:pageincludetaglib

1、page指令:JSP页面一般以page指令开头

    设置属性:(下面所有设置仅供参考

    a、输出内容的类型:contentType=text/html

    b、字符集:charset=utf-8

    c、导入需要的类:import="包名.类名"

    d、跳转错误页面:errorPage="错误页面的URL"        

     f、指定错误页面:isErrorPage="false"

    g、会话是否创建:session="true"

    h、设置客户端输出内容时缓冲区的大小:buffer="8kb"   默认为8kb

    i、是否自动清空缓冲区:autoflush="true"       false:缓冲区溢出时抛出一个异常

    j、页面的说明信息:info=""

    k、是否允许并行访问:isTheadSafe="true"

    l、是否禁用EL表达式:isELingored="false"

    m、页面语言:Java

    n、转换成Servlet的父类:extend=""

2、include指令:代码的重用

    语法:<%@ include file="文件名"%>

   注意:include指令在编译的时候就将对应的文件包含进来,等价于将该文件中的代码复制。

   缺点:1、当文件中内容被更新,包含文件的JSP页面不能及时的更新。

           2、文件中不能定义与包含文件的JSP页面相同的变量。

           3、不能携带参数

3、taglib标签库(JSTL)

    (暂时不更新

        

JSP动作: 

  JSP:include       (当页面被请求的时候引入一个文件)

  JSP:forward      (将请求转到另一个页面)

  JSP:useBean     (获得JavaBean的一个实例)

  JSP:setProperty (设置JavaBean的属性)

  JSP:getProperty (获得JavaBean的属性)

  JSP:plugin         (根据浏览器类型为Java插件生成object或者embed两种标记)

1、JSP:include:会把文件的输出包含进来

     语法:<%jsp:include page="文件名"%>

     使用include动作向包含文件传参:

    <jsp:include  page="文件名">

    <jsp:param name="参数名" value="参数值">

    </jsp:include>

     (注意:直接访问包含文件时,无法获取参数,取出来为null。该参数只能在包含文件的JSP页面使用。)

    获取参数:String param=request.getParameter("param");

    include动作和include指令的区别:

    a、include指令相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。

    b、include动作会自动检查被包含文件,当客户端对JSP文件进行请求时,将会重新将对应的文件包含进来,进行实时的更新。

    

2、JSP:forward   页面的跳转

     语法:<jsp:forward page="文件名">

     当forward动作被执行之后,当前页面后面的代码将不再执行,直接执行跳转之后页面的代码。

     使用forward动作向跳转页面传参:

     <jsp:forward page="跳转页面">

     <jsp:param name="参数名" value="参数值">

    </jsp:forward>

     获取参数:String param=request.getParameter("param");

3、JavaBean的使用

    JSP和JavaBean的混合使用,可以提高系统的可扩展性,JavaBean也能对数据进行良好的封装。

    JavaBean支持两种组件:可视化组件、非可视化组件

    a、可视化组件:开发人员可以在运行的结果中看到界面效果。

    b、非可视化组件:一般不能观察到,其主要用在服务器端。

    JSP只支持非可视化组件。

    JavaBean有广义的定义和狭义的定义:

    a、广义的定义:一个普通的Java类

    b、狭义的定义:严格按照JavaBean规范编写的Java类。

    语法:<jsp:useBean id="" class="" scope=""></jsp:useBean>

    id:JavaBean对象的名字  class:实例化的类    scope:作用范围(page、request、session、application)

    想要清除JavaBean对象,可以调用removeAttribute("JavaBean对象的名字");

4、JSP:setProperty

    a、 当属性值的来源是String时:

    语法:<jsp:setProperty  property="JavaBean中定义的属性名" name="JavaBean对象的名字" value="常量">

    b、当属性值的来源是request时:

   语法:<jsp:setProperty  property="JavaBean中定义的属性名" name="JavaBean对象的名字" param="表单定义的属性名">

     jsp:setProperty和setting方法是等价的!!!

     

5、JSP:getProperty

     语法:<jsp:getProperty property="JavaBean中定义的属性名"   name="JavaBean对象的名字">

     获取bean实例使用getProperty不需要param。

     

     JavaBean注意事项:

        a、当JavaBean中需要定义boolean类型的属性时,属性名不能定义以is开头,封装的时候调用的是is方法。

        b、 JavaBean中定义的属性名和表单定义的属性名一定要一致;当不一致的时候:两者各写各的属性名;一致的时候,param可以不声明。

        c、name属性其实就是你定义useBean的id。

        d、当作用范围使用request、session、application时,需要在不同的页面调用该useBean时,也必须将jsp:useBean定义,然后使用jsp:getProperty调用属性!

6、plugin

    (暂时不更新

原文地址:https://www.cnblogs.com/darren0415/p/6017542.html