$(document).ready(function(){
$.post("getListersList.action",{},function(data,textStatus){ //getListersList.action是后台程序
var obj=data //data是后台程序返回的数据
for(var x in obj) //遍历返回数据
{
var $option=$("<option value='"+obj[x]+"'>"+obj[x]+"</option>") //返回数据添加到界面
$("#lister").append($option)
}
})
})
public class ServerConnect {private static final int BUF_SIZE = 1024
private static final int PORT = 8080
private static final int TIMEOUT = 3000
public static void main(String[] args) {
selector()
}
public static void handleAccept(SelectionKey key) throws IOException {
ServerSocketChannel ssChannel = (ServerSocketChannel) key.channel()
SocketChannel sc = ssChannel.accept()
sc.configureBlocking(false)
sc.register(key.selector(), SelectionKey.OP_READ,
ByteBuffer.allocateDirect(BUF_SIZE))
}
public static void handleRead(SelectionKey key) throws IOException {
SocketChannel sc = (SocketChannel) key.channel()
ByteBuffer buf = (ByteBuffer) key.attachment()
long bytesRead = sc.read(buf)
while (bytesRead >0) {
buf.flip()
while (buf.hasRemaining()) {
byte b= buf.get()
System.out.print((char) buf.get())
}
System.out.println()
buf.clear()
bytesRead = sc.read(buf)
}
if (bytesRead == -1) {
sc.close()
}
}
public static void handleWrite(SelectionKey key) throws IOException {
ByteBuffer buf = (ByteBuffer) key.attachment()
buf.flip()
SocketChannel sc = (SocketChannel) key.channel()
while (buf.hasRemaining()) {
sc.write(buf)
}
buf.compact()
}
public static void selector() {
Selector selector = null
ServerSocketChannel ssc = null
try {
selector = Selector.open()
ssc = ServerSocketChannel.open()
ssc.socket().bind(new InetSocketAddress(PORT))
ssc.configureBlocking(false)
ssc.register(selector, SelectionKey.OP_ACCEPT)
while (true) {
if (selector.select(TIMEOUT) == 0) {
System.out.println("==")
continue
}
Iterator<SelectionKey>iter = selector.selectedKeys()
.iterator()
int count = 0
while (iter.hasNext()) {
count++
SelectionKey key = iter.next()
if (key.isAcceptable()) {
handleAccept(key)
}
if (key.isReadable()) {
handleRead(key)
}
if (key.isWritable() &&key.isValid()) {
handleWrite(key)
}
if (key.isConnectable()) {
System.out.println("isConnectable = true")
}
iter.remove()
}
System.out.println(count)
}
} catch (IOException e) {
e.printStackTrace()
} finally {
try {
if (selector != null) {
selector.close()
}
if (ssc != null) {
ssc.close()
}
} catch (IOException e) {
e.printStackTrace()
}
}
}
}
不知道客户端的请求是什么形式的请求socket?webservice?http?
你这个这是用nio写的一个socket服务端程序,监听的是本地8080端口,在handleWrite方法体类处理jdbc获取数据放入ByteBuffer里就可以了,jdbc *** 作这里就不写了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)