JSP&&JSTL

JSP是一种动态网页编程技术,它允许在页面中嵌套Java代码。JSP会被翻译成Servlet执行。JSP中有三种Scriptlet:Java脚本段、声明和表达式。JSP指令标签包括静态和动态包含页面。EL表达式简化了域对象的操作,而JSTL提供了标签库。Maven是项目构建工具,管理依赖关系。Freemarker是模板引擎,用于生成文本输出,常用于视图组件。
摘要由CSDN通过智能技术生成

JSP        Java  Server  Page

JSTL是JSP的标签库,

 Jsp 技术允许在页面中嵌套 java 代码,为用户提供动态数据。 Jsp 就是一个 Servlet ,当我们第一次访问 Jsp 的时候, Jsp 引擎都会将这个 Jsp 翻译 成一个 Servlet ,这个文件存放在 tomcat(源码目录) 中的 work 目录中。 是一种动态网页编程技术。
显式注释  
<!--用户界面可以看到-->      
<--  JSP隐式注释,用户界面看不到  -->

JSP中一般有三种Scricptlet小程序

第一种:<%   %>: java 脚本段在service方法内,可以定义局部变量、编写语句(底层是生成在Servlet类中的service方法中)
第二种:<%!   %>:声明,可以定义全局(成员)变量、方法、类(底层是生成在Servlet类中方法外)
第三种:<%= %>:向页面输出信息(可以是表达式)
一般我们使用JSP用做显示页面(解耦思想),虽然它能使用编写java代码,
JSP的指令标签
        静态包含页面
        <%@include  file = "login.jsp"></include%>
     
静态包含就是将内容进行了直接的替换,就好比程序中定义的变量 一样,是在 servlet 引擎转译时,就把此文件内容包含了进去(两 个文件的源代码整合到一起, 全部放到 _jspService 方法中),所 以只生成了一个 servlet,所以两个页面不能有同名的变量。 运行 效率高一点点。耦合性较高,不够灵活。
         动态包含页面
<jsp:include  page= "页面.jsp"></jsp:include>
------------------------------------------------------

<jsp:include  page= "页面.jsp"></jsp:include>

<%-- 动态包含传递参数--%>

<jsp:include  page= "页面.jsp">

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


<%--name不支持表达式,value支持表达式--%>


request.getParameter("name");    //通过指定参数名获取参数值

四大域对象:

        page范围:一次页面中有效

        request范围:一次请求有效

        session范围:在一次范围中有效,无论多少次请求

        application范围:在整个服务器上保存

EL表达式:提供了在JSP中简化表达式的作用 (未完成)
        
EL表达式一般操作的是域对象,默认从page,request,session,application从小到大的顺序查找
格式
       
 <@%page comtentType ="text/html;charset=UTF-8" Language = java>

EL表达式格式 :    ${" "}     
   
        ${empty}:判断域对象是否为空,为空则返回true
<%@taglib prefix= "c" uri=""%>  

 <%taglib%>    是EL表达式的标签库

当要使用if,foerch等标签则需要引入 <%taglib%>

EL标签:

        条件动作标签

                if        choosewhen otherwise 标签

        if标签

<c:if test="${num>100}" var="<string>" scope="具体放置的作用域对象"

   如果num>100那么执行此段代码
</c:if>
    
test 为条件    
var=为限域变量名(接收if的判断结果)

        choose标签      

//和java中的swaich分类似
<c:choose>
    <c:when test = "${num<90}">
    如果符合when标签的条件则执行此段话
    </c:when>

    <c:when test = "${num=60}">
    如果符合when标签的条件则执行此段话
    </c:when>

    <otherwise>
    如果when标签都不执行的话那么执行otherwise中的内容
    </otherwise>
</c:choose>

  迭代标签

forEach标签

        格式化标签

        
Maven项目构建工具   
       打包命令行  clean compile package - Dmaven.test.skip=true
根元素 project 下的 dependencies 可以包含多个 dependence元 素,以声明多个依赖。每个依赖都应该包含以下元素:
 1. groupId, artifactId, version : 依赖的基本坐标, 对于任何一个 依赖来说,基本坐标是最重要的, Maven根据坐标才能找到需 要的依赖。
2. Type : 依赖的类型,大部分情况下不需要声明。 默认值为jar 3. Scope : 依赖范围( compile,test,provided,runtime,system )compile: 编译依赖范围。 如果没有指定,就会默认使用该依赖范围。使用此依赖范围 的 Maven 依赖,对于编译、测试、运行三种 classpath都有 效。 test: 测试依赖范围。 使用此依赖范围的 Maven 依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此类依 赖。典型的例子就是 JUnit,它只有在编译测试代码及运行测 试的时候才需要。
provided: 已提供依赖范围。 使用此依赖范围的 Maven 依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容 器已经提供,就不需要 Maven 重复地引入一遍 ( 如:servlet-api)
runtime: 运行时依赖范围。使用此依赖范围的 Maven 依赖,对于测试和运行classpath 有效,但在编译主代码时无效。典型的例子是 JDBC驱动实现,项目主代码的编译只需要 JDK 提供的JDBC接口,只有在 执行测试或者运行项目的时候才需要实现上述接口的具体 JDBC 驱动。
system: 系统依赖范围。
该依赖与三种 classpath 的关系,和 provided依赖范围完全 一致。但是,使用 system范围依赖时必须通过systemPath 元素显式地指定依赖文件的路径。由于此类依赖不是通过 Maven仓库解析的,而且往往与本机系统绑定,可能造成构 建的不可移植,因此应该谨慎使用。
4. Optional :标记依赖是否可选
5. Exclusions : 用来排除传递性依赖。
Freemarker组件
FreeMarker 概念
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本 (HTML 网页,电子邮件,配置文件,源代码等) 的通用工具。 是一个 Java类库。 FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,将视图从业务逻辑中抽离处理,业务中不再包括 视图的展示,而是将视图交给 FreeMarker 来输出。虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示 的数据,由 FreeMarker 生成页面,通过模板显示准备的数据
FreeMarker 不是一个 Web 应用框架,而适合作为 Web应用框架一 个组件。
FreeMarker与容器无关,因为它并不知道HTTPServlet
FreeMarker同样可以应用 于非 Web 应用程序环境。
FreeMarker 更适合作为 Model2 框架(如Struts)的视图组件,你也可以在模板中使用 JSP 标记库
 FreeMarker 特性
    . 通用目标
能够生成各种文本: HTML XML RTF Java 源代码等等 易于嵌入到你的产品中:轻量级;不需要 Servlet 环境所有常用的指令: include if/elseif/else、循环结构在模板中创建和改变变量
使用:
        pom.xml文件中导入Freemarker坐标依赖
并处理所有以.flt结尾的文件,flt是Freemrker默认的文件后缀
Freemarker有很多常用指令(free.foofun.cn)有对应的API说明 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值