解决方案 »
- 插件开发,求大神指点。
- 各位大侠们,请问Jsp实现日志系统,发表文章的时候,预览功能如何实现,最好将一下思路和帖一下代码。
- HashMap同步问题~~急~~~请大家帮帮忙
- IText直接打印
- tomcat5 错误! Cannot create JDBC driver of class
- 帮帮吧忙啊,好长时间解决不了啊!
- spring应用中,hibernate使用默认连接池,所有在应用更新的数据在spring应用结束后并无写入数据库
- 来者有分,探讨Struts在jsp页面输出的问题!
- J2EE 中的容器怎么理解?高分相送!
- jsp页面向Action传值路径的问题
- java发送邮件
- JAVA RMI 如何传递用户定义对象
1.改tomcat 的协议
2.建个CometProcessor
public class FightCometServlet extends HttpServlet implements CometProcessor{
private static Log log = LogFactory.getLog(FightCometServlet.class);
private static final Integer TIMEOUT = 60 * 1000;
private FightLogic fightLogic; @Override
public void init() throws ServletException {
ServletContext servletContext = this.getServletContext();
this.fightLogic = (FightLogic)WebApplicationContextUtils.getWebApplicationContext(servletContext).getBean("fightLogic");
}
public void event(final CometEvent event) throws IOException, ServletException {
HttpServletRequest request = event.getHttpServletRequest();
HttpServletResponse response = event.getHttpServletResponse();
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession(true);
PrintWriter writer = response.getWriter();
Message message = null;
if (event.getEventType() == CometEvent.EventType.BEGIN) {
writer.println("什么什么");
log.info("Writing:" + messageStr);
writer.flush();
writer.close();
} else if (event.getEventType() == CometEvent.EventType.ERROR) {
log.info("Error for session: " + request.getSession(true).getId());
event.close();
} else if (event.getEventType() == CometEvent.EventType.END) {
log.info("End for session: " + request.getSession(true).getId());
event.close();
} else if (event.getEventType() == CometEvent.EventType.READ) {
throw new UnsupportedOperationException("This servlet does not acceptdata");
} }}主要就是这个event了。在这里调用你的业务逻辑,然后转json,写到页面上吧。
3.ajax调用这个servlet的路径。
如果后台有新的返回值就可以随时响应
------
继续抛砖本色
但是这样不是相当于在struts之外单独使用servlet了吗?我想的是在struts之在的实现,是否可行?