JSP语法

JSP基础语法-关于JSP中的注释 JSP基础语法 3.3、关于JSP中的注释 JSP中的注释一定要编写到JSP的专业注释符号当中,只有这里的注释信息不会被翻译到java源代码当中,效率较高。其它的任何一种注释都会被翻译到java源代码当中,这样效率很低。 3.3.1、JSP的注释语法格式: <%-- 注释内容 ... 阅读详情

1.
用户登录:

Index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>

<head>
<title>用户登录</title>
  </head>

  <body>
    <form id="form1" name="form1" method="post" action="page2.jsp">
    用户名:
    <input name="username" type="text" id="username"/>
    <br/>
    <br/>
    密&nbsp;&nbsp;码:
    <input name="pwd" type="password"  id="pwd"/>

    <br/>
    <br/>

    <input type="submit" name="submit" value="提交"/>
    <input type="reset" name="reset" value="重置"/>

    </form>
  </body>
</html>

Page2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=GB2312"%>

<head>
<title>Insert Title in here.</title>
  </head>

  <body>
<%
request.setCharacterEncoding("gb2312");

String username=request.getParameter("username");
String pwd=request.getParameter("pwd");  
out.println("用户名为:"+username);
out.println("密码为:"+pwd);

 %>

 </br>
 </br/>

 <input type="button"  a herf="index.jsp" value="返回"/>
  </body>
</html>

注意:被包含的文件中最好不要使用等标签,这回影响到原JSP文件中同样的标签,有时会导致错误。并且要避免所涉及的变量名重复。

2.Tag文件中的Tag指令

GetArea.tag

<%@ attribute name="numberA" required="true"  %>
<%@ attribute name="numberB" required="true"  %>
<%@ attribute name="numberC" required="true"  %>
<%@ attribute name="condition" required="true"  %>
<%@ variable name-given="area" variable-class="java.lang.Double" scope="AT_END"%>
<%@ variable name-given="message" scope="AT_END"%>

<%!
public double getTiangleArea(double a,double b,double c){

    if(a+b>c&&b+c>a&&c+a>b){
        double p=(a+b+c)/2.0;
        double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
        return area;
    }else
    return -1;
    }
    public double getLaderArea(double above,double bottom,double h){

    double area=(above+bottom)*h/2.0;
    return area;
    }


%>

<%
try{

double a=Double.parseDouble(numberA);
double b=Double.parseDouble(numberB);
double c=Double.parseDouble(numberC);

double result=0;
if(condition.equals("triangle")){
result=getTiangleArea(a,b,c);
jspContext.setAttribute("area", new Double(result));
jspContext.setAttribute("message", "Arear of Triangle");

}
else if(condition.equals("lader")){
result=getLaderArea(a,b,c);
jspContext.setAttribute("area", new Double(result));
jspContext.setAttribute("message", "Arear of Trapeziod");


}
}
catch(Exception e)
{
    jspContext.setAttribute("area", new Double(-1.0));
jspContext.setAttribute("message", e.toString());
}


  %>


Index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"  contentType="text/html; charset=gb2312"%>
<%@ taglib prefix="computer" tagdir="/WEB-INF/tags" %>
<head>

<title>
Area
</title>
  </head>

  <body>
  <form action="" method=get name=form>
  <font  color="blue">

  输入的三个数值a,b,c分别代表三角形的三边或者梯形的上底,下底,高:
  </font>
  <br>
  <table>
 <tr > <td>输入数值a:</td>
 <td> <input type="text" name="a"></td></tr>

 <tr > <td>输入数值b:</td>
 <td> <input type="text" name="b"></td></tr>
 <tr > <td>输入数值c:</td>
 <td> <input type="text" name="c"></td></tr>
 </table>
 <input type="radio" name="R" value="triangle">三角形
  <input type="radio" name="R" value="lader">梯形
    <br>
    <input type="submit" value="提交" name=submit>
    </form>
    <%

    String a=request.getParameter("a");
     String b=request.getParameter("b");
     String c=request.getParameter("c");
      String cd=request.getParameter("R");
      if(a==null||b==null||c==null){

      a="0";
      b="0";
      c="0";
      cd="0";
      }
      if(a.length()>0&&b.length()>0&&c.length()>0){

     %>
     <computer:GetArea numberA="<%=a %>" numberB="<%=b %>"
     numberC="<%=c %>"  condition="<%=cd %>"
     />
     <br><%=message %>
     <br><%=area %>
     <%}%>
     }
  </body>
</html>

注:
Attribute指令:
<%@ attribute name=”numberA” required=”true” %>
可以让使用它的JSP页面向该Tag文件传递需要的数据。
1.name:指定对象传递引用。
2.Required:true时必须对name的属性指定一个对象引用
3.Type:对象的类型

JSP页面调用其指令:

Variable指令:
<%@ variable name-given=”area” variable-class=”java.lang.Double” scope=”AT_END”%>

通过只用variable指令可以将Tag文件中的对象返回给调用该Tag文件中的JSP页面。
1.name-given:给定对象的名称
2.Variable-class对象的类型带有的包名
3.AT_BEGIN、NESTED和AT_END
第二个可以在标记体内使用对象,第三个在标记体结束后才能使用对象。

3.
一个简单的网站计数器:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<head>

<title>Jishuqi</title>
  </head>
  <%!
  int num=0;
  synchronized void add()
  {
    num++;
  }
   %>

   <% add(); %>
   <body>
   <center>
    您是第<%=num %>位访问该页面的游客!
   </center>
   <br>
  </body>
</html>

注:
Synchronized void add(){num++};
其中的synchronized :
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用.
举例说明:
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

package ths;
public class Thread1 implements Runnable {  
     public void run() {  
          synchronized(this) {  
               for (int i = 0; i < 5; i++) {  
                    System.out.println(Thread.currentThread().getName() + " synchronized loop " + i);  
               }  
          }  
     }  
     public static void main(String[] args) {  
          Thread1 t1 = new Thread1();  
          Thread ta = new Thread(t1, "A");  
          Thread tb = new Thread(t1, "B");  
          ta.start();  
          tb.start();  
     } 
}

结果:
A synchronized loop 0
A synchronized loop 1
A synchronized loop 2
A synchronized loop 3
A synchronized loop 4
B synchronized loop 0
B synchronized loop 1
B synchronized loop 2
B synchronized loop 3
B synchronized loop 4

4.脚本程序(scriptlet)
脚本程序是使用<% %>标记起来的额一段JAVA代码。可以定义变量、调用方法、进行各种表达式运算,并且每行语句后面要加入分号。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>
脚本标识的使用
</title>
  </head>
  <% boolean admin=true; %>
  <body>
<table>
<% if(admin){  
admin=!admin;%>
<tr><td>欢迎登录!您的身份为“普通管理员。”</td></tr>
<% }
else if(admin){
admin=!admin;
%>
<tr><td>欢迎登录!您的身份为“系统管理员。”</td></tr>
<% } %>
</table>   

  </body>
</html>

5.JSP动作元素
在JSP中,提供了一系列使用XML语法写成的动作元素。与指令不同的是JSP页面执行时,先进入翻译阶段,程序先查找页面中的指令元素并转换为Servlet,这些元素是会被首先执行的。
动作元素的格式为:
<动作元素名 属性1=“值1” 属性2=“值2”…/>或者是
<动作元素名 属性1=“值1” 属性2=“值2”…>
<子动作 属性1=“值1” 属性2=“值2”…/>

米哈游 AI产品经理面试题精选:10道高频考题+答案解析(附PDF) 米哈游是全球知名游戏开发商,以《原神》《崩坏》系列著称,专注二次元文化与AI技术创新。本文整理了10道AI产品经理面试题,涵盖Transformer架构、智能NPC设计、机器学习应用、AIGC产品规划等核心领域。题目既考察技术理解(如RAG原理、多模态模型),又关注产品落地(游戏平衡性优化、伦理安全),同时强调跨团队协作能力。参考答案均结合米哈游业务场景,体现技术驱动与玩家体验并重的产品思维,展现AI在游戏行业的创新应用前景。 阅读详情

相关推荐

别再手动配IP了!保姆级教程:用Cisco Packet Tracer搞定DHCP服务器配置(附实验抓包分析)

本文提供了一份详细的Cisco Packet Tracer DHCP服务器配置教程,帮助用户告别手动分配IP的繁琐过程。通过构建多子网实验环境,逐步指导DHCP地址池设置、客户端测试及协议分析,并分享常见问题排查技巧,让网络配置更高效、更智能。

weixin_42535461的博客 339

元素scope变量范围

有三种取值:AT_BEGIN、NESTED和AT_END AT_BEGIN:表示变量的范围从开始标签到JSP页面结束。 NESTED:表示变量的范围在开始标签和结束标签之间。 AT_END:表示变量的范围从结束标签到JSP页面结束。

u011186019的专栏 781

三、STM32F103ZET6最小系统

stm32最小系统除去主控CPU外,需要包含,电源电路,复位电路,BOOT电路,时钟电路(因为stm32有内置时钟,对时钟要求不高的话,可以不要)。NRST引脚其实芯片已经用一个约40K的电阻上拉了,所以理论上来说是不需要再外接上拉电阻的,但我看大家都是有外接上拉的,心里没有底,不管这么多,先预留着。吃过亏,特意查看了芯片手册资料,下图是官方建议的供电方案,图片来自stm32f103zet6数据手册。首先明白目标,单纯的学习软件知识并不是我希望的,我还希望会硬件设计,这样后面才能摆脱开发板。

sevendecsdn的博客 6454

JSP tag文件的attribute指令和variable指令的使用

tag文件的attribute指令和variable指令 文章目录tag文件的attribute指令和variable指令一、attribute指令1、attribute指令的作用与用法2、运用实例1 example3_3.jsp2 Triangle.tag3 效果图与总结二、variable指令1.variable指令的作用与用法2、运用实例1 uesone.jsp2 giveroot.tag3 效果图与总结总结 一、attribute指令 1、attribute指令的作用与用法 attribute指

若宸的博客 6349

【已验证】基于STM32F407与AD9833的幅频特性测试装置设计与实现

本文详细介绍了基于STM32F407微控制器和AD9833 DDS芯片的低成本幅频特性测试装置设计与实现方法。通过扫频原理,该装置能自动生成正弦波信号,测量滤波器等电路的输出幅度变化,并在LCD屏幕或示波器上绘制幅频特性曲线。文章提供了从硬件选型、CubeMX工程配置、关键驱动代码编写到数据处理与可视化的完整教程,帮助电子爱好者与工程师快速搭建实用的滤波器测试工具。

weixin_35649491的博客 120

风控IV、AUC、KS python计算代码

df_temp:数据集,Y:是否逾期标签,feas_list:需要计算IV的 变量。2、 按月和不同Y 下的 IV计算。

暮雨听轩的专栏 1618

Tag文件和Tag标记的用法详解

                                      Tag文件和Tag标记 目录 1.为什么要使用Tag文件 2.Tag文件的结构 3.Tag文件的存储目录 4.Tag标记 5.Tag文件中常用的指令 1)tag指令 2)attribute指令 3)variable指令 4)taglib指令 5)include指令 6.Tag文件的嵌套 1.为什么...

the blog of Lee 2万+

告别Modern Standby噩梦:Win11睡眠断网冻结的根源剖析与S3睡眠回归实战

本文深入剖析了Windows 11中Modern Standby(现代待机)模式导致睡眠后断网、系统冻结等问题的根源,指出其与硬件驱动、后台活动的兼容性矛盾。文章提供了通过修改注册表键值强制系统回归稳定S3睡眠状态的详细实战步骤,帮助用户彻底解决睡眠故障,实现可靠的远程访问与挂机任务。

weixin_29210727的博客 606

学习编写标记文件(tag)下

接下来我们看一个属性的扩展功能 - 属性片段(attribute fragment), 先解译什么是片段, 大家可以 把片段看作一段jsp代码, JSP规范中所谓的jsp fragment, 例如我们之前使用了jsp:doBody读取的主 体内容就是一个片段. 我们可以将一段巳命名的片段(named fragment)作为一个标记的属性使用, 并 而在标记中多次或一次调用这

bGiraffe 2063

Matlab实战:水声信号DEMON谱分析从入门到精通(附完整源码)

本文详细介绍了使用Matlab进行水声信号DEMON谱分析的完整流程,从基础理论到实战应用,涵盖信号预处理、包络提取、频谱分析等关键步骤,并附完整源码。特别针对水声通信中的低信噪比环境,提供了多种优化方案和性能提升技巧,帮助读者快速掌握这一水下目标检测的核心技术。

gamma的博客 296

智能交通实战:基于YOLOv5/8/10的车辆违章行为检测系统(违停/压线/逆行识别)

在开始模型训练前,我们得明确要检测的违章行为,还要准备好对应的数据集,这就像做饭前要确定做什么菜、准备什么食材一样。通过本指南,你已经掌握了从技术选型(YOLOv5/8/10)数据准备模型训练到UI界面开发的全流程,搭建了一套完整的车辆违章行为检测系统。这个系统在实际应用中,能有效识别多种车辆违章行为,检测准确率高、速度快,可用于智能交通管理、停车场管理等多个场景。随着深度学习技术的不断进步,YOLO系列模型在车辆违章检测领域的应用会越来越广泛。

m0_71589036的博客 460

Tag标记中使用attribute和variable指令(习题六) --jsp程序设计

一、作业要求: p59 习题6,求圆和梯形面积 二、源码分析 2.1 lianxi6.jsp <%-- Created by IntelliJ IDEA. User: corrine Date: 2019/3/26 Time: 9:42 To change this template use File | Settings | File Templates. -...

Corrine951304828的博客 1463

Python 爬虫实战:爬虫代码打包为可执行文件

本文详细介绍了使用PyInstaller工具将Python爬虫打包为可执行文件的全过程。以豆瓣电影Top250爬虫为例,首先对比了主流打包工具,推荐选择跨平台的PyInstaller。通过编写完整的爬虫代码(包含异常处理和数据保存功能),演示了从环境准备、代码测试到打包配置的具体步骤。重点讲解了单文件打包、自定义图标等高级功能,并针对常见的"找不到模块"、文件体积过大等问题提供了解决方案。文章还说明了跨平台打包的注意事项,帮助开发者实现爬虫程序的无环境依赖部署,大幅提升程序的易用性和部署

2503_91057718的博客 2216

JSP 语法

介绍一下JSP开发中的基础语法。

oouuhnn的博客 1818

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JSP学习3-JSP语法

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。表达式元素中可以包含任何符合Java语言规范的表达式,但是。在JSP中,可以使用表达式标签(<%=,这实际上是一个方便的语法糖,它背后是使用jspWriter的out对象来输出的。因此,使用<%= %>来生成内容是一个简化的方式,等价于使用。

spy47_的博客 1954

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【JSP】JSP基本语法

尽管JSP的本质是Java Servlet,但是它的表层依然有自己的一套成文语法。学习JSP的语法,更有利于开发出简介、易维护(随时变化的需求)的代码!

极客-多重人格递归 625

JSP基础语法

注:本文点进链接中例子的JSP文件都在项目目录下(即WEB-INF上级目录下,与WEB-INF同一级) 运行原理及本质 1.用户在浏览器地址栏上输入http://localhost:8080/jspDemo/index.jsp,web服务器判断用户请求的资源是jspDemo应用中的index.jsp页面,web服务器在jspDemo应用中找到index.jsp,启动JSP翻译引擎,将index....

乘风晓栈的博客 547

jsp 语法

servlet 一种技术,也是一个在服务器端的程序,用于处理http请求tomcat 是一个容器,为servlet 提供了一个环境,根据请求的url决定将请求交给哪一个servlet+++

2401_87576048的博客 859

JSP 语法详解

HTML 注释 在客户端显示一个注释. JSP 语法 ] --> 例子 1 在客户端的HTML源代码中产生和上面一样的数据:  例子 2 --> 在客户端的HTML源代码中显示为:  描述/r这种注释和HTML中很像,也就是它可以在"查看源代码/"中看到. 唯一有些不同的就是,你可以在这个注释中用表达式(例子2所示).这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。更

aa 1531

JSP基本语法

JSP(Java Server Pages)通过将动态代码嵌入到静态的HTML中,从而产生动态的输出

派森世界啃Bug(草)的可爱神兽~ 6243

【JSP】JSP的基础语法

文章目录JSP语法脚本程序示例声明示例表达式示例注释指令示例动作 JSP语法 脚本程序   脚本程序(scriptlet)可以包含任意量的Java语句、变量、方法或表达式。   语法如下: <% Java Code %>   也可以改写成下面的XML语法: <jsp:scriptlet> Java Code </jsp:scriptlet> 示例   示例代码: <%@ page contentType="text/html;charset=UTF-8"

qq_35650513的博客 1198

JSP标准语法

1、JSP的注释语法: 其中,comments是你可以添加的任意文本注释,但是不能使用“--%>”, 如果非使用不可,请用“--%\>” 实例: FileName:helloworld.jsp Author:rossini Date:2004-1-29 Note:显示一个"Hello World!"信息 --%> JavaServer Pages Sample-Hello World!

hdyall的专栏 1023

jsp语法

1.JSP(全称Java Server Pages)是由公司主导创建的一种标准。JSP部署于上,可以响应客户端发送的请求,并根据请求内容动态地生成、XML或其他格式文档的网页,然后返回给请求者。JSP技术以语言作为,为用户的请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。2.包括JSP注释HTML页面内容JSP指令JSP脚本元素JSP动作元素3.JSP注释JSP注释有两种,一种是可以在客户端显示的注释,称为。

2401_88119538的博客 534

jsp java语法_JSP 语法

JSP 语法脚本程序脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。(其中声明的变量为局部变量)脚本程序的语法格式:中文编码问题如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码:pageEncoding="UTF-8"%>JSP声明一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些...

weixin_39942995的博客 232
下一篇: Scriptlet
cccccfive
博客等级 码龄10年 20粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值