是的,只能从request中读取(当然你若通过session或者其他来实现setAttribute方法的话,那就在相应的范围对象里面获取);因为jsp文件使用的变量与java文件使用的变量是不同的(你也可以通过自己的测试来说明的,如果去掉request.setAttribute()语句那么即使你取值的变量拼写与java代码中变量的拼写是一样的那也是取不到的)
这可以用一个比喻来说明一下(当然这是我的理解,仅供参考):A类要使用B类的变量,那么就要在A类中生成一个B类的实例,然后才能使用B的变量,我相信在这里的request.setAttribute()这个方法的执行过程也是包括一些对象的实例化和值的赋予的,因为这个语句本来就是为了能够方便我们写代码而封装而成的,至于它具体是如何实现的,以后再研究吧,现在能找到如何操作这个黑箱就行了。
不知道你解决问题了没,我看了你的例子倒是想明白可。
实例化变量是要申请内存储存值得,set申明的只是引用关系。你例子里没有创建有界对象,<c:set value=
"${fruits}"
var=
"fruit"
scope=
"request"
></c:set> 这一行的 ${fruits} 是空的。只要你在上面把list扔到request里或者其他三个对象里,这才创建出一个有效的有界对象,这个值才能获取到你的List
可以一起使用的。web.xml是对javaweb程序的全局配置,tomcat提供服务时,你的应用程序入口。不知道你用的Servlet是单纯的Servlet还是基于ssh框架的,基于框架的话使用的注解是框架中的类提供的例如struts,spring,hibernate等,如果是不基于框架的servlet这个我倒是没试过。导入框架后肯定能使用,希望对你有所帮助。
是requestScope
在eclipse里是ctrl+alt+下箭头
你是不是导进来的项目 jdk版本不一致?
<%@ page import="java.util.*"%>