public class ServerConnect {
创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元新邱做网站,已为上家服务,为新邱各地企业和个人服务,联系电话:13518219792
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点抗 pact();
}
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;
}
IteratorSelectionKey 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操作这里就不写了。
没有太明白什么意思,给你贴一个代码,如果只是单单讲http协议的话,根据请求的不同,返回的不同。 以一个代码为例。
HttpURLConnection con = url.OpenConenction();
//可以利用这个对象,像http服务器发送请求配置
InputStream input = con.getInputStream();
//返回的结果就在这个流里面
jsp中可以嵌入java代码。
比如
html
head
titleHello World JSP/title
/head
body
%
String s= "Hello World";
out.println(s);
%
/body
/html
或者你在java文件中,将值放入session。然后在jsp中通过session获取。
参考
无论是哪个网站的接口,技术都是一样的,用apache的httpclient框架,可以在代码里访问一个http服务器,然后使用json工具,解析返回的字符串就可以了。
至于说TX的接口,你只要知道它的URL,以及参数格式形式就行了。
可以访问中央气象台的json接口
直接在浏览器里可以看到内容,然后再取代码里访问这个地址,拿到同样的数据,然后再用json工具分析。