`
fhtwins
  • 浏览: 8404 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

MVC设计方法,如何应对首页就显示从数据库中取出的数据?

阅读更多
MVC设计方法,如何应对首页就显示从数据库中取出的数据?
JavaWeb适合做WEB系统,这个都众所周之,但是它在做网站上是否也很适合呢?我就有个烦恼一直困扰着我。我想用javaweb技术做一个博客系统,采用MVC技术,厌倦了那些jsp页面上大块大块的<%Scriptlet%>代码,所以本着MVC的设计思想,我不想让我的jsp页码中出现这些东西,我首先想到的是jstl标签,但是还是有个问题令我无法理解。就是我的博客首页的数据就开始从数据库中取出来,这个就让我有点头大了,没有被点击的按钮我就不大好调用Servlet,难道首页的数据从数据库中取的代码,都要写在index.jsp上嘛?这不岂不是让Jsp承担了控制层的责任。另外,从首页上依次点击的每个子页面,比如“我的文章”、“我的相册”、“我的日志”等等,这些都是页面直接从数据库中取数据,不像添加个什么东西似的,点个button,然后提交给一个Servlet,Servlet负责调用数据库,并将结果传给视图层。这个直接从主页上点一个链接到子页面上就要显示从数据库中取出的数据,这个取数据的过程代码似乎又要只得放在Jsp页码中了,因为根本不好提交给哪个Servlet嘛。痛苦!!!我也在自学Struts,Spring,JSF,它们能解决我的问题嘛?可能是我的技术不到家,还不知道有什么方法解决我这个问题。忘高手们指点下,最好能给个简单的示例。跪谢!!!!
分享到:
评论
43 楼 huangking 2008-12-08  
ray_linn 写道
我倒满好奇这个疑问是怎么产生的,所以路过来看看。


不过既然来了就多打两个字。

首页是啥,是在web.xml里指定的,你可以指定是index.jsp,当然也可以指定是index.do这个controller, index.do自然可以去调用数据库,然后把数据推向view的index.jsp.


正解满,通常我做的时候V层模板(JSP/Velocity...等)都是放在WEB-INF目录下..
而访问通过controller来转发...至于好处就不多说...
42 楼 tangjunfy 2008-12-08  
还要回复才能看??
41 楼 xwycs 2008-12-04  
首页可以直接使用HTML静态页面,用AJAX直接去抓数据,至于怎么抓就看你用的是什么数据格式罗,以及service层的组织方式。
40 楼 wojiaojiangnan 2008-12-04  
toolkit 写道
index.jsp 上直接<c:redirect到index.do就可以了啊

39 楼 cpdw 2008-12-03  
1、建个Servlet,让他在系统时就加载
  <servlet>
    <servlet-name>AppUtil</servlet-name>
    <servlet-class>com.abc.servlets.TestServlet</servlet-class>
    <load-on-startup>5</load-on-startup>
  </servlet>
2、在servlet中操作数据库,获取你要的数据,存到applicationContenxt中就可以了
38 楼 wyfshchaoya 2008-12-01  
走 来看看!
37 楼 wyfshchaoya 2008-12-01  
我的DAO中间层,之前在做项目的时候用过取数据,,不过后来发现直接用XML来取数据做更快了...学java的大家可以去试试.......同时还希望大家多多指点....谢谢!
36 楼 ddt2008 2008-11-30  
手头没用例子,简单给写写,不知道这样是否对你有帮助。

1、servlet 读数据库,返回 xml ,xml 根据你的实际数据编写
   XML 可以参看 jdom,如果简单也可以自己写

2、建立index.jsp
   <div id="list">存放首页要显示的数据列表</div>
   <script type="text/javascript">
      //doServlet 采用异步方式取 servlet 返回的xml,将XML拆解后显示到 div list 中
      doServlet();
   </script>

3、javascript doServlet()
    我用了 prototype-1.6.0.2.js

    function getServlet(){
    $("list").innerHTML = "正在读取请稍候......";
    param = "id=1233";  //servlet.do?id=1233

    var ajax = new Ajax.Request("servlet.do",{
    method: "post",
    parameters: param,
    onSuccess: r_onSuccess,
    onFailure:r_onFailure}
        );
    }
   

    function r_onSuccess(request)
    {    
       //需要解开XML数据,生成自己合适的显示方式
       $("list").innerHTML="读到的数据";
     }

    function r_onFailure(request){
       alert("数据读取失败");
    }


程序大概是这样把,我用的是 struts 1.x
35 楼 mosheo 2008-11-26  
请问楼主不知道异步加载这个概念吗
请求index页面时先吧静态页面显示出来
然后再通过异步请求到后台取数据
这样不是很好吗
34 楼 gloomyd 2008-11-25  
用了velocity这个东西之后  就觉得jsp很不好用

推荐大家去用用velocity这个东西吧
33 楼 hgalois 2008-11-24  
欢迎页(index.html)一般我都喜欢这样搞
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Welcome.do">
</head>

<body>
<p>Loading ...</p>
</body>
</html>

还可以给这个页面加些漂亮的东西,可以让用户在等待的同时欣赏
比如:在页面上显示个漂亮的MM
32 楼 zhaojuan8 2008-11-24  
首页的数据一般要求速度要快, 而且数据量也不大,建议放置在applicaction进行维护这样速度就会很快,而且也允许是.jsp存在
31 楼 hansonmo 2008-11-24  
使用AJAX无论哪个页面都可以取数据阿

不然就用JS框架,我最近在学Ext,很方便啊,

没LZ想得那么复杂的

30 楼 javazhou 2008-11-22  
你说用mvc,就得充分利用他们的分工角色啊,一般的index.jsp中只放一句话:response.sendRedirect("xxxxServlet"); 让他一加载就跳到servlet调用业务逻辑方法取出数据,最后用request.getRequestDispatcher("xxx.jsp").forward(request, response)显示数据;
29 楼 caiceclb 2008-11-22  
首页的内容。我一般都存入application里了,然后jstl+EL调用,不晓得这样好不?
28 楼 totobacoo 2008-11-22  
抓狂 。。。
27 楼 witcheryne 2008-11-21  
xgs_1983 写道
用AJAX 就可以

页面加载的时候,向servlet发送一个请求(或者是空请求)。。然后初始化页面数据??
   
26 楼 java9981 2008-11-21  
lz应该分清MVC模式跟事件驱动设计模式的区别,要用MVC的观点看问题,别搞混了。就显示主页而言,c是接收用户的显示主页的请求,这当然不能用jsp接收,要用servlet。一般的主页cm都省略了,所以才会找不到c在哪。
25 楼 xgs_1983 2008-11-21  
用AJAX 就可以
24 楼 mayday85 2008-11-21  
egooooo 写道
这是个很高深的问题,大家都严肃点


哥们太搞笑了

至于说首页不应该是.do .action

用cache应该就能解决访问慢的问题了吧 其实jsp也是servlet 慢能慢到哪去?我打开校内一直很慢

相关推荐

    用Ajax实现文本框自动完成功能(基于JSON数据,从数据库取数据)(原创)

    本事例采用英文单词数据库,当用户在文本框中输入的字符数为两个及以上时(可以通过completeLen = 2来设置,此功能主要是防止输入字符太少时,匹配项过多,反而影响用户体验),自动从数据库中取出与之匹配的其它...

    解决MVC下分页显示的问题

    前几天做一个系统,用到的是Tomcat+struts+Mysql的MVC框架。由于很多模块都需要分页,网上很多方法都不是很适合,自己想写一个分页的...他说常见的方法每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.

    php实现最简单的MVC框架实例教程

    各个层次:view即是视图,也就是web页面,control即是控制器 向系统发出指令的工具,model 简单说是从数据库中取出数据进行处理。 MVC的工作流程如下: 1. 浏览者-&gt;调用控制器,对此发出指令 2. 控制器-&gt;按指令选取...

    基于JavaScript的数据可视化实验室后台管理系统源码+项目说明(期末大作业).zip

    最后在spring-mvc配置文件中配置参数解析器,直接在controller类中需要用这个注解的方法or参数上添加注解就可以自动验证token。 1.2 分页功能 * 后端按照前端的需求将分页所需数据查询出来。后端只需要提供总页数...

    jsp+servlet+javabean新闻发布系统精品毕业设计

    1.新闻分类:(国际 娱乐 体育 等)新闻分类需要从数据库中动态取出(因为后台中有添加删除修改分类的功能), 可以只显示4—5个分类,后面加个“更多&gt;&gt;”链接,来罗列所有分类 2.新闻搜索:(可以选择分类)以新闻标题...

    课设-基于B+树数据库的图书管理系统c++实现源码(含程序说明+函数文档说明等).zip

    因此在访问文件时,一次仅能在index * BUFFER_LENGTH上取出BUFFER_LENGTH长度的数据,其中index是第几个MetaData(可理解为元数据在文件下的地址)。至于MetaData中存储内容的含义,与数据表的含义有关。 【备注】 1...

    初识php MVC

    view即是视图,也就是web页面,control即是控制器 向系统发出指令的工具,model 简单说是从数据库中取出数据进行处理。 Mvc的工作流程:第一步 浏览者-&gt;调用控制器,对此发出指令  第二步 控制器-&gt;按指令选取一个...

    Java面试宝典2010版

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 7、写一个Singleton出来。 8、递归算法题1 9、递归算法题2 10、排序都有哪几种方法?请列举。用JAVA实现一个...

    最新Java面试宝典pdf版

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

    Java面试笔试资料大全

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

    Java面试宝典-经典

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

    java面试题大全(2012版)

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

    JAVA面试宝典2010

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

    Java面试宝典2012版

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用...

    java面试宝典2012

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 78 7、写一个Singleton出来。 81 8、递归算法题1 84 9、递归算法题2 85 10、排序都有哪几种方法?请列举。用JAVA...

    Java面试宝典2012新版

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 71 7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA...

Global site tag (gtag.js) - Google Analytics