`
fhtwins
  • 浏览: 8540 次
  • 性别: 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 慢能慢到哪去?我打开校内一直很慢

相关推荐

    SSM+Echarts+Mysql实现的从数据库获取数据展示图表

    在本案例中,Spring MVC将处理从前端发送的数据请求,调用后端服务获取数据库中的数据。 **MyBatis**: MyBatis是一个持久层框架,它允许开发者将SQL查询直接映射到Java代码中,降低了数据库操作的复杂性。在SSM...

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

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

    基于MVC设计模式shop完整项目代码

    开发者可以使用JSP、Thymeleaf、FreeMarker等技术实现视图层,将数据从模型中取出并渲染到页面上,以展示给用户。 **三、控制器(Controller)** 控制器作为模型和视图之间的桥梁,处理用户请求,调用模型进行业务...

    基于mvc的jsp网上商城的毕业设计+开题报告+源码

    【标题】基于MVC的JSP网上商城毕业设计是一个典型的Web应用开发实例,它结合了开题报告、源代码和数据库文件,为学习者提供了一个完整的项目范例。这个项目利用了Java技术栈中的JSP(JavaServer Pages)和JavaBean,...

    从数据库中取出最近三十天的数据并生成柱状图

    1. 数据库操作:在这个场景中,开发者从数据库中查询了最近30天的数据。这通常涉及到SQL查询,具体使用了一个`SELECT`语句来获取特定时间范围内的记录。SQL查询的关键部分是`date_sub(now(), interval 30 day)`,它...

    基于C#MVC项目创建的各种数据处理

    7. **视图模型(ViewModel)**:ViewModel是专为视图设计的简单类,通常包含了从模型中取出并处理过的数据,以及可能需要的辅助属性和方法。ViewModel帮助实现了视图和控制器之间的数据传递。 8. **路由和URL管理**...

    使用servlet,jdbc将mysql中数据显示在jsp页面中

    7. **在JSP页面上显示数据**:在JSP页面中,利用JSTL(JavaServer Pages Standard Tag Library)或EL(Expression Language)表达式,从请求作用域中取出数据,并将其插入到HTML元素中。例如,可以使用`&lt;c:forEach&gt;`...

    基于servlet+javabean+jsp(MVC)的分页显示

    这样,数据从数据库中取出后,可以方便地转换为javabean对象,便于进一步处理和传递。 4. **分页逻辑**:Servlet在处理完查询后,会计算出总记录数和总页数,这些信息同样会被封装到javabean中,以便在视图层展示...

    Struts如何解决中文添加到数据库

    - 当从数据库中取出中文数据时,确保在JSP页面中使用正确的字符编码进行显示。 6. **国际化与本地化** - 如果涉及到多语言环境,Struts提供国际化支持。在资源文件(如message.properties或message_zh_...

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    2. 数据导出:相反,数据导出是从MySQL数据库中取出数据并写入Excel文件。这需要先执行SQL查询,获取需要的数据集,然后使用POI创建一个新的Excel工作簿和工作表,将数据逐条写入工作表的单元格。完成后,可以将工作...

    .NET MVC Redis 实现简单的抢购队列

    在.NET MVC中,模型负责处理业务逻辑,视图负责显示数据,而控制器则作为两者之间的桥梁,处理用户请求并决定如何响应。 接着,我们转向Redis。Redis是一个开源的、基于内存的数据结构存储系统,可作为数据库、缓存...

    Django 查询数据库并返回页面的例子

    以上代码片段展示了从视图中获取查询结果,然后在模板中显示这些数据的基本流程。通过这样的方式,我们可以将查询的数据显示在Web页面上。这个例子中的数据是通过名称过滤查询的,但在实际应用中,可以进行更复杂的...

    MVC的设计模式的小型电子相册的报告

    模型对象从数据库或其他数据源获取数据,并在需要时更新这些数据。 2. **视图(View)**: - 视图负责展示数据给用户,通常表现为用户界面上的各种元素,如表格、图表或文本。视图从模型中获取数据并呈现给用户,...

    简析MVC三层架构及流程.docx

    5. 如果是查询操作,将数据从数据库中取出,通过数据持久层,到业务逻辑层,再到控制器,再到视图层,最后呈现到用户面前。 MVC 三层架构的优点是: * 低耦合:模型、视图和控制器之间的耦合度较低,易于维护和...

    解决MVC下分页显示的问题

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

    实现JSTL展示数据

    8. **安全性**:JSTL的`fn:escapeXml`函数可以防止跨站脚本(XSS)攻击,确保从数据库取出的数据在显示时安全无害。 9. **页面设计**:在实际应用中,JSTL结合EL(Expression Language)表达式,可以实现动态渲染...

    jsp+javabean分页显示

    分页的基本思路是限制每次从数据库中取出的数据量,只加载用户当前查看的那一页。首先,需要计算总页数,这通常基于查询结果的数量除以每页显示的记录数。然后,根据用户请求的页码,确定从数据库中开始查询的位置和...

    SSM笔记-SpringMVC基本使用

    - `@PathVariable`:从URL路径中获取参数值。 - `@RequestParam`:从请求参数中获取值。 - `@ModelAttribute`:用于绑定表单数据到模型对象。 - `@ResponseBody`:将方法返回的对象直接写入HTTP响应体,通常用于返回...

Global site tag (gtag.js) - Google Analytics