Hello JSP!——基础语法篇

来源:互联网 发布:为什么要反乌托邦 知乎 编辑:程序博客网 时间:2024/06/05 09:01

一、JSP简介

JSP是Java Server Pages的缩写,是由Sun公司于1999年6月推出的技术,通过在传统的HTML中插入JSP脚本代码从而构成JSP页面。JSP是基于Java Servlet及整个Java体系的Web开发技术,可以利用这一技术来构建安全的、跨平台的动态Web站点。JSP目前在不断的进行更新和优化。

JSP具有如下主要特点:

1.程序逻辑和显示分离

使用JSP技术可以把界面的开发与程序逻辑的开发分离开。Web开发人员使用HTML或XML标记来设计界面,使用JSP标记或脚本生成页面上的动态内容,动态内容的逻辑被封装在标记和JavaBeans组件中,并被捆绑在脚本中,所以的脚本在服务器端运行。

JSP技术使得开发人员的分工更加明确,页面设计者可以修改内容而不影响逻辑,应用程序的开发这可以修改逻辑而不影响内容。

2.可重用组件

绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或Enterprise JavaBean)来执行应用程序要求的复杂处理。开发人员可用共享和交换组件,或把这些组件提供给更多的用户使用。基于组件的开发方法有效地提高了应用程序的开发效率,加速了项目的总体开发进程。

3.使用标签简化页面开发

JSP封装了许多功能,这些功能是生成与JSP相关的HTML或XML的动态内容时所需要的,标准的JSP标记能够访问和实例化JavaBeans组件,设置或检索组件的属性,下载Applet,以及执行使用其他方法难以实现的功能。

JSP标记具有可扩充性,允许开发者扩展JSP标记,开发人员能够定制常用功能标记库。第三方或其他开发人员也可以创建自己的标记库,由于页面制作者可以使用标记库中的功能,因此大大减少了对脚本语言的依赖,并降低了页面制作的复杂度。

4.具有JAVA的特点

由于JSP页面的内置脚本是基于Java语言的,而且所有的JSP页面都被编译成Servlet,所有JSP具有Java的特点,如健壮的存储管理、安全性、跨平台性、“一次编写,各处运行”等特点。


二、JSP运行机制

HelloJSP.jsp

<html><head><title>HelloJSP</title></head><body><%out.println("Hello JSP!");    //在网页上打印输出"Hello JSP!"语句 %></body></html>
运行结果:

使用浏览器打开该JSP页面后,查看页面源代码,如下所示:

<html><head><title>HelloJSP</title></head><body> Hello JSP! </body></html>
可以把JSP页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。

转译阶段:JSP页面转换成Servlet类。

请求阶段:Servlet类执行,将响应结果发送至客户端。

执行流程如下:

(1)用户(客户机)访问相应的JSP页面。

(2)服务器找到相应的JSP页面。

(3)服务器将JSP转译成Servlet的源代码。

(4)服务器将Servlet源代码编译为class文件。

(5)服务器将class文件加载到内存并执行。

(6)服务器将class文件执行后生成的HTML文件代码发送给客户机,客户机浏览器根据相应的HTML代码进行显示。

如果该JSP页面为第一次执行,那么会经过这两个阶段,而如果不是第一次执行,那么只会请求阶段。这也是为什么第二次执行JSP页面时明显比第一次执行要快的原因。

如果修改了JSP页面,那么服务器将发现该修改,并重新执行转译阶段和请求阶段。这就是为什么修改页面后访问速度变慢的原因。


三、JSP脚本元素

JSP脚本元素包含JSP声明语句、JSP Scriptlets、JSP表达式。

1.JSP声明语句

JSP声明语句以<%!开始,以%>结束,其语法格式为:<%! 声明语句 %>

使用声明语句声明的变量为全局变量,也就是说,当有多个用户在执行此JSP页面时,将共享该变量。

DeclarationsDemo.jsp

<html><head><title>DeclarationsDemo</title></head><body><%! int a=1; %><%out.println("a=" + a);a++; %></body></html>
运行结果:

第一次:                                                                                                                         第二次:


代码解析:

该示例代码第06行通过“<%! int a=1; %>”声明一个全局变量a,在第08行中使用”out.println("a="+a)"输出a的变量,在第09行通过“a++”进行自动递增,因为变量a为全局变量,所以这时如果有多个用户执行该JSP,将会共享该变量。

 

2.JSP Scriptlets

JSP Scriptlets以<%开始,以%>结束,其语法格式是为<% Java代码 %>。在JSP Scriptlets中科院包含多个语句,如:方法、变量、表达式等。

JSPScriptletsDemo.jsp

<html><head><title>JSPScriptletsDemo</title></head><body><%String str= "Java Scriptlets Demo";out.println(str); %></body></html>

运行结果:


 代码解析:

示例代码声明了一个字符串str,其值为“Java Scriptlets Demo",通过out.println()方法在网页上输出该字符串的值。

 

3.JSP表达式

JSP表达式以<%=开始,以%>结束,其语法格式为<%= Java代码 %>。JSP表达式中的代码会首先执行,然后转换成字符串并显示到网页上。

DeclarationsDemo.jsp

<html><head><title>DeclarationsDemo</title></head><body><%String str="Hello";   //声明字符串str %><%= str%></body></html>
运行结果:


代码解析:

该示例代码中声明了一个字符串str,其值为:"Hello”,并通过使用表达式<%=str%>在网页上输出该字符串的值。


4.注释

        JSP的注释分为两类,一类为可以在客户端显示的注释,即HTML注释;一类是不能再客户端显示的注释,即JSP注释。

 HTML注释:

         使用<!--开始,以-->结束,中间包含的代码即为注释部分。

CommentsDemo1.jsp

<%@ page pageEncoding="UTF-8"%><html><head><title>CommentsDemo</title></head><body><!-- 声明变量a --><%! int a=1; %><!-- 在网页上打印出变量a的值  --><%out.println("a=" +a); %></body></html>

运行结果:


JSP注释:

       使用<%--开始,以--%>结束,中间包含的代码即为注释部分。

CommentsDemo2.jsp

<%@ page pageEncoding="UTF-8"%><html><head><title>CommentsDemo</title></head><body><%-- 声明变量a --%><%! int a=1; %><%-- 在网页上打印出变量a的值  --%><%out.println("a=" +a); %></body></html>

运行结果:

 

同样也可以在JSP脚本元素中使用Java注释,如Java单行注释“//”,该注释同样不会在HTML源代码中显示。

 

5.综合练习:

       Practice.jsp

<html><head><title>Practice</title></head><body><%-- 声明变量a,b,c --%><%int a=2;int b=1;int c=0; %> <%-- 对a,b进行运算,并将值赋值给c --%> <% c=a+b;                                          //对a和b进行加法运行,并将值赋值给c out.println(a + " + " + b + " = " + c + "<br>"); c=a-b;                                          //对a和b进行减法运行,并将值赋值给c out.println(a + " - " + b + " = " + c + "<br>"); c=a*b;                                          //对a和b进行乘法运行,并将值赋值给c out.println(a + " * " + b + " = " + c + "<br>"); c=a/b;                                          //对a和b进行除法运行,并将值赋值给c out.println(a + " / " + b + " = " + c + "<br>");  %></body></html>

运行结果:



修改上面的示例,使用JSP表达式输出变量c的值

<html><head><title>Practice</title></head><body><%-- 声明变量a,b,c --%><%int a = 2;int b = 1;int c = 0;%><%c = a + b; //对a和b进行加法运行,并将值赋值给c%><%-- 输出c的值 --%><%=a + " + " + b + " = " + c + "<br>"%><%c = a - b; //对a和b进行减法运行,并将值赋值给c%><%=a + " - " + b + " = " + c + "<br>"%><%c = a * b; //对a和b进行乘法运行,并将值赋值给c%><%=a + " * " + b + " = " + c + "<br>"%><%c = a / b; //对a和b进行除法运行,并将值赋值给c%><%=a + " - " + b + " = " + c + "<br>"%></body></html>

运行结果:


 

6. 小结:

        要开始学习JSP,最重要的是要了解其运行机制,必须了解什么时候进行转译,什么时候进行请求响应,JSP脚本元素是整个JSP体系中最基础的部分。

个人学习心得:

        接触一种新的语言,并且用心去学,收获真的挺大的,唯一不好的还是网页制作方面基础太差,HTML注释说是可以在客户端上显示,我以为是能够在网页上显示出来,结果并不然,HTML注释只是能在网页源代码中显示,而JSP注释不能,我把问题发到了和学长学姐们交流的群里,虽然并没有遭到嘲笑,但是找到问题原因后自己还是感觉一阵脸热,大一的计算机基础真是白学了。不过新知识GET还是很开心的,丢人也不可怕。

       这篇博文的内容基本上都是我照着书上打的,通过将每一个知识点敲成博文的形式再一次加深了自己的记忆。

 

2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 平板手机屏坏了怎么办 他很优秀我该怎么办 洗澡的花洒漏水怎么办 高三了文科成绩很差怎么办 骑缝章最后一页没盖全怎么办 机票取早了没有登机口怎么办 机票早订比晚订贵怎么办? 孩子考差了父母怎么办 保险公司不给业务员办退司怎么办 我不习惯没有你我怎么办 锁坏了打不开了怎么办 要上班老人生病无人照顾怎么办 苹果手机一直说英文怎么办 公司很抠门怎么办英文怎么说 过了截港时间怎么办 截关日期是假日怎么办 恒温阀冷水进水堵塞怎么办 缺氧液泵管道堵塞怎么办 货物包装大集装箱装不下怎么办 微信收藏的视频格式错误怎么办 乙方被刑拘房租未付清怎么办 房贷银行卡号弄错怎么办 社保卡号弄错了怎么办 社保名字写错了怎么办 档案和身份证年龄姓名不一样怎么办 档案年龄与身份证年龄不一样怎么办 户口本身份证和档案不一样怎么办 如果档案姓名与身份证不符怎么办 感冒吃了白参怎么办 吃辣的嗓子疼怎么办 美团客户更改地址怎么办 忘记steam的账户名称怎么办 重置手机忘了密码怎么办 sp下行短信费扣怎么办 hr公司业务员招不到人怎么办 卖房中介被房倒压房子怎么办 电脑放不了dvd光盘怎么办 股东迟迟不交齐股本金怎么办 wps转pdf就乱了怎么办 被有用分期骗了怎么办 找不到以前有用分期的账号怎么办