日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java写一个web聊天工具_javaweb写的在线聊天应用

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java写一个web聊天工具_javaweb写的在线聊天应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫這個玩意兒就是想練練手, 用戶需要登陸才能在線聊天,不要依賴數據庫, 不需要數據庫的操作, 所有的數據都是保存在內存中, 如果服務器一旦重啟,數據就沒有了;

登錄界面:

聊天界面:

左側是在線的用戶列表, 右側是聊天的內容, 內容的格式為 “作者 : 內容”;

點擊button可以發布聊天信息;

使用的是spring搭建的框架,基于tomcat的服務器;

web.xml的配置如下:

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

index.htm

test

org.springframework.web.servlet.DispatcherServlet

1

test

*.htm

org.springframework.web.context.ContextLoaderListener

CharacterEncodingFilter

com.nono.Filter.CharacterEncodingFilter

encoding

UTF-8

SecurityServlet

com.nono.SecurityServlet

SecurityServlet

*.htm

contextConfigLocation

/WEB-INF/test-servlet.xml

View Code

conteConfigLocation的配置為:

.jsp

View Code

整個項目的結構為一個主路由, 四個po層, ?兩個過濾器:

界面的用戶列表和用戶內容列表用了ajax刷新, 感覺不錯的說:

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

login

height:100%;

}

.bg{

background:url(imgs/bg.jpeg);

}

list

  • name
  • name
  • name
  • name
  • content

    haha:

    say someting

    haha:

    say someting

    enter text

    Submit

    $.post("chat.htm", "content="+ $("#answer").val(), function(data) {

    console.log(data);

    });

    });functionGet(url , el, fn) {this.post = function() {

    $.post(url,function(data) {

    data=JSON.parse(data);var html = "";

    $.each(data,function(i, e) {

    html+=fn(i,e);

    });

    $(el).html( html );

    });

    };

    };

    (function() {var list = new Get("getList.htm", "#list", function(i, e) {return "

    " + e.name + "";

    });var content = new Get("getContent.htm", "#con", function(i, e) {return "

    "+ e.name +" : "+ e.content +"

    ";

    });

    setInterval(function() {

    list.post();

    content.post();

    },1000);

    })();

    View Code

    權限控制的話我們可以用到fileter:

    packagecom.nono;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.nono.po.User;public class SecurityServlet extends HttpServlet implementsFilter {private static final long serialVersionUID = 1L;public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throwsIOException, ServletException {

    HttpServletRequest request=(HttpServletRequest)arg0;

    HttpServletResponse response=(HttpServletResponse) arg1;

    HttpSession session=request.getSession();

    User user= (User) session.getAttribute("user");

    String url=request.getRequestURI();//如果用戶信息不是空的, 或者要訪問的是登陸的界面(get,post的方式包含了login字符串);

    if( user!=null || url.indexOf("login")>-1) {

    arg2.doFilter(arg0, arg1);return;

    }else{//余下的全跳到登陸界面

    response.sendRedirect(request.getContextPath() + "/login.htm");return;

    }

    }public void init(FilterConfig arg0) throwsServletException {

    }

    }

    View Code

    路由控制和服務放到了一起, 因為權限控制使用過濾器處理, 所以在路由里面我們就不用關心用戶的消息, 只要處理業務邏輯就好了:

    packagecom.nono.Controller;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Vector;importjavax.jms.Session;importjavax.print.DocFlavor.STRING;importjavax.print.attribute.HashAttributeSet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importnet.sf.json.JSONArray;importorg.omg.CORBA.PUBLIC_MEMBER;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.ResponseBody;importcom.nono.po.Content;importcom.nono.po.Contents;importcom.nono.po.User;importcom.nono.po.Users;

    @Controllerpublic classMainController {//用戶和用戶組;

    @Autowired

    Users users;

    @Autowired

    Contents contents;

    @RequestMapping(value="login", method=RequestMethod.GET)publicString login (HttpServletRequest request) {return "login";

    }

    @RequestMapping(value="login", method=RequestMethod.POST)publicString loginPOST ( HttpServletRequest request, HttpServletResponse response ) {

    String string= "login";

    String name= (String) request.getParameter("name");

    Boolean flag= true;//如果名字不是空的話;

    if( !name.equals("") ) {

    Vector vector=users.getList();for(int i=0; i< vector.size(); i++) {

    User user=(User) vector.elementAt(i);if( user.getName().equals( name ) ) {

    flag= false;

    };

    };

    };//用戶名不存在

    if( flag ) {

    User user= newUser();

    user.setName( name );

    HttpSession session= request.getSession(true);//設置Session的過期時間為10分鐘

    session.setMaxInactiveInterval(600);//設置seesion中的用戶信息;

    session.setAttribute("user", user);//添加用戶;

    users.addUser( user );//加入的提示;

    Content content = newContent();

    content.setName( name );

    content.setContent("enter the chat room!");

    contents.addContent( content );

    string= "chat";returnstring;

    }else{//用戶名已經存在

    request.setAttribute("info", "用戶名已經存在1");

    string= "login";returnstring;

    }

    }

    @RequestMapping(value="chat", method=RequestMethod.GET)publicString main (HttpServletRequest request) {

    String string= "chat";returnstring;

    }

    @RequestMapping(value="chat", method=RequestMethod.POST)

    @ResponseBodypublicString chat(HttpServletRequest request) {

    String string= (String) request.getParameter("content");

    HttpSession session=request.getSession();//設置seesion中的用戶信息;

    User user = (User) session.getAttribute("user");

    String name=user.getName();

    Content content= newContent();

    content.setName( name );

    content.setContent( string );

    contents.addContent( content );return "true";

    }

    @RequestMapping(value="getList", method=RequestMethod.POST, produces = "text/html;charset=UTF-8")

    @ResponseBodypublicString getList( HttpServletRequest request) {returnJSONArray.fromObject( users.getList() ).toString();

    }

    @RequestMapping(value="getContent", method=RequestMethod.POST, produces = "text/html;charset=UTF-8")

    @ResponseBodypublicString getArrayList() {

    ArrayList list=(ArrayList) contents.getContents();

    ArrayList result= newArrayList();for( int i= 0; i< list.size(); i++) {

    HashMap hashMap = newHashMap();

    hashMap.put("name", ((Content)list.get(i)).getName());

    hashMap.put("content", ((Content)list.get(i)).getContent());

    result.add( hashMap );

    };returnJSONArray.fromObject( result ).toString();

    }

    }

    View Code

    有哪位大神告訴我為什么中文各種亂碼, 在界面中的utf-8也設置, @ResponseBody的也設置了, 還是亂碼, encodeURIComponent過的也是亂碼, 坑爹啊;

    總結

    以上是生活随笔為你收集整理的java写一个web聊天工具_javaweb写的在线聊天应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 新红楼梦2005锦江版高清在线观看 | 日本特黄成人 | 在线视频观看免费 | 网址在线观看你懂的 | 亚洲欧美中文日韩在线v日本 | 亚洲一级片免费看 | 暧暧视频在线观看 | 一本色道久久综合狠狠躁 | 黄色片一级 | 手机看片日韩久久 | 欧美精品乱码久久久久久 | 色网在线看 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 国产一区二区三区精品愉拍 | 国产黄色大片在线观看 | 精品一区二区三区免费视频 | 在线看av的网址 | 亚洲欧美日韩色 | 国产精品不卡 | 国产综合在线视频 | 三级黄色av | 久久免费视频一区 | 国产精品久久视频 | 美梦视频大全在线观看高清 | 性猛交xxxx乱大交3 | 青青草国产精品 | 国产一级黄色电影 | 性――交――性――乱a | 在线理论视频 | 精品在线看 | 欧美偷拍精品 | 你懂的91 | 日本黄色性视频 | 偷偷操不一样的久久 | 大胸美女无遮挡 | 中文字幕网站 | 日韩黄色一区二区 | 成人免费短视频 | 天天操天天操天天操 | 美女三级黄色片 | 亚洲一区二区三区四区 | 国产无遮挡免费观看视频网站 | 亚洲精品一二三四区 | 理论片亚洲 | 一区三区在线观看 | 粉嫩av一区二区三区天美传媒 | 国产v在线 | 欧美寡妇性猛交 | 三级小说视频 | 狠狠五月婷婷 | 精品国产一区二区三区日日嗨 | 2021国产精品视频 | 国产一区二区三区四区五区美女 | 日韩无遮挡 | 农民工hdxxxx性中国 | 欧美寡妇性猛交 | 黑人巨大精品欧美一区免费视频 | 天天操天天草 | 日本精品久久久久久久 | 亚洲第一av在线 | 精品一区二区三区在线观看 | 国产又大又黄又爽 | 永久av免费 | 91中文视频| 大尺度舌吻呻吟声 | 三级视频在线观看 | 久久国产激情 | 天天综合久久 | 人人人妻人人澡人人爽欧美一区 | 欧美激情图区 | 国产美女毛片 | 狠狠操免费视频 | 日韩无码精品一区二区 | 99re这里只有精品首页 | 国产a视频精品免费观看 | www插插插无码免费视频网站 | 国产成人三级在线观看视频 | 亚洲第一综合网 | 超碰成人在线观看 | 国产精品久久久久一区二区三区 | 日韩一区二区三区四区五区六区 | 欧美孕妇性xx | free欧美性69护士呻吟 | 精品一区在线 | 日本啪啪啪一区二区 | 国产一级大片在线观看 | 在线天堂网| 筱田优全部av免费观看 | 精品少妇v888av | 成熟丰满熟妇高潮xxxxx视频 | 少妇激情偷人三级 | 免费在线观看日韩 | 午夜爱爱免费视频 | 日韩大片免费观看 | 免费福利在线观看 | 欧美另类极品 | 中文字幕麻豆 | 日本一区不卡视频 | 综合av网|