这两天在学习JSP+servlet时遇到这个问题,servlet页面设置的值传到JSP页面为空。
若单独** 运行servlet 页面可以正常显示(应该可以认为 web.xml 数据库 执行类 都没有问题),但运行jsp 页面则无法显示从servlet 传过来的值**。
其中用EL标签什么都显示不出来 ,而用<% %>来显示 为Null。
servlet 中 设置如下 //page 与 postList 为页面对象 和 文章列表
request.setAttribute("page", page);
request.setAttribute("postList", postList);
//测试用例
String tom="hahahah";
request.setAttribute("yn", tom);
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").include(request, response);
``````
JSP中这样设置的
<p>
${page.getCurrentPage() }
${requestScope.yn }
${yn }
</p>```
```在网上寻找问题时,**觉得原因是在加载JSP页面的时候,没有加载servlet类**。因为我没有采用 提交表单 或者 超链接等形式来加载对应的servlet类。我的想法是在加载这个jsp 页面的时候就显示从servlet传来的值。 于是我查找了一下方法,有这么几种
1、include (排除,include 标签只能包含jsp页面 不能包含servlet页面)
2、采用AJAX 异步,我试了代码如下<script type="text/javascript">
function a(){
$.ajax({
url:"GetPostServlet",//servlet文件的名称
type:"GET",
success:function(e){
alert("servlet调用成功!");
}
});
}
</script>
</head>
<body onload="a()">
加载JSP页面的时候成功提示“servlet调用成功!” 但页面依然没有数据显示3、直接修改web.xml 把welcome 路径改为 servlet 映射 也没有效果4、采用<%response.sendRedirect("GetPostServlet"); %> 这种方法可行,但是页面的地址会被改变 从index.jsp 变成servlet类的名称
5、目前采用 forward 可以成功。通过if 来判断传值是否为空, 然后 forward 到servlet类。比较好奇为什么之前的 js 代码会没有效果。因为是初学,还不太了解,想请教一下。还有就是还有没有什么别的方法可以在加载JSP时 加载servlet类(一个或者多个)传值到JSP页面。
若单独** 运行servlet 页面可以正常显示(应该可以认为 web.xml 数据库 执行类 都没有问题),但运行jsp 页面则无法显示从servlet 传过来的值**。
其中用EL标签什么都显示不出来 ,而用<% %>来显示 为Null。
servlet 中 设置如下 //page 与 postList 为页面对象 和 文章列表
request.setAttribute("page", page);
request.setAttribute("postList", postList);
//测试用例
String tom="hahahah";
request.setAttribute("yn", tom);
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").include(request, response);
``````
JSP中这样设置的
<p>
${page.getCurrentPage() }
${requestScope.yn }
${yn }
</p>```
```在网上寻找问题时,**觉得原因是在加载JSP页面的时候,没有加载servlet类**。因为我没有采用 提交表单 或者 超链接等形式来加载对应的servlet类。我的想法是在加载这个jsp 页面的时候就显示从servlet传来的值。 于是我查找了一下方法,有这么几种
1、include (排除,include 标签只能包含jsp页面 不能包含servlet页面)
2、采用AJAX 异步,我试了代码如下<script type="text/javascript">
function a(){
$.ajax({
url:"GetPostServlet",//servlet文件的名称
type:"GET",
success:function(e){
alert("servlet调用成功!");
}
});
}
</script>
</head>
<body onload="a()">
加载JSP页面的时候成功提示“servlet调用成功!” 但页面依然没有数据显示3、直接修改web.xml 把welcome 路径改为 servlet 映射 也没有效果4、采用<%response.sendRedirect("GetPostServlet"); %> 这种方法可行,但是页面的地址会被改变 从index.jsp 变成servlet类的名称
5、目前采用 forward 可以成功。通过if 来判断传值是否为空, 然后 forward 到servlet类。比较好奇为什么之前的 js 代码会没有效果。因为是初学,还不太了解,想请教一下。还有就是还有没有什么别的方法可以在加载JSP时 加载servlet类(一个或者多个)传值到JSP页面。
解决方案 »
- 上传前获取视频文件的大小,播放时长
- 想问一个用户登陆问题
- 我的ECLIPSE环境出现了以下这个问题,请各位帮帮忙,在线等!
- 紧急求助:JSP程序以前正常,现在出错
- ■今天发现,中国最大的JSP开发文档中心资料巨多巨好!强力推荐!好就回复■
- java与flex通过blazeds通信连接不上
- 现在有多少大网站使用jsp做的?
- 往数据库写如一个时间类型的错误
- JSP连接Oracle8.17(本地)不行,连接远程Oracle8.05就可以,为什么?
- 高兴送分,我愿意
- 如何解决org.apache.solr.client.solrj.SolrServer 无法在springmvc中注入
- MYSQL 用存储过程建表 参数作为表名
是使用ajax请求servlet中的数据吗?还是在jsp中加载servlet的数据呢?
不好意思可能没描述清楚。
1、实现的功能:加载jsp页面时显示一个列表,列表中的数据已经储存在数据库中。通过DAO 取出数据,用servlet 将数据传给JSP页面
2、出现问题: 在我加载jsp时页面没有数据显示,但直接加载servlet 则有数据显示。(表明直接加载jsp页面时,对应的servlet没有加载,数据未能传给JSP页面)
3、尝试解决:用AJAX 异步加载 servlet页面 。
4、目的:在加载JSP页面的同时,能够加载servlet ,从而把数据传到JSP页面中。
结果,直接加载JSP页面时,AJAX运行但,servlet 中的数据未能传到JSP
另外,通过回复我发现我可能理解错了AJAX的用处,AJAX可以请求servlet中的数据,但似乎不能再加载JSP页面时,同时加载servlet,来达到把servlet 中的数据,传到JSP页面中。最后,想请教一下,还有哪些方法可以在加载JSP页面时 同时加载servlet 来达到打开jsp页面就可以看到储存在数据库中的数据的目的。