Javaweb(JSP技术)

Javaweb(JSP技术)

东方欲晓莫道君行


学习目标

了解jsp 概念和特点 熟悉jsp 的运行原理 掌握jsp 的基本语法 熟悉jsp 指令和隐式对象的使用 掌握jsp 动作元素的使用

提示:下面案例可供参考

一、JSP概述

1.1什么是jsp

JSP全名是Java Server Pages,它是建立在Servlet 规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。为了与传统HTIML有所区别,JSP文件的扩展名为:jsp。

JSP技术所开发的Web应用程序是基于Java的,它可以用一种简捷而快速 的方法从Java程序生成Web页面,其使用上具有如下几点特征。

跨平台:由于JSP是基于Java语言的,它可以使用Java API,所以它也是跨平台的,可以应用于不同的系统中,如Windows、Linux等。 当从一个平台移植到另一个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为Java的字节码是与平台无关的,这也应验了Java语言“一次编译,到处运行”的特点。

业务代码相分离:在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的

开发分离开。开发人员使用HTML来设计界面,使用JSP标签和脚本来动态生成页面上的内容。在服务器端,JSP引擎(或容器,本书中指Tomcat )负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回到浏览器。

组件重用: JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一一个数据存储模型,在JSP页面中,甚至在整个项目中,都可以重复。

1.2jsp运行原理

JSP的运行原理WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat 中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。
在这里插入图片描述

二、JSP基本语法

在JSP文件中可以去套很多内容,例如,JSP的脚本元素和注释等,这些内容的编写都需要遵循一定的语法规范。接下来,本节将针对这些语法进行详细的讲解。

2.1JSP 脚本元素

JSP脚本元素是指嵌套在<%和%>之中的一条或多条Java程序代码。通过JSP脚本元素可以将Java代码嵌入HTML页面中,所有可执行的Java代码,都可以通过JSP脚本来执行。JSP脚本元素主要包含如下3种类型。

2.2JSP声明语句

JSP的声明语句用于声明变量和方法,它以“<%“开始,以“%>” 结束,其语法格式如

<%!

定义的变量或方法等

%>

在上述语法格式中,被声明的Java代码将被编译到Serlet的jsService(方法之外,即在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP

声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定的变量分配内存,而调用结束后立刻会释放所占的内存。

在一个JSP页面中可以有多个JSP声明语句,单个声明中的Java语句可以是不完整的,但

是多个声明组合后的结果必须是完整的Java语句。接下来,通过一个案例来演示JSP Scriptlets

和声明语句的使用。

2.3JSP注释

基本语法格式:

<%-- 注释信息 --%>

2.4 JSP指令

include 指令
在实际开发时,有时需要在JSP页面静态包含-一个文件, 例如HTML文件、文本文件等,这时,可以通过include指令来实现。include 指令的具体语法格式如下所示。

<%@include file=“被包含的文件地址”%>中日

include指令只有一个file 属性,该属性用来指定插入到JSP页面目标位置的文件资源。需

要注意的是,插入文件的路径一般不以 “/” 开头,而是使用相对路径。

为了使读者更好地理解include指令的使用,接下来,通过一个案例来学习include指令的具体用法。

在chapter06项目的WebContent目录下创建两个JSP页面date.jsp和include.jsp,在

include.jsp文件中使用include指令将date.jsp文件包含其中,具体如下所示。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	date.jsp页面用来输出当前时间
	<%out.print(new Date().toLocaleString()); %>>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	我是include页面,下面是我包含进来的页面:2020080605020
	<%@ include file="date.jsp" %>
</body>
</html>

在这里插入图片描述

三、JSP隐式对象

3.1out对象

在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对象是javax servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的足,out对象的类型为JSpWriter, 它相当于一种带缓存 功能的PintWriteror接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系

项目的WebContent目录下创建一个 名称为out的JSP页面.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		out.print("first line <br/>");
		
		response.getWriter().print("seconde line <br/>");
	%>

</body>
</html>

3.2pageContext 对象

在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax. servlet.jsp PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用 于获取其他隐式对象的方法。pageContext 对象获取隐式对象的方法

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		HttpServletRequest req=(HttpServletRequest) pageContext.getRequest();
	
		pageContext.setAttribute("dashuju11", "pagecontext",PageContext.PAGE_SCOPE);
		pageContext.setAttribute("dashuju22","REQUEST",pageContext.REQUEST_SCOPE);
		pageContext.setAttribute("dashuju33","SESSION",pageContext.SESSION_SCOPE);
		pageContext.setAttribute("dashuju","APPLICATION",PageContext.APPLICATION_SCOPE);
	%>
	<%=pageContext.findAttribute("dashuju") %>
	<hr/>
	<%=(String)req.getAttribute("dashuju") %>
</body>
</html>

在这里插入图片描述

3.3exception 对象

在JSP页面中,经常需要处理一 些异常信息,这时,可以通过exception 对象来实现。exception对象是java.lang .Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@page isErrorPage=“true”%>的页面。接下来,通过一个案例来学习exception 对象的使用。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	int a=3;
	int b=0;
	%>
	输出:<%=(a/b) %>
</body>
</html>

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_54405545/article/details/121354216