JSP介绍

  JSP和servlet都是SUN公司提供的两门动态Web资源开发技术

  JSP看起来像是一个html,但是和html不同的是,JSP中可以书写java代码,可以通过java代码获取动态的数据。

  JSP本质上是一个Servlet(JSP在第一次被访问时会翻译成一个Servlet)

 

 

   JSP的出现是为了解决Servlet不适合向外(浏览器)输出一个完整的html网页,同事也解决了html无法展示动态数据的问题。

JSP执行过程

  1、html的执行过程

    localhost/day11/1.jpg

    localhost/day11/index.html

    当浏览器访问服务器中的一个html网页文件时,服务器此时会调用一个默认的Servlet(DefaultServlet,tomcat)。

    这个默认的Servlet会根据请求的路径,到Web应用中(day11)去寻找指定名称的文件,如果找到就直接将这个文件的内容作为响应实体发送给浏览器,由浏览器负责解析并显示

    如果找不到,就会响应一个404页面

修改JSP模板

  修改JSP模板步骤:点击菜单栏中的window --> preferences,出现如下窗口:

   

  点解edit编辑JSP模板

 

JSP语法

  模板元素

      模板元素其实是指:卸载JSP中的html内容都有称之为模板元素

      除了JSP特有的内容以外其他内容都是模板元素

      只要是模板元素,浏览器都可以解析,因此模板元素在翻译后的Servlet中,是被out.write()直接发送给浏览器,由浏览器负责解析并显示。

  JSP表达式

      格式:<%= 表达式内容 %>

      其中可以存放 常量、变量、表达式(不能存放语句,不能写分好)

      作用:在翻译后的Servlet中,会执行(计算)表达式内容,将执行的结果在发送给浏览器,由浏览器解析并显示 

1 <%="Hello JSP"  %>
2 <%=123+456 %>
3 <% String name1 = "张三"; %>
4 <%=name1 %>

      执行结果为:

      

   JSP脚本片段

      格式:<% 若干java语句 %>

      作用:在翻译后的Servlet中,将脚本片段符号中的java语句,复制粘贴到对应的位置执行     

1        <% 
2             int sum = 0;
3             for(int i=1;i<=100;i++){
4                 sum += i;
5             }
6             out.write("1~100之间所有整数的和为:"+sum);
7         %>            
1 <% for(int i=0;i<5;i++){%>
2         Hello JSP<br />
3 <%    }    %>

   JSP注释

       格式:<%-- 注释内容 --%>

       作用:

        1)为代码添加解释说明

        2)将一些暂时不需要执行的代码注释

      JSP注释在JSP翻译为Servlet是,直接被抛弃,不予翻译(所以在翻译后的Servlet中,一级浏览器的源码中都看不到JSP注释)

   JSP指令 

       指令:适用于指挥JSP解析引擎如何翻译一个JSP文件

       常见的指令page、include指令、taglib指令等。

      page指令

          page指令的作用用于声明JSP的基本属性信息(比如JSP文件使用的编码、JSP文件使用的开发语言等)

          格式:<%@ page  若干属性声明... %>

 1 <%@page import="java.util.Date"%>
 2     --import是用于导包用的
3
4 <%@ page pageEncoding="UTF-8"%> 5    -- 用于指定JSP文件所使用的编码, JSP解析引擎在将一个JSP翻译为Servlet事, 将会使用pageEncoding所指令的编码来进行翻译 6 如果JSP文件另存时使用的编码和pageEncoding指定的编码不同, 就可能会出现中文乱码问题!! 7 8 <%@ page language="java"%> 9    -- 指定JSP默认使用的开发语言是Java

      taglib指令

          用于引入JSP标签库技术(JSTL标签库、自定义的标签库)

          自使用JSTL标签库之前,需要导入JSTL的开发包,并且需要在JSP文件中通过taglib指令引入JSTL标签库。