各位大侠小弟碰到一个问题如下:有一个用C做的客户端,他会固定通过http方式发送一个请求过来,格式大致如下:http://localhost/myapp/show?num=12&ste=1&work=2他的程序每隔5秒发送一次。来给最新的数据。问题在服务端。我要把这个请求中的数据显示在一个页面上show.jsp  。服务端我这边的思路:当点击转接到show.jsp这个按钮的时候,发送一个参数 ifon 到servlet。当servlet接收到这个ifon参数的时候,把其他接收到得参数 num ste work 转发到 show.jsp 上。如果servlet没有接收到这个ifon 这个参数,就是ifon为空的时候。就对num ste work做丢弃处理。这个思路对不对。还是说有其他方法来做?比如spring什么的。求教啊 

解决方案 »

  1.   

    代码部分,在servlet中该如何处理这个url发送过来的请求。他是异地通过IP来访问我这个地址。我这边能接收到页头数据吗?要做保存吗?还是怎么搞?大哥大姐们帮帮忙啊
      

  2.   

    不管它怎么访问,反正它的request里面带有参数。那你在servlet用
    request.getParameter("num");
    request.getParameter("ste");
    request.getParameter("work");来接收它的参数,并存在一个位置。当你在别一个客户端的页面上点击“查看”按钮时,在另一个servlet里把那些值取出来显示给show.jsp
      

  3.   

    关键是怎么保存?我servlet里是这样写的:
     String num = req.getParameter("num");
     String updown=req.getParameter("updown");
     String work = req.getParameter("work");
     req.setAttribute(num, num);
     req.setAttribute(updown, updown);
     req.setAttribute(work, work);
     System.out.println(num);
     System.out.println(updown);
     System.out.println(work);
    RequestDispatcher  requestDispatcher=req.getRequestDispatcher("viewshow.jsp");  
    requestDispatcher.forward(req,resp);
    然后viewshow.jsp里是这样写的:<body>
      <%
       request.setCharacterEncoding("UTF-8");
       String num = request.getAttribute("num");
       String updown=request.getAttribute("updown");
       String work = request.getAttribute("work");
      %>
      <div>
      <%out.println(num);%>
      <br>
      <%out.println(updown);%>
      <br>
      <%out.println(work);%>
      <br>
      </div>
    </body>
    如果该JSP页面是个简单的文字页面。是可以跳转的,tomcat里也能打印出参数值。但是要是JSP里写了接收参数的代码。就会报错。参数传不过来。
      

  4.   

    都不是一个请求,当然不能这样啦。
    C做的客户端访问是它的请求,你jsp页面是另一个请求。你把值保存在static的变量里,显示jsp页面时再去取。
      

  5.   

    现在就是碰到这个问题我如果访问这个URL
    http://localhost/myapp/show?num=12&ste=1&work=2
    他是可以跳转到JSP页面的
    但是如果我单独访问viewshow.jsp
    http://localhost/myapp/viewshow.jsp
    是显示都为null
    或者单独访问该servlet
    http://localhost/myapp/show
    也全是NULL因为没有值传过来。
    那该怎么处理,是不是要把改servlet里的数值写入一个文件中然后访问JSP文件的时候再去读,那这样怎么做到实时呢?而且这样会不会对整个运行环境造成速度上的影响
      

  6.   

    因为 C 请求servlet 再到 跳转到JSP不是同一个请求,所以传的参数会丢失;试试:req.getRequestDispatcher("viewshow.jsp?num=12&ste=1&work=2");
      

  7.   


    写文件的效率肯定没有直接读内存来得快啊。不是说了存在static变量里么?楼主直接忽视4楼了?
      

  8.   

    存在static变量里?不懂啊我存在session里都不行因为不是在一共回话中    cookie更不行了
    现在想存在XML中,不停的改写该文件。
      

  9.   


    不行的这个URL是C客户端发的。我是要访问viewshow.jsp的
    我单独访问的时候,肯定是空值。因为servlet无法通过一种方式来把值传递过来
      

  10.   

    session肯定不行啦。不是同一个会话肯定取不到值的。楼主,你先了解一下java里面的static(静态)变量。全局的。
      

  11.   

    static 变量能保存在服务端的内存中吗?保存的时间有多长?我原先的想法是想servlet里是不是可以直接把一个请求中的参数值
    直接转发给另一个JSP页面,在同一个servlet中。
    看来好像不行。我这边还是尝试用读写文件的方式来做不过不知道性能怎么样
      

  12.   

    只要你服务器一直运行在,那么static的变量就不会消失。你那个想法必须要是一个会话才行。