各位大侠小弟碰到一个问题如下:有一个用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什么的。求教啊
request.getParameter("num");
request.getParameter("ste");
request.getParameter("work");来接收它的参数,并存在一个位置。当你在别一个客户端的页面上点击“查看”按钮时,在另一个servlet里把那些值取出来显示给show.jsp
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里写了接收参数的代码。就会报错。参数传不过来。
C做的客户端访问是它的请求,你jsp页面是另一个请求。你把值保存在static的变量里,显示jsp页面时再去取。
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文件的时候再去读,那这样怎么做到实时呢?而且这样会不会对整个运行环境造成速度上的影响
写文件的效率肯定没有直接读内存来得快啊。不是说了存在static变量里么?楼主直接忽视4楼了?
现在想存在XML中,不停的改写该文件。
不行的这个URL是C客户端发的。我是要访问viewshow.jsp的
我单独访问的时候,肯定是空值。因为servlet无法通过一种方式来把值传递过来
直接转发给另一个JSP页面,在同一个servlet中。
看来好像不行。我这边还是尝试用读写文件的方式来做不过不知道性能怎么样