jsp 的介绍(什么是jsp、作用、语法、page指令、静态包含)
1.什么是jsp,它有什么用?
jsp的全称是java server pages。是Java的服务器页面。
jsp的主要作用是代替Servlet程序回传html页面的数据。
因为Servlet程序回传html页面数据是一件非常繁琐的事情、开发成本和维护成本都极高。
2.jsp如何访问?
jsp页面和html页面一样,都是存放在web目录下,访问也跟访问html页面一样。
比如:
在web目录下有如下的文件:
web目录
a.html页面 访问地址是======>>>>>> http://ip:port/工程路径/a.html
b.jsp页面 访问地址是======>>>>>> http://ip:port/工程路径/b.jsp
3.jsp的本质是什么?
jsp页面的本质上是一个Servlet程序。
原因:
当我们第一次访问jsp页面时,Tomcat服务器会帮我们把jsp页面翻译成为一个java源文件,并且对它编译成为.class字节码程序。我们打开java源文件不难发现其里面的内容是:
我们跟踪源代码发现,HttpJspBase类。它直接继承了HttpServlet类。也就是说,jsp翻译出来的java类,间接继承了HttpServlet类,也就是说,翻译出来是一个Servlet程序。
总结:通过翻译的java源代码我们就可以得到结果:jsp就是Servlet程序。
大家也可以去观察翻译出来的Servlet程序的源代码,不难发现,其底层实现,也是通过输出流,把html页面数据回传给客户端。
4. jsp的三种语法
a)jsp头部的page命令
jsp的page指令可以修改jsp页面中的一些在重要的属性或者行为。
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
b)jsp中的常用脚本
i. 声明脚本(极少使用)
声明脚本的格式是: <%! 声明java代码%>
作用:
可以给jsp翻译出来的java类定义属性和方法甚至是静态代码块、内部类等。
1.声明类属性
2.声明static静态代码块
3.声明类方法
4.声明内部类
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/7/18
Time: 8:58
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--练习:
1.声明类属性
2.声明static静态代码块
3.声明类方法
4.声明内部类
--%>
<%--1.声明类属性--%>
<%!
private Integer id;
private String name;
private static Map<String,Object> map;
%>
<%--2.声明static静态代码块--%>
<%!
static{
map=new HashMap<String,Object>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
}
%>
<%--3.声明类方法--%>
<%!
public int abc(){
return 12;
}
%>
<%--4.声明内部类--%>
<%!
public static class A{
private Integer id=12;
private String abc="abc";
}
%>
</body>
</html>
ii. 表达式脚本(常用)
表达式脚本的格式是:<%=表达式%>
表达式脚本的作用是:在jsp页面上输出数据。
表达式脚本的特点:
1.所有的表达式脚本都会被翻译到_jspService方法中
2.表达式脚本都会被翻译成为out.print()输出到页面上
3.由于表达式脚本翻译的内容都在_jspService()方法中,所以_jspService()方法中的对象都可以直接使用。
4.表达式脚本中的表达式不能以分号结束。
练习:
1.输出整型
2.输出浮点型
3.输出字符串
4.输出对象
<%=12 %><br>
<%=12.12%><br>
<%="我是字符串"%><br>
<%=map%><br>
<%=request.getParameter("username")%>
浏览器结果:
iii.代码脚本
代码脚本的格式:
<%
java语句
%>
代码脚本的作用是:可以在jsp页面中,编写我们自己需要的功能(写的是java语句)。
代码脚本的特点是:
1.代码脚本翻译之后都在_jspService方法中
2.代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用。
3.还可以由多个代码脚本块组合完成一个完整的java语句。
6.jsp中的out输出和response.getWriter输出的区别
response中+表示响应,我们经常用于设置返回给客户端的内容(输出)
out也是给用户做输出使用的。