導航:首頁 > 編程語言 > 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相關的資料

熱點內容
源碼微信小程序搭建 瀏覽:278
linux遠程桌面連接命令 瀏覽:859
adams教程pdf 瀏覽:264
Arm和單片機區別 瀏覽:559
阿里雲伺服器綁定主機頭 瀏覽:949
游戲手機什麼最好用安卓 瀏覽:11
江蘇程序員怎麼樣 瀏覽:510
捉妖股選股公式源碼 瀏覽:541
勝利油田的社保用什麼app 瀏覽:460
lru演算法java 瀏覽:129
數據分析系統源碼 瀏覽:539
論語繁體pdf 瀏覽:517
直上指標源碼 瀏覽:193
pythongeohash使用 瀏覽:348
二維熱力圖python 瀏覽:553
如何度過程序員菜鳥階段 瀏覽:505
python子圖標題顯示不出來 瀏覽:538
linux怎麼看連接伺服器的ip 瀏覽:709
windows命令行copy 瀏覽:65
都勻工會卡綁定什麼購物App 瀏覽:274