社区
Java EE
帖子详情
<%! %>中为什么不能使用request
jiangtianyin
2010-04-17 09:27:09
在jsp中可以用<%! %>申明变量,但是为什么不能在其中使用request、out等内置对象呢,例如我滴代码:
<%!
String name=request.getParameter("userName");
String password=request.getParameter("userPwd");
%>
提示:request cannot be resolved
<% %>和<%! %>有什么区别?
...全文
307
21
打赏
收藏
<%! %>中为什么不能使用request
在jsp中可以用申明变量,但是为什么不能在其中使用request、out等内置对象呢,例如我滴代码: 提示:request cannot be resolved 和有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huhk
2011-02-20
打赏
举报
回复
<%! %>里面的变量,多线程访问会出问题。
wanglifeng595
2010-04-19
打赏
举报
回复
其实,<%! %>里的代码,就好比是在类里的代码,但却是在类的方法之外(也就是通常我们在类里申明的全局变量的地方)。而<% %>就相当是我们的main()方法底下的代码,当然是可以直接执行的。
而jsp页面就好比是一个类,毕竟最终还是要转化为servlet类,当然这不是我们所关心的(Tomcat从事的工作)
cd0425
2010-04-18
打赏
举报
回复
[Quote=引用 1 楼 unhappyway 的回复:]
<%! %>是用来声明变量和方法的,你把Java语句写在里边会报错的,Java语句应该写在<% %>里。<%! %>
里的内容也可以写在<% %>里。
[/Quote]
对的
naruto__
2010-04-18
打赏
举报
回复
[Quote=引用 1 楼 unhappyway 的回复:]
<%! %>是用来声明变量和方法的,你把Java语句写在里边会报错的,Java语句应该写在<% %>里。<%! %>
里的内容也可以写在<% %>里。
[/Quote]
that‘s it
keephope
2010-04-18
打赏
举报
回复
<%!
%>
里面写的方法和变量都会作为静态的方法和变量,会消耗服务器资源,同时也有可能引发多个变量同名的问题,记得好像是这样的
因此基本所有的代码都需要写到
<%
%>
里面
同事,在页面写方法是一种非常愚蠢的行为。完全忽略了JAVA的代码重用的意义
神之泪花
2010-04-18
打赏
举报
回复
[Quote=引用 1 楼 unhappyway 的回复:]
<%! %>是用来声明变量和方法的,你把Java语句写在里边会报错的,Java语句应该写在<% %>里。<%! %>
里的内容也可以写在<% %>里。
[/Quote]
+1
声明的方式不同
wwwrrrmmm
2010-04-18
打赏
举报
回复
学习JSP最好的办法是看它生成SERVLET之后的原码。
不知道你是否看过。
如果是tomcat服务器,源码在work目录底下一直进去直到看到你的工程名。(发布是发布在webapps底下)
你去看下,<%%>里面的东西。服务器将它变成java代码放在_jspService这个方法里面。
<%!%>这里面的代码,是放在class ***{这里面的},类似于我们定义类的属性。
所以。当然,你能够像下面这样子用吗?
class a{
request.getparameter().......
}
当然不行。
另外还有就是import语句。。
当然就是像JAVA里面放在类外面的import一样了。放的位置不同,功能也是不一样的。。够明白了吧
longlikema
2010-04-18
打赏
举报
回复
申明公共变量的 你拿来处理逻辑
不识别!!!
fiaryeli520
2010-04-18
打赏
举报
回复
顶1楼
sm521
2010-04-18
打赏
举报
回复
顶1楼
leon_xiao
2010-04-18
打赏
举报
回复
<%!
xxx
%>
会被编译为servlet里面的 成员, 试想写个servlet的方法。
老马888
2010-04-18
打赏
举报
回复
申明公共变量的 你拿来处理逻辑不识别!!!
angel
2010-04-18
打赏
举报
回复
1楼正解,<%! %>是用来声明变量和方法的,为了让程序员写的代码读起来更容易
licip
2010-04-18
打赏
举报
回复
[Quote=引用 4 楼 huhk 的回复:]
建议楼主看一下jsp编译后生成的servlet就知道了。
[/Quote]用<%! %>申明的是类里面的属性,或方法,用<% %>申明的是:类方法_jspService中的局部变量。
van_bo11
2010-04-18
打赏
举报
回复
学习。。。。
huhk
2010-04-18
打赏
举报
回复
建议楼主看一下jsp编译后生成的servlet就知道了。
dut703
2010-04-18
打赏
举报
回复
怎么定义的,你就怎么来
hfliyy
2010-04-17
打赏
举报
回复
他怎么定义我们就怎么用吧,源码又不是我们写的。
weberwong
2010-04-17
打赏
举报
回复
需要主动传进去,这样就可以了
<%!
private void test(HttpServletRequest request, HttpServletResponse response)
{
}
%>
<%
test(request, response);
%>
编程学童
2010-04-17
打赏
举报
回复
<%! %>是用来声明变量和方法的,你把Java语句写在里边会报错的,Java语句应该写在<% %>里。<%! %>
里的内容也可以写在<% %>里。
JSP
中
<%%> 和 <%!%>的区别
%>
中
,因为方法
中
不能
再次定义方法。而输出/调用语句都是在_jspService()方法
中
,因此输出的变量是取就近原则,调用的方法则是正常调用。 即 <%%>的变量优先输出 <%!%>的方法只会涉及<%!%>
中
的变量,与<%%>没有任何...
jsp页面的全局变量<%! %>声明
一般喜欢把页面里多处要用到的变量设置成全局变量,如: ... if(
request
.getParameter("operation")!=null) ID =
request
.getParameter("operation").trim(); 当ID在前一次赋过初值后,...
jsp页面
中
的
中
的<%= %>判断是否相等
于是想了想,既然<%=a %> 没有问题,那么是不是把'Android' 整个换成一个变量,即在表达式
中
在申明一个变量b <% String a =
request
.getHeader("User-Agent"); String b = "Android"; String android...
一些常用的写法
常用固定写法 引入jstl标签写法,注意前提是已经导入了两个相关jar包 <%@ taglib uri=... 找到根目录 ${pageContext.
request
.contextPath } 设置响应字符编码 resp.setContentType("text/html;chars...
Django 加载静态资源及<!DOCTYPE html>标红解决办法
解决pycharm社区版 在
使用
Django框架时,
使用
{% load static %}语句失败的问题,提出其他方法实现静态资源的引入。
Java EE
67,512
社区成员
225,885
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章