关于javaweb的时刻等待一个请求。

一个java web的工程,不仅有前端页面的那些功能,还有比如时刻等待一个从别处传来的指令,指令来的时候带一些参数,把这些参数处理
以后返回去,对这个指令处理时候是不经过前端页面的,就是时刻在等待指令来,而且应该是怎样个请求的形式呢,求救求救大神们a。

9个回答

用websocket建立连接,服务器推送消息。客户端处理。不用websocket,以前(html5出现以前)的做法是,长轮询(long polling)
http://blog.jobbole.com/72172/
https://www.cnblogs.com/AloneSword/p/3517463.html
https://www.cnblogs.com/best/archive/2016/09/12/5695570.html

模拟数据传到后台,可达到同样的效果.

lsxlovezqy
lsxlovezqy 但是想要它时刻等待这个指令过来,这个请求应该怎么过来呢,是请求到url吗?还是怎么请求。。。。
2 年多之前 回复

就比如,网页通过表单或者按钮提交请求,那我说的这个应该怎么实现呢,还是得时刻等待

怎么我感觉你讲的是http的get请求

我咋感觉是在问定时器...

感觉问的就是普通的接口吧

最近刚做完Javaweb作业,遇到的问题好像我之前遇到的。直接给你我的总结吧。
针对:DAO+DTO+servlet+jsp
首先可以在jsp页面中设置不同的参数传给servlet(如果为多个参数的话可以用&分隔开然后),然后servlet中设置相应的参数接收来自jsp页面的参数,然后重要的是如何让servlet区分不同的参数然后重定向到相应的页面,这就需要用到if语句来判断了。以下是要注意的点:
 如果是通过不同表单提交到同一servlet的话,可以在各jsp页面中表单里多添加一个隐形按钮,注意,name属性一定要设置为相同的属性,value属性的值则各不相同,如表单1中为:

……

表单2中为:

……

然后在servlet中根据接收name属性的值,在if语句中根据value的值来跳转至不同的页面,如:
String type = request.getParameter("type");
System.out.println("我在SelectBookByIdServlet中,type="+type);
……
if(type.equals("f1")){

response.sendRedirect(request.getContextPath()+"/admin/selectBookById.jsp");
}
if(type.equals("f2")){

response.sendRedirect(request.getContextPath()+"/user/selectBookById.jsp");
}
 如果是通过不同URL提交到同一servlet的话,各jsp页面的URL中还必须设置一个
参数,参数名可随便起,但一定相同,参数值则各不相同,如
URL1中可设为:
URL2中可设为:

参数名为method,参数值分别为abook和ubook。接下来就要在同一servlet中接收参数值了:如:
String method = request.getParameter("method");
System.out.println("method="+method);
……
if(method.equals("abook")) {
session.setAttribute("allbook", v);// allbook与allBook.jsp中的参数一样
response.sendRedirect(request.getContextPath()+"/admin/allBook.jsp");
}
if(method.equals("ubook")) {
session.setAttribute("allbook", v);// allbook与allBook.jsp中的参数一样
response.sendRedirect(request.getContextPath()+"/user/allBook.jsp");
}
 如果是跳转至不同权限的jsp页面,还要记得配置好web.xml中的数据。例如:


FindAllBookServletcn.edu.lingnan.servlet.FindAllBookServlet


FindAllBookServlet
/admin/findAllBookServlet
/user/findAllBookServlet

weixin_40614911
weixin_40614911 补充: 如果是跳转至不同权限的jsp页面,还要记得配置好web.xml中的数据。例如: <!-- 查询所有书籍信息--> <servlet> <servlet-name>FindAllBookServlet</servlet-name> <servlet-class>cn.edu.lingnan.servlet.FindAllBookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FindAllBookServlet</servlet-name> <url-pattern>/admin/findAllBookServlet</url-pattern> <url-pattern>/user/findAllBookServlet</url-pattern> </servlet-mapping>
2 年多之前 回复
weixin_40614911
weixin_40614911 补充:URL1中可设为:<a href="findAllBookServlet?method=abook">, URL2中可设为:<a href="findAllBookServlet?method=ubook">,
2 年多之前 回复
weixin_40614911
weixin_40614911 补充:如表单1中为: <form action=selectBookByIdServlet method="post"> <input type="hidden" name="type" value="f1" /> …… </form> 表单2中为: <form action=selectBookByIdServlet method="post"> <input type="hidden" name="type" value="f2" /> …… </form>
2 年多之前 回复
weixin_40614911
weixin_40614911 我直接复制粘贴的不知道为什么没贴完整???
2 年多之前 回复

你好像说的是普通的数据接口。
你可以增加一个和处理get请求一样的接口(方法),将结果转成json返回。
使用方式和普通的get请求一样,参数添加到url中。你可以在浏览器中访问这个url得到结果,也可以引用java.net下的一些类,模拟get请求。

用异步操作, async request 就可以了吧。。 我经常这么做。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问