JSP 中<% %>内的java代码块存放在了哪里 初学jsp有个疑惑<% String str="this is a test of jsp";%>我想用struts标签取这个值,该怎么做。这段代码是否只存在java虚拟机上,或者是页面的application中?还是怎么样的。JavaJSP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,jsp文件都编译成class文件来运行的,在jsp中<% %>的代码,如果我没记错的话 应该是在编译之后的servlet的service方法内部,<%=//要输出的数据%> 应该是直接输出,<%!//声明语句 %>此处定义的变量将成为此jsp页面的全局变量,此处定义的函数将成为此jsp页面的公共函数。 <% String str="this is a test of jsp";%> 这段代码,在下面如果你想输出str应该可以<%=str%>来直接输出,使用的话也可以<% str.equals("");%>类似的使用 你可以写一个简单的jsp页面 然后看看它编译之后的class文件就比较清楚了。 哦,懂了。也就是说一块<% %>代码就是一个servlet <%= %>相当于其中的out.print()方法,是这样么?还有个问题,如果我jsp页面有两块<% %>的java代码,那么这两个是否生成在同一个servlet,或者是生成了两个servelt,jsp按照代码顺序分别编译然后返回相应值,互不干扰? 感谢你的回答,我看了下tomcat里面的jsp java文件,现在知道了,每个jsp页面只生成了一个servlet.谢谢你的帮助!! 一个jsp页面编译成一个servlet不是说一块<% %>代码就是一个servlet,而是一个<% %>相当于servlet的service()方法里的一段java代码就像你<% String str ="123" ;%>编译下来应该是servlet.service(request,response){ String str ="123" ;}应该是这样的。 明白就好,我也太久没接触servlet了,忘的差不多了。框架给人都用傻了。。明白就结账吧 在jsp中掺入java代码,用struts标签好像不能应用java中的变量,以前我也想用来着,好像不能解决,具体什么原因没做深入研究 你可以在tomcat中查看jsp页面编译之后的类文件 这个,我稍稍研究了下,应该不能用 struts取jsp中的值(除非已经把值传到request或者session中)。执行过程总结了下,大致如下,请大家指正。在jsp页面中嵌入java代码,在服务器解析的时候是把 jsp全部转成java代码,并且产生一个servlet,servelt中将页面元素以out.print方法返回给前台这个过程中容器(tomcat)将servlet编译成class文件并且在jvm中执行变化过程:jsp->java(servlet)->class->html我们接收到的页面已经是纯html文件了,而struts标签<s:property/>只能取得值栈和action stack中的参数。不知道对不对,请大家指正 LZ正解。其实想看struts标签能得到哪些值,直接用<s:debug>标签就能全部看到 关于jxls的问题。。 急着问大家一个关于tomcat的问题 tomcat关闭时报错Error occured while converting date. Jsp 循环复选框的问题求助 大家讨论一下(UP有分) 请教高手插入数据库的问题,谢谢! 用post,地址栏会出现提交的内容是怎么回事! 连接access时好象是找不到数据源(我有设),大家给些建议 我不知道topics.properties 应该放在什么地方 我的jdk中为什么没有servlet? httpclient跨服务器传递文件流怎么操作? 字符串处理问题。
<%=str%>来直接输出,使用的话也可以<% str.equals("");%>类似的使用
还有个问题,如果我jsp页面有两块<% %>的java代码,那么这两个是否生成在同一个servlet,或者是生成了两个servelt,jsp按照代码顺序分别编译然后返回相应值,互不干扰?
而是一个<% %>相当于servlet的service()方法里的一段java代码
就像你<% String str ="123" ;%>
编译下来应该是
servlet.service(request,response){
String str ="123" ;
}
应该是这样的。
servelt中将页面元素以out.print方法返回给前台
这个过程中容器(tomcat)将servlet编译成class文件并且在jvm中执行
变化过程:jsp->java(servlet)->class->html
我们接收到的页面已经是纯html文件了,而struts标签<s:property/>只能取得值栈和action stack中的参数。
不知道对不对,请大家指正
LZ正解。其实想看struts标签能得到哪些值,直接用<s:debug>标签就能全部看到