• java学习day32-JSP-概述


    JSP概述

    什么是JSP

    JSP和Servlet都是由SUN公司提供的动态Web资源开发技术。

    JSP看起来像一个HTML,但和HTML不同的是,JSP中可以书写Java代码,可以通过Java代码展示动态的数据。

    静态Web资源:任何人在任何条件下访问时,看到的都是相同的效果,这样的资源叫做静态Web资源。(html、css、js等)
    动态Web资源:不同的人,在不同的条件下访问时,看到的都是不同的效果,这样的资源叫做动态Web资源。(Servlet、jsp、php、.NET等)
    

    JSP本质上是一个Servlet程序

    思考1:为什么要学习JSP?

    • Servlet是一段Java程序,适合处理业务逻辑,但是Servlet不适合向浏览器输出一个html网页。
    • html可以作为页面返回,但是html是一个静态Web资源,无法展示动态数据。
    • 而JSP也是页面的开发技术,也可以作为页面返回,并且JSP中可以书写Java代码,可以通过Java代码展示动态的数据。
    • 因此,JSP的出现即解决了Servlet不适合输出页面的问题,也解决了HTML无法展示动态数据的问题!

    思考2:为什么说JSP本质是一个Servlet?

    在JSP第一次被访问时,会翻译成一个Servlet程序。访问JSP后看到的html网页,其实是翻译后的Servlet执行的结果。(也就是说,访问JSP后看到的网页,是JSP翻译后的Servlet输出到浏览器的。)

    JSP执行过程

    访问服务器中的JSP文件,其执行过程为:

    1. 当浏览器请求服务器中的某一个JSP文件(例如:localhost/09-jsp/test.jsp),服务器会根据请求资源的路径去寻找该文件:
    2. 如果找到了,JSP翻译引擎会将JSP翻译成一个Servlet程序(JSP----> xxx.java----> xxx.class),然后Servlet程序再执行,执行的结果是向浏览器输出一个HTML网页!
    3. 如果没有找到,服务器将会响应一个404页面,通知浏览器请求的资源不存在。

    访问服务器中的HTML文件,其执行过程为:

    1. 当浏览器请求服务器中的某一个HTML文件时(例如:localhost/09-jsp/test.html),服务器会根据请求资源的路径去寻找该文件:
    2. 如果找到了,服务器会将html文件的内容作为响应实体发送给浏览器,浏览器再解析html并显示在网页上。
    3. 如果没有找到,服务器将会响应一个404页面,通知浏览器请求的资源不存在。

    JSP语法

    模版元素

    模板元素是指写在JSP中的html内容

    或者除了JSP特有内容以外的其他内容称之为模板元素

    模板元素在翻译后的Servlet中,被out.write原封不动的发送给浏览器,由浏览器负责解析并显示。

    JSP表达式

    格式:<%= 常量、变量、表达式 %>

    作用:计算表达式的结果,将结果输出到浏览器中,由浏览器负责解析并显示。

    <%= "Hello JSP..." %>
    <% String name = "林青霞"; %>
    <%= name %>
    <%= 100+123 %>
    <%= Math.random() %>
    

    JSP脚本片段

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

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

    在JSP中代码如下:

    <!-- 在页面上输出5行"hello JSP" -->
    <%
    	for(int i=0; i<5; i++){
    		out.write("Hello JSP...<br/>");
    	}
    %>
    

    在翻译后的Servlet中代码如下:

    ...
    for(int i=0; i<5; i++){
    	out.write("Hello JSP...<br/>");
    }
    ...
    

    另外,在某一个脚本片段中的Java代码可以是不完整的,但是在JSP中所有的脚本片段加在一起,必须是完整符合Java语法。例如,在JSP中代码如下:

    <% for(int i=0;i<5;i++){ %>
    		Hello JSP~~~<br/>
    <% } %>
    

    在翻译后的Servlet中:

    for(int i=0;i<5;i++){ 
      out.write("
    ");
      out.write("			Hello JSP~~~<br/>
    ");
      out.write("	");
    } 
    

    JSP指令

    指令的格式:<%@ 指令名称 若干属性声明... %>

    指令的作用:用于指挥JSP解析引擎如何将一个JSP翻译成一个Servlet程序。

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

    <%@ page language="java"%>
    -- language属性用于指定当前JSP使用的开发语言,目前只有java语言支持
    
    <%@ page import="java.util.Date"%>
    -- import属性用于导入包,如果不导入包,在使用其他包下的类时,就需要在类名前面加上包路径,例如: java.util.Date date = new java.util.Date();
    
    <%@ page pageEncoding="UTF-8"%>
    -- pageEncoding属性是用于指定当前JSP使用的编码,Eclipse工具会根据这个编码保存JSP文件。
    保证pageEncoding属性指定的编码和JSP文件保存时使用的编码相同,可以避免JSP文件出现乱码!
    

    2、taglib指令:用于引入JSTL标签库或者其他的自定义标签库

  • 相关阅读:
    4KB对齐
    小甲鱼PE详解之区块表(节表)和区块(节)(PE详解04)
    策略设计模式与c语言中的函数指针
    包装类类值传第
    java的 clone方法
    ubuntu中maven建的web项目不能将project facet设置为 dynamic web module 3.0
    maven 笔记
    eclipse中xml文件不能自动提示的解决办法
    oracle merge into 的例子
    oracle 常用sql
  • 原文地址:https://www.cnblogs.com/liqbk/p/13122291.html
Copyright © 2020-2023  润新知