PS:上接DWR反向Ajax示例(1);
3.Java后台代码:
package test;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;
import database.DBConnection;
/**
* DWR反向Ajax示例
* @author rzy
* @version 1.0
* */
public class JavaChat
{
private static String[][] msgs = null;
public static WebContext wctx = null;
//把信息显示到页面上
public void addMessage(String[][] messages)
{
wctx = WebContextFactory.get();
Util utilThis = new Util(wctx.getScriptSession());
utilThis.setValue("title", "");
utilThis.setValue("content", "");
String currentPage = "/dwrtest/javachat1.jsp";
Collection sessions = wctx.getScriptSessionsByPage(currentPage);
Util utilAll = new Util(sessions);
utilAll.removeAllRows("msg");
utilAll.addRows("msg", messages);
utilAll.setStyle("msg", "color", "red");
}
//调用添加和显示方法
public void sendRow(String title,String content)
{
addMsg(title,content);
addRowMsg();
}
//添加到信息到数据库中
public int addMsg(String title,String content)
{
String sql = "insert into messages(title,content,date) values ('"+title+"','"+content+"','"+getSysDate()+"')";
DBConnection dbConn = new DBConnection();
int row = dbConn.executeUpdate(sql);
dbConn.close();
return row;
}
//获取数据库已有信息并添加到页面上
public void addRowMsg()
{
String sql = "select * from messages order by id desc";
DBConnection dbConn = new DBConnection();
dbConn.rs = dbConn.executeQuery(sql);
try {
dbConn.rs.last();
int num = dbConn.rs.getRow();
dbConn.rs.beforeFirst();
msgs = new String[num][3];
int i = 0;
while(dbConn.rs.next())
{
for(int j=0;j<3;j++)
{
if(j==0)
{
msgs[i][j] = "["+dbConn.rs.getString("title")+"]";
}else if(j==1)
{
msgs[i][j] = dbConn.rs.getString("content");
}else if(j==2)
{
msgs[i][j] = dbConn.rs.getString("date");
}
}
i++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
dbConn.close();
}
addMessage(msgs);
}
//获取当前日期
public static String getSysDate()
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String nowDate = format.format(date);
return nowDate;
}
}
PS:DBConnection类是一个对数据库连接和操作的封装类;
数据库:表名:messages,字段:id,title,content,date.
分享到:
相关推荐
Direct Web Remoting (DWR) 是一个开源Java库,它允许在浏览器和服务器之间进行安全、高效的异步通信,即所谓的“反向AJAX”或“Comet”技术。DWR使得JavaScript能够调用服务器端的Java方法,就像它们是本地函数一样...
通过学习和实践这个“dwr3ReverseAjax示例”,开发者可以掌握DWR的基本用法,以及如何利用Ajax和反向Ajax构建实时Web应用。这不仅对理解DWR的工作原理有所帮助,也能提升在实际项目中运用这些技术的能力。
首先,DWR的核心功能在于它的反向AJAX技术。传统的AJAX请求是单向的,即从客户端到服务器,而DWR允许服务器主动向客户端推送数据,实现了真正的双向通信。这使得Web应用能够实现更多的实时功能,如聊天室、股票报价...
- **Reverse Ajax(反向Ajax)**: DWR实现了反向Ajax,即服务器可以主动推送数据到客户端,而不仅仅是响应客户端的请求。 - **Caching(缓存)**: DWR支持缓存服务器端的响应,提高性能,减少网络流量。 ### 2. ...
DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0学习笔记.txt DWR3.0学习网址.txt dwr分页.doc DWR分页代码.doc DWR中文文档.doc DWR中文文档.pdf dwr做comet的完整实现.doc Spring整合DWR comet ...
1. **反向AJAX(Reverse Ajax)**: DWR的核心就是反向AJAX,即由服务器向客户端推送数据,而不是传统的由客户端发起请求获取数据。这使得用户界面能够实时更新,提高了用户体验。 2. **配置文件**:DWR的配置通常...
1. **反向AJAX(Reverse AJAX)**:DWR通过创建JavaScript和Java之间的通信桥梁,实现了服务器端代码能够主动更新客户端页面,而不仅仅是响应用户的请求,这就是反向AJAX。 2. **自动暴露(Auto-Exposure)**:DWR3...
总结,"反向Ajax聊天简单例子"是一个学习反向Ajax技术的实践项目,通过DWR框架实现了服务器主动推送消息的聊天功能。理解并实践这个例子,有助于开发者掌握Ajax的高级用法,提升Web应用的实时性和互动性。
总结来说,反向Ajax聊天室是利用DWR框架实现的一种Web应用,它利用Ajax技术提供实时的聊天体验,而不需要用户频繁刷新页面。《基于J2EE的Ajax宝典》提供了详细的教学指导,涵盖了从服务器端到客户端的完整实现过程。...
- **反向AJAX (Reverse AJAX)**:DWR的核心是反向AJAX,即服务器主动推送数据到客户端,而不是传统的客户端发起请求获取数据。 - **远程调用 (Remote Method Invocation)**:DWR允许JavaScript直接调用服务器上的...
总的来说,DWR反向推送技术为开发富互联网应用(RIA)提供了一种有效的方法,让Web应用更加互动和实时。通过深入理解和实践DwrTest项目,你可以更好地掌握如何在实际项目中利用DWR实现各种功能。
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行异步通信,实现Ajax(Asynchronous JavaScript and XML)功能。DWR简化了Ajax开发,使得开发者可以方便地...
1. **反向Ajax (Reverse Ajax)**:DWR的核心是反向Ajax,即由服务器主动向客户端推送数据,而不是传统的用户触发请求,服务器响应数据的方式。 2. **JavaBeans和JavaScript对象映射**:DWR将Java对象自动转换为...
这种机制被称为"反向Ajax"或"Web Remoting"。 1. **安装与配置**:DWR的安装通常涉及将JAR文件添加到项目的类路径中,并在Web应用的`web.xml`中配置DWR的Servlet。配置包括设置允许访问的远程方法、安全设置等。 2...
- **Reverse Ajax(反向Ajax)**: DWR支持反向Ajax,即服务器可以主动向客户端发送数据,而不仅仅响应客户端的请求,增强了实时性。 - **CORS(跨源资源共享)**: DWR通过实现CORS,允许不同源的JavaScript与服务器...
3. **Reverse AJAX**:DWR实现了反向AJAX,即服务器主动推送数据到客户端。这对于实时应用(如聊天室、股票报价)非常有用。 4. **AutoComplete**:DWR提供了自动完成功能,用于在输入框中实现下拉提示,提高用户...
Engine通过反向Ajax(Reverse Ajax)技术实现异步通信。 2. **Servlet**:DWR Servlet是部署在服务器上的一个组件,它接收来自浏览器的请求,然后转发给相应的Java对象进行处理。 3. **Mapping**:DWR使用XML或...
1. **反向AJAX(Reverse AJAX)**: DWR允许JavaScript代码在用户浏览器上直接调用服务器端的Java方法,就像调用本地函数一样,这使得Web应用能够实现即时响应和动态更新。 2. **自动类型转换**: DWR自动处理了Java...
2. **反向Ajax(Reverse Ajax)**:DWR是反向Ajax的一个实现,意味着服务器可以主动向客户端发送数据,而不仅仅是响应客户端的请求。 二、DWR的主要组件 1. **CMT (Cross Page Posting)**:这是DWR的基础,用于在不同...
2. **主动反向Ajax**:`activeReverseAjaxEnabled=true`开启了DWR的主动反向Ajax功能,使得服务器能够主动推送数据给客户端。 3. **性能优化**:通过调整`maxWaitAfterWrite`参数来控制连接等待时间,可以有效提升...