有两个jsp1,jsp2页面和一个servlet(Dispatch):
***************************jsp1.jsp*****
   <form action="Dispatch">
     <input name="id" type="text">
     <input type="submit" value="ok">
   </form>***************************Dispatch.java*****
...
String id=request.getParameter("id");
request.setAttribute("ID",id);
...
***************************jsp2.jsp*****
   id=<%=request.getAttibute("ID")%>
Servlet的功能难道仅仅就是从jsp中取得参数,再传送给下一个jsp页面吗?如果是这样的话,那我为什么不用传统的<form action="jsp2.jsp">,在jsp2.jsp中可以直接用request.getParameter("id")也可以取得表单传过来的值啊?
所以我想知道Servlet主要的功能是什么,有没其他逻辑处理呢?
如果有其他逻辑处理的话,是不是都要放在javabean中处理呢?
比如我要实现以下的功能:
  我要验证jsp1.jsp表单所输入的id在oracle数据库中是否存在,而且如果有的话,将满足id条件的记录全部显示在jsp2.jsp中.  请问大概的实施步骤是什么?????????以前我是把所有的连接数据库语句,判断等都在jsp中操作,我知道这样效率是不高的?
请问怎么做才能将jsp,servlet,javabean有机的结合起来,并能显示各自的特点(以此功能为列)?

解决方案 »

  1.   

    楼主可以用jsp的model2模式,jsp做显示,servlet做控制,javabean做业务处理
    也就是mvc
      

  2.   

    你这样一个小应用的当然不能体现servlet的逻辑跳转的优势
    设想的你的页面间的关系很复杂的时候,就能体现优势了
    jsp主要用来显示
    servlet用来页面间的跳转
    javabean处理逻辑这就是MVC的设计模式你把查询数据库的操作放在javabean里面jsp1.jsp------->(发送参数到servlet)servlet接受请求参数,然后调用javabean得到数据库数据然后把数据放在request里面 转向到jsp2.jsp显示这样逻辑就很清晰,也很容易维护
    当然对于小的程序,这样麻烦多了自己体会一下
      

  3.   

    mvc结构主要是针对大中型系统开发,如果你开发的系统不是太大的话你就可以不要servlet,
    我觉得开发主要是实事求是的去选择开发模式,并不是哪个先进就用哪个,就像楼主自己说得如果只是写个小程序就用mvc模式是很麻烦的
      

  4.   

    真的很感谢"曾曾胡",你所说的:
    "servlet接受请求参数,然后调用javabean得到数据库数据,然后把数据放在request里面 转向到jsp2.jsp显示"如果要循环取出数据库中满足条件的记录传给jsp2.jsp,我知道在servlet中是很好实现的,关键怎么把这些许多数据全部传给jsp2.jsp呢?以前都是在jsp2.jsp上用一个记录集循环取出并显示在页面上.还有一个问题就是在用forward("YY.jsp")跳转后,URL地址栏中显示并不是YY.jsp,可能是直接装载在这个servlet中吧,那我怎么才能在跳转的时候看到要跳转的页面呢,比如这里的YY.jsp??
      

  5.   

    第一:你可以把数据封装并序列化,然后再jsp页面中取即可
    ------------------------------------------------------第二:forward("YY.jsp")是在服务器端执行的,浏览器不知道,所以在地质栏不显示。如果要显示的话,用sendRedrict("YY.jsp");
      

  6.   

    forward("YY.jsp") 客户浏览器地址还是原来的,而不会变成YY.jsp这样会更安全,一般都会跟parm() 一起使用传参
    如果想看到YY.jsp 就用Redrect 重定向~~
      

  7.   

    用sendRedrictrequest范围的数据不会共享把数据放在request里面就可以了或者每次查询一部分显示