参考文章  :java使用websocket,并且获取HttpSession,源码分析    http://www.cnblogs.com/zhuxiaojie/p/6238826.html 1.在项目中引入依赖 websocket遵循了javaee规范,所以需要引入javaee的包 <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</arti…
小编心语:咳咳咳,今天又是聊天室,到现在为止小编已经分享了不下两个了,这一次跟之前的又不大相同,这一次是网页聊天室,具体怎么着,还请各位看官往下看~ Java和WebSocket开发网页聊天室 一.项目简介 WebSocket是HTML5一种新的协议,它实现了浏览器与服务器全双工通信,这里就将使用WebSocket来开发网页聊天室,前端框架会使用AmazeUI,后台使用Java,编辑器使用UMEditor. 二.涉及知识点 网页前端(HTML+CSS+JS)和Java 三.软件环境 Tomcat…
一.入门简介正常聊天程序需要使用消息组件ActiveMQ或者Kafka等,这里是一个Websocket入门程序. 有人有疑问这个技术有什么作用,为什么要有它?其实我们虽然有http协议,但是它有一个缺陷就是不能主动向客户端发送消息,而我们的基于Tcp协议的Websocket能够做到,所以这在多台机器之间通信提供了大大的方便. 二.入门案例本案例使用Springboot+WebSocket+Thymeleaf 1.1pom.xml<!-- websocket --> <dependency…
此篇文章主要是对MVC实现类似QQ的网页聊天功能(上)的部分代码的解释. 首先说一下显示框的滚动条置底的问题: 结构很简单一个大的div(高度一定.overflow:auto)包含着两个小的div第一个小的div放聊天信息,第二个div(height:0px;overflow:hidden),当页面加载聊天内容时第二个小的div调用scrollIntoView()方法即可将滚动条置底.滚动条置底效果: 其次说一下输入框: 输入框用的是KindEditor富文本编辑器插件,需要引入kindedit…
前言 因为项目需要,前端页面中需要不断向后台请求获取一个及一个以上的状态值.最初的方案是为每个状态值请求都建立一个定时器循环定时发起Ajax请求,结果显而 易见.在HTTP1.1协议中,同一客户端浏览器发起二个及以上请求时,服务器都会进行队列阻塞,即前一请求个执行完后才能执行下一个请求.而在当前前端异步请求十分频繁的情况下,一个页面同时开始一个及以上的长轮询,不仅服务器要承担非常大的压力,前端页面也会因为轮询的挤占而导致性能低下,用户体验不好.依据以上原因,曾经做过多次调研,无论是Comet技术…
在实现分页的时候,我使用的是数据库下面的User表,实现的效果是通过分页查询 能够将表中的数据分页显示,点击相关的按钮实现:首页.上一页.下一页.末页的显示 1新建一个dynamic web project项目 ,导入SSH项目所需要的jar antlr-2.7.7.jar c3p0-0.9.5.2.jar classmate-1.3.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.apache.comm…
一. 在服务端发布一个web项目 1.创建一个动态的web项目,并导入hessian的jar包 2. 在服务端的crm项目中创建接口 package cn.rodge.crm.service;import java.util.List;import cn.rodge.crm.domain.Customer;// 客户服务接口 public interface CustomerService {    // 未关联定区客户    public List<Customer> findnoassoc…
废话不多少了,主要是使用hibernate的查询方法,自己封装了DAO层,供service来方便使用. 首先:必须要继承的 public class CommonDao extends HibernateDaoSupport 紧接着是要注入必须的数据源: @Resource private SessionFactory sessionFactory; @PostConstruct public void initSessionFactory() { super.setSessionFactory…
很早以前为了快速达到效果,使用轮询实现了在线聊天功能,后来无意接触了socket,关于socket我的理解是进程间通信,首先要有服务器跟客户端,服务的启动监听某ip端口定位该进程,客户端开启socket分配ip端口连接服务端ip端口,于是两个进程间便可以通信了.下面简单画个图理解. but,今天还是准备分享websocket的使用,先上效果,再贴代码. 第一步启动socket服务. 然后连接客户端连接服务器,加入聊天室,分别使用googel(白玉京,沈浪),火狐(楚留香),ie(李寻欢)进行测试…
vue-cli项目中引入vue-i18n 安装: npm install vue-i18n可参考vue-i18n官网文档 main.js中引入: import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) 配置语言包(main.js): const i18n = new VueI18n({ locale: 'zh-CN', // 语言标识, 通过切换locale的值来实现语言切换,this.$i18n.locale…
官网下载bootstrap插件放到项目中的static文件中 路由 path('blog-fullwidth/', login.fullwidth,name='fullwidth'), 前端页面引入 <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet"> 前端获取数据 {% for v in article_obj %} <div class="blog…
公司业务需求,我需要实现一个合同模板,自定义输入内容后生成合同随后导出下载合同.(自定义部分用到的是) 为了实现这个文件下载到本地的功能,真的是废了九牛二虎之力,以至于差点放弃(主要还是自己菜).刚开始自己用到的是Window.open()的方法,发现这个方法只能将你的合同在新页面打开,并不能实现下载功能:然后就换了html5 Bolb方法,弄了些许时间后发现还是不能达到自己的需求,最后在不断的挣扎中找到了FileSaver.js 首先需要安装即:npm install file-saver -…
前言:       - 为什么我要使用 flask-socketio模块,而不是flask-sockets?       - 因为flask-socketio与前端流行的websocket库socketio语法类似,前后端交互容易理解,并且flask-socketio能非常容易得与flask项目结合. 效果预览: 后端数字更改,自动推送到前端 1.安装 flask-socketio pip install flask-socketio 2.项目结构 myproject/ |-- env/ |--…
1.request.getContextPath()详解 <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp"> 2.<meta http-equiv="refresh&quo…
1. Struts has detected an unhandled exception: Messages: antlr.collections.AST.getLine()I File: org/hibernate/hql/internal/ast/HqlSqlWalker.java Line number: 929 这个问题,每次都是重新编译后还会出现这个异常,原因是Struts2框架自带antlr2.7.2.jar和Hibernate框架自带的ntlr2.7.7.jar冲突了,故只要删除…
1.什么是WebSocket(选择至菜鸟教程(点击跳转),观察者模式) WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输. 在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了…
(1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用. (2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts 2以WebWork为核心,采用拦截器的机制      来处理用户的请求,使业务逻辑控制器与Servlet API完全脱离开. (3)Spring是一个轻量级的控制反转(IoC)与面向切面(AOP)的容器框架,是轻量的.非侵入的…
http://neue.v2ex.com/t/316766 虽说浏览器里用 js 解码'播放'视频的方案已经有几个了... 为什么不再多一个呢... 基本原理: 服务端使用 websockify 中转一个 rtmp 流. 浏览器中使用 node-rtmpapi 解析 RTMP 协议,完成握手和通信. 提取其中的 H264 视频流 发送给 Broadway 解码 Repo: https://github.com/yingDev/Web-Rtmp 目前只是一个 demo 级别的东西, 算是验证了可行…
大致思路与之前servlet中玩验证码类似,生成随机数,产生干扰线,画到图片上,保存到session中. 本人习惯用的时候专门写一个验证码的action:CheckImgAction. step1: CheckImgAction: public class CheckImgAction extends ActionSupport{      public String execute() throws Exception { ; ;           // 步骤一 绘制一张内存中图片     …
 1 修改pom.xml,添加依赖文件: <dependency> <groupId>com.whalin</groupId> <artifactId>Memcached-Java-Client</artifactId> <version>3.0.2</version> </dependency> 2 添加memcached-context.xml,注意要在web.xml中进行配置 <?xml <…
需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>…
报错信息 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) at org.springframework.test.context.…
<template> <div class="test"> </div> </template> <script> export default { name : 'test', data() { return { websock: null, } }, created() { this.initWebSocket(); }, destroyed() { this.websock.close() //离开路由之后断开webso…
1.web.xml配置如下(必须放在Struts2配置之前) <!-- 字符编码过滤器配置--> <filter> <filter-name>CharEncodingFilter</filter-name> <filter-class>com.crm.tools.CharEncodingFilter</filter-class> <init-param> <param-name>encoding</par…
在运行struts2标签页面时报错,代码如下:<%@ page language="java" pageEncoding="gbk"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>&l…
说到QQ聊天,程序员首先想到的就是如何实现长连接,及时的接收并回馈信息.那么首先想到的就是Ajax,Ajax的运行机制是通过XMLHttpRequest向服务器发出异步请求,并接受数据,这样就可以实现不刷新页面,实时的接收和回馈数据. 基本Html <div id="”p”" class="”easyui-panel”" style="”width:" auto;="" height:="" 470p…
首先下载plupload插件放在static静态文件下面,官方地址:https://www.plupload.com/ 项目根目录下创建media文件夹用来存放上传的图片,配置settings文件,添加media的文件路径 MEDIA_ROOT = os.path.join(BASE_DIR,'media') 先写前端html页面 {# 引入插件#} <script src="/static/plupload/moxie.js"></script> <sc…
package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session;…
一.前端界面 // 界面中定义一个div,放图表 <div id="box" style="width: 600px;height:400px;padding: 12px;"></div> // 引入js文件 <script src="${_b}/themes/${_sysTheme}/echarts/echarts.js"></script> // 配置ECharts插件(这个实现的是多条折线图)…
第一步,添加“记住我”复选框,rememberMe要设置参数 第二步,配置shiro的主配置文件 注意 rememberMeCookie对应的bean中要声明 <constructor-arg value="rememberMe"> 第三步,在用户登录的时候把UsernameAndPasswordToken的对象的rememberMe属性设置成true 第四步,用户的对象要实现序列化的接口 User对象实现序列化接口 第五步,在shiroFilter 过滤器中 原先我们在f…