JSP语法

目录

前言

2.1JSP页面的基本结构

2.2声明变量和定义方法

2.3Java程序片

2.4Java表达式

2.5JSP指令标记

​2.6JSP动作标记


前言

当今互联网上存在许多不同的编程语言,每一种都有其应用和特点。在Web应用程序开发中,JSP(Java Server Pages)是最为流行的技术之一,这是因为它简单易学、高效且效率高。今天,我们将介绍JSP的语法和一些基本概念。

2.1JSP页面的基本结构

 2.1.1 一个JSP页面可由5种元素组合而成

(1) 普通的HTML标记和JavaScript标记。

(2) JSP标记,如指令标记、动作标记。

(3) 变量和方法的声明。

(4) Java 程序片。

(5) Java 表达式。

2.1.2原理

一个JSP页面被第一次请求执行时,Tomcat服务器首先将JSP页面文件转译成一个Java文件,再将这个Java文件编译生成字节码文件,然后通过执行字节码文件响应用户的请求。

当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应用户的请求。这些线程由Tomcat服务器来管理,将CPU的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文件。


2.2声明变量和定义方法

在<%!和%>标记符号之间声明变量,定义方法以及定义类。   <%!和%>标记符号的内容习惯上放在JSP 页面指令之后,<HTML>之前,也可以写在<HTML>与</HTML>之间。

Tomcat服务器将JSP页面转译成Java 文件时,将“<%!”、“%>” 标记符之间声明的变量作为类的成员变量,这些变量占有的内存空间直到Tomcat服务器关闭才释放。 当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,这些线程由Tomcat服务器来管理,这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户


2.3Java程序片

<% %>:这种标记包含Java代码,用于在页面上执行一些操作。


2.4Java表达式

<%= %>:这种标记用于在页面上打印Java表达式的值。

<%@ page contentType = "text/html" %>  
<%@ page pageEncoding = "utf-8" %>  
<HTML><body  bgcolor=pink>
<%  int x=12,y=9;
%>
<p style="font-family:宋体;font-size:36">
  计算表达式x+y+x%y,即<%= x %>+<%= y %>+<%= x %>%<%= y %>的值: 
  <%= x+y+x%y %>
<br>计算表达式x>y即<%= x %> > <%= y %>的值:
  <%= x>y %>
<br>计算表达式sin(<%=  Math.PI %>/2)的值:
    <%= Math.sin(Math.PI/2) %>
<br> 
<%  if(x-y>=0) {
%>    
       如果<%= x %>大于<%= y %>,计算<%= x %> - <%= y %>即
       <%= x-y %>的平方根:
       <%=Math.sqrt(x-y)%>
<%  }
%>
</p></body></HTML>

 

2.5JSP指令标记

<%@ %>:这种标记用于定义JSP页面的属性和指令,例如引入外部样式表或定义页面的语言、字符集等。

<%@ page contentType="image/jpeg" %> 
<%@ page import="java.awt.*" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="java.awt.geom.*" %>  
<%@ page import="javax.imageio.ImageIO" %>
<%   int width=320, height=300;
     BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
     Graphics g = image.getGraphics();
     g.setColor(Color.lightGray);
     g.fillRect(0, 0, width, height);
     Graphics2D g_2d=(Graphics2D)g; 
     Ellipse2D ellipse=new Ellipse2D. Double (70,90,120,60);
     g_2d.setColor(Color.blue);
     AffineTransform trans=new  AffineTransform(); 
     for(int i=1;i<=24;i++) {
        trans.rotate(15.0*Math.PI/180,160,130);
        g_2d.setTransform(trans);
        g_2d.draw(ellipse); 
     }
     g_2d.setColor(Color.red);
     Arc2D arc= new Arc2D.Double (200,220,100,40,0,270,Arc2D.PIE);
     g_2d.fill(arc);
     arc.setArc(5,5,100,40,0,-270,Arc2D.PIE);
     g_2d.fill(arc); 
     g_2d.setColor(Color.black);
     g_2d.setFont(new Font("",Font.BOLD,18));
     g_2d.drawString("耿祥义, Graphic Drawer",10,280);
     g_2d.dispose();
     OutputStream outClient= response.getOutputStream();   //获取指向用户端的输出流
     boolean boo =ImageIO.write(image,"jpeg",outClient);
%>


2.6JSP动作标记

 

动作标记是JSP的特有标记,可以用于执行与页面相关的操作。这些操作可能包括读取和输出数据、从数据库中检索数据、分页等等。以下是一些常见的JSP动作标记:

- <jsp:forward>:将请求转发到另一个页面或Servlet。

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %>  
<HTML><body>
<h1> 产生一个1-10之间的随机数
<%  double i=(int)(Math.random()*10)+1;
    if(i<=5) {
%>      <jsp:forward page="example2_12_a.jsp" >
            <jsp:param name="number" value="<%= i %>" />
        </jsp:forward> 
<%  }
    else {
%>     <jsp:forward page="example2_12_b.jsp" >
           <jsp:param name="number" value="<%= i %>" />
       </jsp:forward> 
<%  }
%>
</body></HTML>



- <jsp:include>:将另一个JSP页面包含在当前页面中。

<jsp:include page = "文件的URL"/>
或
<jsp:include page = "文件的URL"/>
    param 子标记
</jsp:include>



- <jsp:useBean>:用于实例化JavaBean并将它们放在作用域中以便在页面上使用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值