导航:首页 > 编程语言 > java服务端demo

java服务端demo

发布时间:2023-07-07 02:39:41

‘壹’ java+mysql搭建服务器

java+mysql搭建服务器的步骤如下:

1、在工程项目中导入mysql-connection-java-5.0.16-bin.jar这个jar包;

2、编写一个数据库管理类(MyDBHelper)用来配置数据库的属性:

packagecom.hu.demo;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
publicclassMyDBHelper{
publicstaticfinalStringurl="jdbc:mysql://127.0.0.1/student";
publicstaticfinalStringname="com.mysql.jdbc.Driver";
publicstaticfinalStringuser="root";
="root";
publicConnectionconn=null;
publicPreparedStatementpst=null;
publicDBHelper(Stringsql){
try{
Class.forName(name);//指定连接类型
conn=DriverManager.getConnection(url,user,password);//获取连接
pst=conn.prepareStatement(sql);//准备执行语句
}catch(Exceptione){
e.printStackTrace();
}
}
publicvoidclose(){
try{
this.conn.close();
this.pst.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}

3、编写一个测试类(Test)来测试相关数据库操作:

packagecom.hu.demo;
importjava.sql.ResultSet;
importjava.sql.SQLException;
publicclassTest{
staticStringsql=null;
staticDBHelperdb1=null;
staticResultSetret=null;
publicstaticvoidmain(String[]args){
sql="select*fromstuinfo";//SQL语句
db1=newDBHelper(sql);//创建DBHelper对象
try{
ret=db1.pst.executeQuery();//执行语句,得到结果集
while(ret.next()){
Stringuid=ret.getString(1);
Stringufname=ret.getString(2);
Stringulname=ret.getString(3);
Stringudate=ret.getString(4);
System.out.println(uid+" "+ufname+" "+ulname+" "+udate);
}//显示数据
ret.close();
db1.close();//关闭连接
}catch(SQLExceptione){
e.printStackTrace();
}
}
}

4、至此就完全了java+mysql服务器的搭建。

‘贰’ java webservice例子,例子完整,最好有注释,demo也行!但是一定要完整!谢谢!

刚好 我这两天也在学webservice,给你一个我才学的例子
1.解压axis压缩包,然后解压,取出里面的webapps里面的axis项目放到tomcat中的webapps中,然后启动tomcat

项目的发布有两种形式
1.即时发布
直接在axis中放置java源文件,注意后缀名字改为.jws.注意源文件中不要有任何的导包语句
详细步骤如下
1.直接在axis目录下编写java源文件,写好后把后缀名改为jws。如Demo.jws
2.重启动服务器,在浏览器中输入http://127.0.0.1:8080/axis/Demo.jws,点开后得到一个网址http://127.0.0.1:8080/axis/Demo.jws?wsdl
3.在myeclipse中导入网址http://127.0.0.1:8080/axis/Demo.jws?wsdl,可以执行里面的方法就可以了。
2.定制发布
编写要发布为服务器javaBean
编写生成class文件放在tomcat中的axis中的webinf中的classes中
编写deploy.wsdd文件描述服务器的名称入口等信息。
详细步骤
以一个add为例子
1.编写javaBean代码
public class add {
public Integer getAdd(Integer a, Integer b){
return a+b;
}

}
2.将class文件放入axis中的webinf下的classes中
注意,如果该类有包的话,就要建立相应的文件名,如
package com.ssh.webservice
那么classes文件下就要有相应的com文件夹,ssh文件夹,webservice文件夹

3.写上他的描述文件wsdd文件
描述文件直接放到classes中即可,名字为deploy.wsdd,文件为
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Add" provider="java:RPC">
list中显示的名字
<parameter name="className" value="add"/>
调用的类
<parameter name="allowedMethods" value="*"/>
指定调用的方法
</service>
</deployment>

4.编写批处理文件.bat文件,如下
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\axis.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\axis-ant.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\jaxrpc.jar;

set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\log4j-1.2.8.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\saaj.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\libwsdl4j-1.5.1.jar

java org.apache.axis.client.AdminClient E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\classes\deploy.wsdd
然后运行该批处理文件

5.启动服务器,在浏览器中输入项目的发布地址,如http://127.0.0.1:8080/axis/就会有已个list,然后点进方法

6.编写客户端代码,如下
package com.ssh.client;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

public class TestClient
{
public static void main(String [] args) {
try {
String endpoint =
"http://127.0.0.1:8080/axis/services/Test01";
这个地址是值xml文件中的最后一行的local地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("getMessage") );
指定调用的方法
String ret = (String) call.invoke( new Object[] { } );
如果有参数需要传入的话直接在括号里面写上1,2,2等
System.out.println(ret);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

我这里还有webservice的教学视屏,要的话说一声

‘叁’ 怎么用java开发qq群机器人 服务端 客户端

Server.java


importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.util.ArrayList;
importjava.util.List;

publicclassServer{

privateList<ServerThread>serverThreads;
;

publicServer()throwsIOException{
serverSocket=newServerSocket(8025);
serverThreads=newArrayList<ServerThread>();
}

publicList<ServerThread>getServerThreads(){
returnserverThreads;
}

publicvoidsetServerThreads(List<ServerThread>serverThreads){
this.serverThreads=serverThreads;
}

(){
returnserverSocket;
}

publicvoidsetServerSocket(ServerSocketserverSocket){
this.serverSocket=serverSocket;
}

publicstaticvoidmain(String[]args){
Serverserver=null;
try{
server=newServer();
}catch(IOExceptione){
e.printStackTrace();
System.exit(-1);
}

try{
Socketsocket;
Threadt;
while(true){
socket=server.getServerSocket().accept();
ServerThreadserverThread=newServerThread(server,socket);
server.getServerThreads().add(serverThread);

t=newThread(serverThread);
t.start();
}
}catch(IOExceptione){
e.printStackTrace();
}

}

publicvoidsendMessage(Stringmessage,Socketsocket){
for(ServerThreadserverThread:serverThreads){
try{
serverThread.getDos().writeUTF(message);
}catch(IOExceptione){
//e.printStackTrace();
System.out.println("推送消息给"+serverThread.getSocket().getRemoteSocketAddress()+"过程中发生了错误.");

}
}
}

}

{
privateServerserver;
privateSocketsocket;
privateDataInputStreamdis;
privateDataOutputStreamdos;

publicServerThread(Serverserver,Socketsocket)throwsIOException{
this.server=server;
this.socket=socket;
dis=newDataInputStream(socket.getInputStream());
dos=newDataOutputStream(socket.getOutputStream());
}

publicServergetServer(){
returnserver;
}

publicvoidsetServer(Serverserver){
this.server=server;
}

publicSocketgetSocket(){
returnsocket;
}

publicvoidsetSocket(Socketsocket){
this.socket=socket;
}

publicDataInputStreamgetDis(){
returndis;
}

publicvoidsetDis(DataInputStreamdis){
this.dis=dis;
}

publicDataOutputStreamgetDos(){
returndos;
}

publicvoidsetDos(DataOutputStreamdos){
this.dos=dos;
}

publicvoidrun(){

Stringmessage="";

while(!message.equals("logout")){
try{
message=socket.getRemoteSocketAddress()+"say:"+dis.readUTF();
//System.out.println(message);
server.sendMessage(message,socket);
}catch(IOExceptione){
//e.printStackTrace();
break;
}

}

server.getServerThreads().remove(this);

try{
dis.close();
dos.close();
socket.close();
}catch(IOExceptione){
e.printStackTrace();
}

}

}

Client.java



importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Scanner;

publicclassClient{

privateSocketsocket;
privateDataOutputStreamdos;
privateDataInputStreamdis;

publicClient()throwsUnknownHostException,IOException{
socket=newSocket("127.0.0.1",8025);
dis=newDataInputStream(socket.getInputStream());
dos=newDataOutputStream(socket.getOutputStream());

newThread(newClientThread(this)).start();
}

publicSocketgetSocket(){
returnsocket;
}

publicvoidsetSocket(Socketsocket){
this.socket=socket;
}

publicDataOutputStreamgetDos(){
returndos;
}

publicvoidsetDos(DataOutputStreamdos){
this.dos=dos;
}

publicDataInputStreamgetDis(){
returndis;
}

publicvoidsetDis(DataInputStreamdis){
this.dis=dis;
}

publicvoidclose(){
try{
dis.close();
dos.close();
socket.close();
}catch(IOExceptione){
e.printStackTrace();
}

}

privatevoidsendMessage(Stringmessage){
try{
dos.writeUTF(message);
}catch(IOExceptione){
e.printStackTrace();
}
}

publicstaticvoidmain(String[]args){
Clientclient=null;
try{
client=newClient();
System.out.println(client.getSocket().getLocalPort());
}catch(IOExceptione){
System.out.println("BUG");
e.printStackTrace();
System.exit(-1);
}

Stringmessage="";
Scannerscanner=newScanner(System.in);
while(!message.equals("logout")){
message=scanner.nextLine();
//System.out.println(message);
client.sendMessage(message);
}
scanner.close();
client.close();

}

}

{

privateClientclient;

publicClientThread(Clientclient){
super();
this.client=client;
}

@Override
publicvoidrun(){
try{
while(true){
System.out.println(client.getDis().readUTF());
}
}catch(IOExceptione){
e.printStackTrace();
}
}

}

‘肆’ 服务端调用轻量java

项目需求
服务器端项目是用mina写的传统socket,准备升级到支持websocket接入。

为什么采用undertow
1、Undertow 是基于 NIO 的高性能 Web 嵌入式服务器,并且支持websocket(这个很重要,只要把undertow集成到项目中,用undertow启用websokcet,然后把原来的socket切换到websocket。)

2、轻量级web服务器:多么轻量级呢,启动一个支持websocket的服务只需要20M内存,如下图:



上图的代码如下:

public class WebSocketServer {

public static void main(final String[] args) {
Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(path()
.addPrefixPath("/myapp", websocket(new WebSocketConnectionCallback() {
@Override
public void onConnect(WebSocketHttpExchange exchange, WebSocketChannel channel) {
channel.getReceiveSetter().set(new AbstractReceiveListener() {

@Override
protected void onFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) {
WebSockets.sendText(message.getData(), channel, null);
}
});
channel.resumeReceives();
}
}))
.addPrefixPath("/", resource(new ClassPathResourceManager(WebSocketServer.class.getClassLoader(), WebSocketServer.class.getPackage())).addWelcomeFiles("index.html")))
.build();
server.start();
}

}
3、开源,遵循Apache 2.0。商业软件可使用,并且不要求商业软件开源。

4、支 持permessage-deflate压缩,这个是对通信内容进行压缩的扩展,可以有效的降低服务器和客户端通信使用的带宽。如下图



在request请求头里边客户端表明了自己支持permessage-deflate、然后服务器在response头里边告诉了服务器采用permessage-deflatey压缩。

阅读全文

与java服务端demo相关的资料

热点内容
如何将文件夹的内容发到微信 浏览:892
安卓手机emoji扁平怎么办 浏览:208
欧版三星s20怎么升级安卓11 浏览:104
我的世界服务器如何拉黑房子 浏览:480
linux服务器网络设置 浏览:106
在线编译代码怎么做 浏览:205
社会研究方法教程pdf 浏览:696
cad修改服务器地址 浏览:788
新手服务器装什么系统好 浏览:128
androidxmlui 浏览:713
星辰之恋在哪个app播 浏览:465
手机卡服务器出错误是怎么回事 浏览:536
cg编译器怎么设置 浏览:418
单片机教学视频哪个好 浏览:598
编译器错误了怎么办 浏览:77
看摩托车用什么app好 浏览:405
pdf转换excel在线转换 浏览:361
php多客服 浏览:746
语言编译程序如何分类 浏览:377
pdf下载哪个 浏览:77