我从网上找的代码,生成验证码图片用的,如下,去掉<%! 旁边的感叹号后就报错了,这个感叹号代表什么意思啊? <%@ page contentType="image/jpeg"%> <%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%> <%! Color getRandColor(int fc, int bc) {//给定范围获得随机颜色 Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } %> ……
2011-08-14 21:35
提问者采纳
<%!%>是声明标签 因为Jsp页在到tomcat的时候会被编译为java文件 jsp页面里面的所有东西都会包含在一个方法里 如果不用声明标签去声明这是个方法 就会报错了 因为方法里面不能有方法
-
提问者评价
-
谢谢你,谢谢大家啊
评论(4)
60
2
2015-4-30 13:11
轩辕渡痕
2014-9-11 23:10
zh369852264
2014-5-11 22:38
skitte
2012-10-26 13:38
L9237
|
感叹号的相关知识
- 2009-07-06DNF组队后队员头像左下角有一个电脑符号和一个感叹号 是我的... 16
- 2010-02-24感叹号等符号的符号由来 6
- 2011-05-02感叹号造句 121
- 2007-05-31感叹号的作用 553
- 2014-03-26dnf交易头像有感叹号
其他6条回答
2011-08-14 21:15
lyl7120
四级
<%! %>一般用于一行Java代码,一般常见于变量的定义。
<% %>一般用于多行java代码,即代码块。
你的程序很明显是“一行”,注意java语言中“一行”的概念不是编辑器中显示的一行,而是编译器认可的“一行”。
如:
int
i
=
10
;
看上去是5行,但编译器认为是“一行”
java中“行”的分隔符一个是“;”,另一个就是“{}”,即复合语句。
<% %>一般用于多行java代码,即代码块。
你的程序很明显是“一行”,注意java语言中“一行”的概念不是编辑器中显示的一行,而是编译器认可的“一行”。
如:
int
i
=
10
;
看上去是5行,但编译器认为是“一行”
java中“行”的分隔符一个是“;”,另一个就是“{}”,即复合语句。
评论
5
11
2011-08-14 21:16
yq12010902
四级
<%!
Color getRandColor(int fc, int bc) {//给定范围获得随机颜色
Random random = new Random();
if (fc > 255) fc = 255;
if (bc > 255) bc = 255;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}
%>
这是在jsp页面中写java脚本的语法,你去掉了当然会报错呀,如没有了语法,你说还能不能在页面上直接写java代码???
Color getRandColor(int fc, int bc) {//给定范围获得随机颜色
Random random = new Random();
if (fc > 255) fc = 255;
if (bc > 255) bc = 255;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}
%>
这是在jsp页面中写java脚本的语法,你去掉了当然会报错呀,如没有了语法,你说还能不能在页面上直接写java代码???
评论
0
8
2011-08-14 22:12
一个IT小兵
二级
<%@ %>、<%! %>、<% = %>等这些是jsp中的基本语法元素,<%! %>是jsp中的申明标签 ,如果去掉的话就变成表达式啦,加个!来区分