jsp简介

  • JSP的基本原理

    第一个jsp程序
    Jsp会被翻译成servlet,在tocamt的work\Catalina\localhost看到。
    不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把Servlet作为web应用的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
    其原因为,程序的数据通常要美化再输出:
    让JSP即用java代码产生动态数据,又做美化会导致页面难以维护。
    让servlet即产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
    因此最好的办法就是根据这两门技术的特点,让他们各自负责各得,Servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

    • Jsp的基础语法

    • Jsp的模板元素:

      就是jsp中的html的标记(负责页面的布局和美化,一般由美工负责)

    • Jsp中的表达式:

      <%=%>:用于输出内容
      注意:jsp中少用out.print()来输出

    • Jsp中的基本片段

      <%%>:可以定义局部变量和语句等,是在service函数中(对照jsp的servlet的源代码就很清楚了)
      通过以下案例介绍jsp 的工作原理
      Ex:
      <%
      int age = 12;
      String name = “haoren”;
      out.print(name+“有”+age+“岁”);
      %>
      <%!%>:可以定义类、方法和全局变量(很少这样弄)没有在service函数中(对照jsp的servlet的源代码就很清楚了)

    • Jsp中的注释

      显示注释:(客户端可见)
      隐式注释://,/**/,<%-- --%>(jsp注释)

Jsp指令是为jsp引擎而设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分,在jsp2.0规范*定义了三个指令:
Page指令
Include指令
Taglib指令

  • Page指令
    import:导入JSP中的Java脚本使用到的类或包.(如同Java中的import语句)
    JSP引擎自动导入以下包中的类:
    javax.servlet.

    javax.servlet.http.*
    javax.servlet.jsp.*
    一个import属性可以导入多个包,用逗号分隔。

*buffer:指示JSP用的输出流的缓存大小,默认是8kb

*errorPage:指示当前页面出错后转向(转发)的页面。
目标页面如果以"/"(当前应用)就是绝对路径。
配置全局错误提示页面:
web.xml

java.lang.Exception
/error.jsp


404
/404

errorPage属性的设置值唯一路径(相对或绝对),如果“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对当前页面。
可以在web.xml文件中使用元素为整个WEB应用程序设置错误处理页面,其中的子元素指定异常类的完全限定名,元素指定以“/”开头的错误处

jsp简介

  • Include指令
    静态包含: 先包含在执行
    <%@ include file="/head.jsp" %>
    Asdfadsfasdfasdfadsfadsf
    <%@ include file="/foot.jsp" %>
    静态包含只会形成一个servlet文件
    并且可以布局
<table border=""><tr><td> <%@include file="/Version.jsp" %></td><td>  adsfasf</td></tr></table>

动态包含:先执行再包含
(可以传递参数和被包含的页面可以生成servlet)
<jsp:include page="/head.jsp" >
<jsp:param value=“mazheng” name=“name”/>
</jsp:include>
在被包含的页面中取值:
<%=request.getParameter(“name”)%>
注意动态包含与静态包含的区别(在实际开发中能用静态,就不要用动态)

  • Taglib指令
    Taglib
    作用:引入外部的标签
    语法:<%@taglib uri = “标签名称空间” prefix=“前缀”%>
    <%@ taglib uri=“http://java.sun.xom/jsp/jstl/core” prefix=“c”%>