首页
学习
活动
专区
工具
TVP
发布

JavaEE之JSP原理—写个简易计算器

各位亲爱的宝宝们,我们继续分享技术哈。数据库有分享一段时间了,总是查呀查呀的,我写着不累你们看着也该累了!

今天我们换换脑子搞搞 JSP技术的海洋如此广阔,我们不急的哈,慢慢来!

学海无涯,我做海边

什么是JSP

JSP 全称为 Java Server Pages,是一种动态网页开发技术。其特点是使用 JSP 标签在 HTML 网页中插入Java代码。

JSP+Java类(service、JavaBean)+servlet,就构成了 MVC 开发模式。MVC模式是目前软件公司中相当通用的开发模式(当然还有各种框架)。

下面我们来感受一下原始的 JSP 的开发!

(从基础一点一点的来,这样有利于后面我们了解框架)

还记得我们之前分享的 web 程序的目录结构吗?

我们就按照这个结构

创建项目创建文件

这一行代码就是告诉别人,我是一个jsp代码

out.println("Hello World ! 当前的日期是 : " + new java.util.Date());

这一段就是我们常用的Java代码

所以说 JSP = html + java代码段 + JSP标签 + js + css

我们来运行一下看看效果!

还记得怎么启动 tomcat 服务器吗?

我们来看一下 jsp 代码!

看到这里是不是觉得有点熟悉呢!和我们之前分享的servlet很想是不是!所以说servlet 是 jsp 的基础!了解了 servlet 再看 jsp 就会容易些

这是我们之前写的页面的代码!

我们来看一下 jsp 的工作原理

第一次访问时,首先访问 tomcat 服务器,找到 index.jsp 页面,然后把 index.jsp页面翻译成 index_jsp.java 文件,在翻译成为 index_jsp.class 文件装载的内存中,我们之后访问的话就会直接去内存中找这个实例对象!

注:第一次访问 JSP 网站比较慢,如果某个 JSP 被修改了相当于第一次访问该 JSP。

JSP 需要了解的三个主要方法:

Void _jspInit() :

JSP 页面初始化时调用。

Void _jspDestroy() :

即将 desctroy JSP 页面的调用。

Void _jspService() :

此方法对应 JSP 页面的 body,该方法由 JSP 容器自动定义,并由 servlet 的 _jspService() 方法调用,每一个请求对应一个运行在单独线程的_jspService() 方法。

我们使用了两个 符号嵌入了两段 java 代码,看一下是否可行!

看一下服务器翻译的对应于这个 jsp 文件的 Servlet 文件

找到那个 _jspService() 方法

可以看到,我们的 jsp 的页面在翻译成 Java 页面的时候是把 里面包裹的Java 代码原样放在我们的 servlet 文件的 _jspService() 方法中。如果有多个这样包含 java 代码段,其实是相当于一个大的 java 代码段,定义的变量会成为 _jspService() 函数的局部变量。

注释

在jsp页面中可以使用三种注释

HTML 格式注释

JSP 代码注释

注释代码内容,去掉暂时不用的代码。

Java语言注释

// 单行注释

/*多行注释*/

JSP对象

JSP 页面可以创建、访问和修改服务器端的对象,对象存在一定的有效范围。JSP定义了9个无需声明即可使用的隐含对象,也称为内置对象。

这些 JSP 隐含对象是容器为每个页面都提供的 Java 对象,开发者可以直接使用它们而不用显式声明。JSP 隐含对象可以方便地访问请求、响应和会话等信息。

JSP对象按照作用范围的不同,可以分为页内有效、请求有效、会话有效和应用有效四种不同的有效范围,分别对应四个JSP隐含对象:pageContext、request、session 和 application

也就我们说的: JSP九大内置对象和四大作用域

简易计算器

我们来使用纯 jsp 技术开发一个简易计算器

创建一个 index.jsp 页面作为欢迎页面

效果

最原始的利用 jsp 技术开发就是这样的,

把 Java 的逻辑代码写到页面中。

我们来把这两页代码写到同一个页面中去

看一下 js 的效果

就不给宝宝们一一演示了,

代码都在上面宝宝们自己试试。

项目的目录结构

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180513A0HSHH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券