JSP(一)

一、什么是JSP?

  JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
  JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据

1.1 hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>北京中赫国安官方网站</title>
</head>
<body>
<h1>国安是冠军</h1>

</body>
</html>

1.2代码解释 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

是JSP的<%@page指令

第一阶段:将jsp编译成Servlet(.java)文件。用到的指令是pageEncoding

hello_jsp.java位于d:\tomcat\work\Catalina\localhost\_\org\apache\jsp 根据pageEncoding=“XXX”的指示,找到编码的规则为“XXX”,服务器在将JSP文件编译成.java文件时会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8编码的JAVA源码(即.java)。pageEncoding="UTF-8":如果jsp文件中出现了中文,这些中文使用UTF-8进行编码

第二阶段:从Servlet文件(.java)到Java字节码文件(.class),从UTF-8到UTF-8。在这一阶段中,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。JAVAC用UTF-8的encoding读取java源码,编译成UTF-8编码的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。这一过程是由JVM的内在规范决定的,不受外界控制。

第三阶段:从服务器到浏览器,这在一过程中用到的指令是contentType。服务器载入和执行由第二阶段生成出来JAVA二进制码,输出的结果,也就是在客户端可见到的结果,在这次输出过程中,由contentType属性中的charset来指定,将UTF8形式的二进制码以charset的编码形式来输出。如果没有人为设定,则默认的是ISO-8859-1的形式。

contentType="text/html; charset=UTF-8":相当于response.setContentType("text/html; charset=UTF-8"); 通知浏览器以UTF-8进行中文解码

import="java.util.*    导入其他类,如果导入多个类,彼此用,逗号隔开,像这样 import="java.util.*,java.sql.*"

<%=new Date().toLocaleString()%>


输出当前时间,相当于在Servlet中使用response.getWriter()进行输出

response.getWriter().println(new Date().toLocaleString());

二.JSP基础元素(7个)

页面元素

1. 静态内容
就是html,css,javascript等内容

2. 指令
以<%@开始 %> 结尾,比如<%@page import="java.util.*"%>

3. 表达式 <%=%>
用于输出一段html <%=new Date().toLocaleString()%>

JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.print(…) 将数据输给客户端。
  JSP脚本表达式中的变量或表达式后面不能有分号(;)

4. Scriptlet(脚本片断)
在<%%> 之间,可以写任何java 代码 ,可以定义变量、编写语句,不能定义方法。

多个脚本片断中的代码可以相互访问,犹如将所有的代码放在一对<%%>之中的情况。如:out.println(x);
  单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句

5. 声明
在<%!%> 之间可以声明字段或者方法。但是不建议这么做。

6. 动作
<jsp:include page="Filename" > 在jsp页面中包含另一个页面。在包含的章节有详细的讲解

7. 注释

在JSP中,注释有两大类:

   显式注释:直接使用HTML风格的注释:<!- - 注释内容- ->

   隐式注释:直接使用JAVA的注释:///*……*/

 JSP自己的注释:<%- - 注释内容- -%>

这三种注释的区别

html:<!--这个注释可以看见-->

<%
    //JAVA中的单行注释

    /*
        JAVA中的多行注释
    */
%>

<%--JSP自己的注释--%>

AVA注释和JSP注释在浏览器中查看源文件时是看不到注释的内容的,这就是这三种注释的区别。

猜你喜欢

转载自blog.csdn.net/qq_38930240/article/details/82764070
今日推荐