JSP—JSP简介(JSP语法、九大隐式对象、常用标签)

本文详细介绍了JSP技术,从JSP的概述、JSP语法、九大内置对象到常用标签的使用,帮助读者全面理解JSP。通过JSP入门案例,解释了JSP的工作原理和最佳实践。在JSP语法部分,涵盖了模板元素、表达式、脚本片断、声明、注释和指令。JSP内置对象包括request、response、session、application等,每个对象的功能和用途都有清晰的阐述。最后,文章讨论了JSP常用的标签,如<jsp:forward>和<jsp:include>,以及如何传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. JSP概述

1.1 认识JSP

1.1.1 JSP简介

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

1.1.2 JSP入门案例

在jsp页面中输出当前时间

在WebContent目录下建立一个1.jsp,写入以下内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>jsp入门(输出时间)</title>
</head>
<body>
	当前时间:
	<%
		Date date = new Date();
		out.write(date.toLocaleString());
	%>
	
</body>
</html>


在浏览器中地址栏输入:http://localhost:8080/day08/1.jsp,回车:


1.1.3 JSP原理简介

上面演示了一个JSP,现在思考几个问题:

1)Web服务器是如何调用并执行一个jsp页面的?

2)Jsp页面中的html排版标签是如何被发送到客户端的?

3)Jsp页面中的java代码服务器是如何执行的?

4)Web服务器在调用jsp时,会给jsp提供一些什么java对象?

回答:

1)首先我们要知道的是,在浏览器中访问Web应用中的任何资源,其实都是在访问一个Servlet,其实在访问1.jsp的时候,服务器会将1.jsp翻译成_1_jsp.java,我是用Eclipse建立的Web工程,我的_1_jsp.java的目录在“D:\eclipse\eclipse_work\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\day08\org\apache\jsp”。


打开_1_jsp.java,发现它继承了org.apache.jasper.runtime.HttpJspBase类,这个类其实是HttpServlet的一个子类,所以_1_jsp其实是一个Servlet。

2)3)不管是html标签,还是java代码,其实都是在_1_jsp这个Servlet的_jspService()方法中使用调用了相关的代码。查看_1_jsp.java:


4)查看_1_jsp.java:


上面的都是可以直接使用的java对象,除此之外,还可以直接使用request和response。

1.1.4 JSP的最佳实践

不管是JSP还是Servlet,虽然都可以用于开发动态Web资源。但这由于这两门技术各自的特点,在长期的软件实践中,人们逐渐把Servlet作为Web应用中的控制组件来使用,而把JSP技术作为数据显示模板来使用。

其原因为,程序的数据通常需要美化后再输出:

1)让jsp既用java代码产生动态数据,又做美化导致页面难以维护。

2)让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。

3)因此最好的办法是根据这两门技术的特点,让它们各自负责各的,Servlet只负责响应请求产生数据,并把技术通过转发技术带给jsp,数据的显示由jsp来做。

2. JSP语法

2.1 JSP模板元素

JSP页面中的HTML内容称之为JSP模版元素。

JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值