首页 > 其他分享 >JSP简介

JSP简介

时间:2023-04-22 11:22:44浏览次数:48  
标签:Java 简介 代码 指令 JSP 标签 页面

1.什么是JSP

JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

2.JSP的特点

能以模板化的方式简单、高效地添加动态网页内容。
1.可利用JavaBean和标签库技术复用常用的功能代码(设计好的组件容易实现重复利用,减少重复劳动)。标签库不仅带有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。

2.有良好的工具支持。

3.继承了Java语言的相对易用性。

4.继承了Java的跨平台优势,实现“一次编写,处处运行”。因为支持Java及其相关技术的开发平台多,网站开发人员可以选择在最适合自己的系统平台上进行JSP开发;不同环境下开发的JSP项目,在所有客户端上都能顺利访问。

5.页面中的动(控制变动内容的部分)/静(内容不需变动的部分)区域以分散但又有序的形式组合在一起,能使人更直观地看出页面代码的整体结构,也使得设计页面效果和程序逻辑这2部分工作容易分离(外观视图与逻辑分离)。从而方便分配人员并发挥各自长处,实现高效地分工合作。

6.可与其它企业级Java技术相互配合。JSP可以只专门负责页面中的数据呈现,实现分层开发。

3.JSP的工作原理

首先JSP分为两类,

(1)静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同.
(2)动态部分:Java程序控制的内容,这些内容由Java程序来动态生成。


<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
 
<html>
 
    <head>
 
        <title>欢迎</title>
 
    </head>
 
    <body>
 
        你好Java JSP!现在时间是:<%out.println(new java.util.Date());%>
 
    </body>
 
</html>

在<% %>之间的就是可以把Java代码嵌入HTML页面中,这就变成了动态的JSP页面。从表面上来分析,JSP页面已经不再需要Java类,似乎感觉完全脱离了Java面向对象的特征了,但是,实际上JSP是Servlet的一种特殊的形式,每一个JSP的页面就是一个Servlet的实例。

其次他的工作原理如下:

(1)当用户访问一个JSP页面时,回想一个Servlet容器(Tomcat)发出请求;

(2)如果是第一次请求页面,或页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为(test.class文件);因为这个过程(编译)会耗费一定时间,所以第一次访问或jsp文件有改动时,访问时间有些长;

(3)JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求(比如客户端发送表单,要求servlet:formprocessor.java来处理,则容器会建立一个线程,调用formprocessor.java来处理该请求);如果用户有多个请求,则容器会建立多个线程处理多个请求;

(4)容器执行字节码文件(包括调用的servlet:formprocessor.java字节吗),并将其结果返回到客户端;(返回的最终方式是有servlet输出html格式的文件流)

注释:

JSP页面必须要在JSP服务器内运行,如tomcat weblogic,jboss等等
JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。

4.常用语法

1.指令标识

指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到页面中。也就是说,指令标识对于客户端浏览器是不可见的。

JSP指令标识的语法格式如下:

<%@ 指令名 属性1=“属性值1”  属性2=“属性值2” %>

指令名:用于指定指令名称。在JSP中包括:Page、include、taglib这3条指令。

属性:用于指定属性名称,不同的指令包含不同的属性。在一个指令中可以设置多个属性,各属性之间用逗号或空格分隔。

page指令:<%@ page ... %> 用于定义整个JSP页面的相关属性。

例如,在应用Eclipse创建JSP文件时,在文件的最顶端会默认添加一条指令,用于指定JSP所使用的语言、编码方式等。这条指令的具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

include指令:<%@ include ... %> 通过该指令可以在一个JSP页面中包含另一个JSP页面。

不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到该JSP页面中,即使被包含文件中有JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。

代码如下

<%@ include file="path" %>

taglib指令:<%@ taglib ... %> 通过该命令声明该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。

语法格式如下

<%@ taglib prefix="tagPrefix" uri="tagURI" %>

注意:

prefix:用于指定标签的前缀。该前缀不能命名为jsp、jspx、java、javax、sun、servlet和sunw。

uri:用于指定标签库文件的存放位置。

举个例子

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

5.脚本标识
JSP表达式

格式如下

<%= 表达式%>

举个例子

<% String manager="pan_junbiao的博客"; %>  <!-- 定义保存管理员名称变量 -->
管理员:<%= manager %><br/>                <!-- 输出结果为:管理员:pan_junbiao的博客 -->
<%= "管理员:" + manager %><br/>           <!-- 输出结果为:管理员:pan_junbiao的博客 -->
<%= 3*6 %><br/>                           <!-- 输出结果为:18 -->
<% String url="https://blog.csdn.net/pan_junbiao"; %>   <!-- 定义保存文件名称变量 -->
<a target="_blank" href="<%= url %>">pan_junbiao的博客连接</a>  <!-- 输出结果为:pan_junbiao的博客连接   是一个链接-->

声明标识

声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用该标识定义整个JSP页面都需要引用的变量或方法。声明标识的语法格式如下:

<%! 声明变量或方法的代码 %>
例子

<%!
	int number=0;           //声明全局变量
	int count(){            //声明全局方法
		number=number%4;       //number与4的取余
		return number;  //返回number的值
	}
%>

取余的结果为:

<%= count() %>
代码片段

所谓代码片段就是在JSP页面中嵌入的Java代码或是脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或是流程控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。代码片段的语法格式如下:

<% Java代码或是脚本代码 %>
举例

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>九九乘法表</title>
</head>
<body>
<%
	String str = ""; 				  //声明保存九九乘法表的字符串变量
	//连接生成九九乘法表的字符串
	for (int i = 1; i <= 9; i++) {			  // 外循环
		for (int j = 1; j <= i; j++) { 		  // 内循环
			str += j + "*" + i + "=" + j * i;
			str += "&nbsp;"; 		  //加入空格符
		}
		str += "<br>"; 				  // 加入换行符
	}
%>
<table width="440" height="85" border="1" cellpadding="0" cellspacing="0" style="font:9pt;" 
bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF">
  <tr>
    <td height="30" align="center">九九乘法表</td>
  </tr>
  <tr>
    <td style="padding:3pt">
		<%=str%>					<!-- 输出九九乘法表 -->
	</td>
  </tr>
</table>
</body>
 
</html>

标签:Java,简介,代码,指令,JSP,标签,页面
From: https://www.cnblogs.com/yzx-sir/p/17342650.html

相关文章

  • SpringSecurity课程介绍、SpringSecurity课程简介
    课程介绍课程简介 SpringSecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro......
  • Django框架——静态文件配置、form表单、request对象、连接数据库、ORM简介、ORM基本
    配置文件介绍SECRET_KEY='0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a'#盐DEBUG=True#调试模式,等项目上线的时候,改成False#配置数据库DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3',#默认是自......
  • 基于Jsp和MySQL实现的云音乐平台
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]一、系统使用说明1.1配置开发环境:EclipseJavaEEIDEforWebDevelopers4.3.2开发语言:Java1.8MVC框架:Spring4.3.3web服务器:Tomcat开发系统:OSX/LINUX数据库:MySQL1.2相关路径controller:CloudMusic/src/controllermodel:CloudMus......
  • Django框架——手写web框架、wsgiref模块、动静态网页、jinja2模块、主流web框架、Dja
    web应用'''通过浏览器访问的应用程序!!!'''1.两种模式c/sb/s B/S:browser---------------->server2.web应用程序的有点 2.1只需要一个浏览器即可2.2 节省资源2.3 他们不需要更新,因为所有新的特性都在服务器上执行3.web应用程序的缺点 #特别依赖服务端程序的健壮......
  • Python爬虫技术简介
    Python是一种广泛应用于网络爬虫的编程语言,它的简洁易读的语法、强大的数据处理能力和各种可用的第三方库,使得Python成为开发高效且功能强大的爬虫的首选语言。本篇博客将介绍Python爬虫的基础知识和一些常用的爬虫技术。一、Python爬虫技术介绍Python爬虫技术包括网页请求、HT......
  • Web应用程序简介
    Web应用程序是一种特殊类型的软件程序,运行在Web浏览器上。它们通常用于处理各种任务,例如在线购物、社交媒体、在线支付、博客、邮件、在线搜索、即时通讯等等。Web应用程序主要由两部分组成:前端和后端。前端通常是指用户直接与之交互的部分,它由HTML、CSS和JavaScript等技术构成,可......
  • JSP自定义标签开发入门
    评:简单深入赞一般情况下开发jsp自定义标签需要引用以下两个包 importjavax.servlet.jsp.*;importjavax.servlet.jsp.tagext.*; 首先我们需要大致了解开发自定义标签所涉及到的接口与类的层次结构(其中SimpleTag接口与SimpleTagSupport类是JSP2.0中新引入的)。 目标1:自......
  • 收藏 JSP自定义标签EL表达式取值问题
    给你个标签的例子自己看看吧!标签:<framework:VoucherCodeToNamecode=""/>tld.xml<tag><name>VoucherCodeToName</name><tagclass>com.itown.crm.fee.vouchermanager.util.VoucherCodeToNameTag</tagclass>&......
  • include与jsp:include区别
    我们都知道在jsp中include有两种形式,分别是<%@includefile=””%><jsp:includepage=””flush=”true”/> 以下是对include两种用法的区别主要有两个方面的不同;一:执行时间上:<%@includefile=”relativeURI”%>是在翻译阶段执行<jsp:includepage=”relati......
  • Redis简介及安装教程
    一、认识Redisredis诞生于2009年,全称是RemoteDictionaryServer,远程字段服务器,是一个基于内存的键值对数据库。特征:键值(key)型,value支持多种不同的数据类型,功能丰富单线程,每个命令具备原子性低延迟,速度快(基于内存,IO多路复用,良好的编码)支持数据持久化(RDB和AOF)支持主从集......