您的位置:首页 > 博客中心 > 前端开发 >

JSP

时间:2022-04-11 14:45

1. JSP概论

JSP(JavaServer Pages)是SUN公司提供的动态web资源开发技术,Servlet也是动态web资源开发技术,Servlet是java程序,适合用来处理业务逻辑,但是在java中输出HTML页面是一个非常繁琐的问题,且不利于查看。

为了解决这一问题,所以开发了JSP 它改变了Servlet在java代码中嵌入HTML的过程,变成了在HTML中嵌入java代码,非常适合用在组织html页面进行输出。

2. JSP原理:

JSP在第一次被访问时,由服务器的内部的JSP引擎翻译为一个Servlet存放在(tomcat)work目录中,对JSP的访问最终是由Servlet执行并输出结果。

对于JSP的HTML内容是以out.write()输出。

JSP中的java代码,复制并翻译到Servlet中执行。

注意:在翻译的Servlet中预定义了9大对象。在JSP中可以直接使用,这9大对象被称为JSP的9大隐式对象。

3. JSP语法

1.JSP模板元素

            直接书写在JSP中的html内容,最终会在翻译成Servlet的过程中,以out.wirte()输出。

2.JSP脚本表达式

            <%java表达式%>在翻译过来的Servlet中,计算出表达式的值,并out.print()输出到浏览器。

3.JSP脚本片断

            <%若干java语句%>在翻译过来的Servlet中,原样复制到对应的位置执行。

                 注意:

                          一个JSP中可以有多个脚本片断,多个片断之间可以相互引用。

                          一个JSP中的脚本片断可以是不完整的,但多个片断组合在一起必须是完整的。

4.JSP声明

            <%!若干java语句%>在翻译过来的Servlet中,会放置在和service方法同级的位置,并成为类的成员。

5.JSP注释

            <%--注释的内容--%>在被JSP注释的内容,在翻译成Servlet的过程中会被丢弃不会被翻译。

            //java注释 java注释在翻译成Servlet的过程中会被认为成java代码复制粘贴到相应位置,但在java文件编译成.class文件时,注释被丢弃。

            <!--html注释-->html注释,在翻译过来的Servlet的过程中会当作为模板元素,直接out.write()输出到浏览器中,浏览器能解析html注释,最终予显示。

                注意:在JSP中,html注释为java语句,可能会影响运行结果。

6.JSP指令

         <%@ 指令名  属性 = ‘值‘ %>指挥解析引擎如何处理JSP页面中的其它内容,不产生输出。可以写在任意位置,通常推荐写在JSP页面的最开始位置。

         1.page

                language=‘java‘ 设置JSP当前使用的语言,只有一个值:java ,所以可以不写忽略。

                extends=‘‘ 设置翻译过来的Servlet继承谁,通常不需要进行设置,默认继承的类就可以。

               

       3. 获取常用开发对象

              el内置了11个对象,可以不存入域中就直接使用。

              pageContext : 可以作为入口通过el获取八大隐式对象。

            

              pageScope

              requestScope

              sessionScope

              appcationScope

              四大域中所有域属性组成的Map.

                注意:这是Map,而不是四大作用域对象本身。

              param            Map<String,String>

              paramValues  Map<String,String[]>

              代表当前请求中,所有请求参数组成的Map。

              header           Map<String,String>

              headerValues Map<String,String[]>

              代表请求头组成的Map。

              cookie           Map<String,Cookie>

              cookie信息组成的Map

              initParam      Map<String,String>

              web初始化信息组成的Map

       4. 调用java方法,限于调静态的共有方法

            <1>写一个类包含要被调用的静态共有方法
                   <2>写一个tld描述文件,描述一下要被调用的方法 -- tld文件必须放置在WEB-INF目录下非classes和lib目录中
                   <3>再在jsp页面中使用taglib指令引入tld描述文件,从而在jsp页面中调用函数

3.JSTL标签库

              <c:out>标签:用于输出一段文本内容到pageContext对象当前保存的out对象中。

              <c:set>标签:把某个对象存在指定域的范围内。或者设置web域中的java.util.Map类型的属性对象或javaBean类型的属性对象的属性。

              <c:remove>标签:用于删除web域中的属性。

              <c:catch>标签:用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:

                                                  <c:catch [var="varName"]>nested actions</c:catch>

              <c:if test=‘‘>标签:可以构造“if-then”简单的判断表达式。

             <c:choose>标签:用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。

             使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
                   <c:forEach>标签:用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。 
                   <c:forTokens>标签:用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的
                   <c:param>标签:在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。

             <c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
                   <c:import> 标签:实现include操作
                   <c:url>标签:用于在JSP页面中构造一个URL地址,其主要目的是实现URL重。

                             URL重写就是将会话标识号以参数形式附加在URL地址后面 
                  <c:redirect>标签用于实现请求重定向

4.自定义标签

 

四大作用域

JSP,gxlsystem

本类排行

今日推荐

热门手游