需要在一个老项目中使用websocket。
做了一个websocket的小例子,没有问题。
当把这个例子整合到struts2项目里面的时候,就访问不到这个websocket了。是因为struts2的过滤器把所有的请求都拦截了,导致WebSock无法处理来至/websocket的请求。解决办法:在struts的配置文件中使用excludePattern属性过滤掉不处理的url。
websocket需要javaee-api-7.0.jar。struts2的jar包就不在这里列出,大家自行导入。
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
</head>
<body>
<div>
<input type="submit" value="Start" οnclick="start()" />
</div>
<div id="messages"></di
做了一个websocket的小例子,没有问题。
当把这个例子整合到struts2项目里面的时候,就访问不到这个websocket了。是因为struts2的过滤器把所有的请求都拦截了,导致WebSock无法处理来至/websocket的请求。解决办法:在struts的配置文件中使用excludePattern属性过滤掉不处理的url。
websocket需要javaee-api-7.0.jar。struts2的jar包就不在这里列出,大家自行导入。
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
</head>
<body>
<div>
<input type="submit" value="Start" οnclick="start()" />
</div>
<div id="messages"></di