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也是给用户做输出使用的。

7.jsp常用标签之静态包含

全部评论

相关推荐

拒绝996的悲伤蛙很...:此贴终结|给路过的牛友分享一下心得👇 实习的时候不要光埋头干活,身边的大佬同事才是真·宝藏人脉!大胆请教他们工作以及职场上的问题以我的经历,我的带教有十几年工作经验,做过运维、后端开发、web测试,现在是高级软测,是行走的避坑指南 我之前纠结要不要学Web测试简历,被他一句话点醒:Web发展成熟,岗位需求在缩,AI对互联网的冲击可能以后架构+开发+测试一人包揽。现在用户更多用的是移动端APP/小程序,相比之下天天守着电脑刷网页的人基数小。 这里我的纠结得到反馈,于是我又把简历发给带教,获得了一对一的简历指导。 感兴趣的可以看看: 1.教育背景:本科→本科(全日制) 2.实习经历:总体问题不大,但第2点要稍作修改,可以写但做功课,如风机、水箱……可能会问用哪个供应商的?使用寿命、型号、电压电流、多少秒会触发逻辑? 3.项目经历(坑太多,大型翻车现场): - 项目名越直白越好,让人一眼就知道你干了啥。 -用的什么语言设计核心接口,异步执行做功课,涉及线程问题,被问可回答n个功能是如何错开异步执行的 - “验证任务消费……阻塞丢包”“高负载稳定性”这种词,没三五年开发功底不要写,不然面试时被问线程、数量级、CPU占用,内存带宽等影响性能的直接原地社死。 -做功课 -做功课,测了哪些模块,如何设计,接口流量抓包,token,变量…… -做功课,要熟悉网络协议…… 带教之前做互联网开发的时候面试过很多人,总的来说不要为了显得项目高大上过渡包装,写了就要做好拷打的准备
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务