java webserver教程(急!java调用webservice并解析返回值,重谢!!)

:暂无数据 2026-03-30 02:40:01 0
我们整理了关于java webserver教程最高频的提问,发现急!java调用webservice并解析返回值,重谢!!位列榜首。于是,就有了这篇集中解答的精华帖。

本文目录

急!java调用webservice并解析返回值,重谢!!

你可以自己用soap协议调用这个webservice。第二种是你可以用eclipse axis2通过这个webservice的wsdl描述生成客户端调用代码。我建议你用第二种方法。算了,分这么多,我帮你写一个吧。

我想用java写一个简单的web server,应该怎么写呀

我原来写过一个很简单的,可以指定你存放网页的文件夹,可以指定允许访问的IP,给你源码看看吧。public class WebServer {
static Button btReloadIP=new Button("更新合法IP列表");
static Button btAllow=new Button("允许此IP");
static Button btRepel=new Button("拒绝此IP");
static JTextField tfNewIP=new JTextField(20);
static JPanel pane=new JPanel();
static JTextField tfState=new JTextField(25);
static TextField tfURL=new TextField("G:\\webServer2\\",28);
static TextField tfPort=new TextField("10288",3);
static Button btStart=new Button("启动服务器");
static Button btStop=new Button("停止服务器");
private static int IPnum=0;
public static boolean IPadmin=false;
static boolean click=false;
private static String url;
private static String;
private static Thread serverThread=null;
private static Socket connectionSocket=null;
private static ServerSocket listenSocket=null;
public WebServer() throws IOException{
serverThread=new Thread(new Runnable(){
public void run(){
try {
listenSocket = new ServerSocket(Integer.parseInt(tfPort.getText()));
} catch (IOException e) { }
while(true){
try {
connectionSocket=listenSocket.accept();
@SuppressWarnings("unused")
webClient client=new webClient(connectionSocket);
} catch (IOException e) {
}
}
}
});
}
public static void main(String args)throws Exception{
GUI();
}
public static void GUI(){
JFrame f=new JFrame("小白兔Web服务器(BY 丁寻)");
f.setSize(300,200);
f.setLocation(500, 300);
f.getContentPane().add(pane,BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
//不可以变大变小
f.setResizable(false);
pane.add(new JLabel("端口号:"));
pane.add(tfPort);
pane.add(btStart);
pane.add(btStop);
pane.add(new JLabel("配置路径"));
pane.add(tfURL);
pane.add(tfState);
pane.add(new JLabel("新IP请求"));
pane.add(tfNewIP);
pane.add(btAllow);
pane.add(btRepel);
pane.add(btReloadIP); btStart.addActionListener(new Listener());
btStop.addActionListener(new Listener());
btAllow.addActionListener(new Listener());
btRepel.addActionListener(new Listener());
btReloadIP.addActionListener(new Listener());

}
static class Listener implements ActionListener {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent event) {
if(event.getActionCommand()=="启动服务器"){
try {
url=tfURL.getText();
readIP();
tfState.setText("服务器已经启动......地址:"
+InetAddress.getLocalHost().toString());
} catch (Exception e) {
e.printStackTrace();
} try {
new WebServer();
} catch (IOException e) {
e.printStackTrace();
} serverThread.start(); btStart.setEnabled(false);
tfPort.setEditable(false);
btStop.setEnabled(true);
tfURL.setEditable(false);
btReloadIP.setEnabled(true);
}
if(event.getActionCommand()=="停止服务器"){
serverThread.stop();
tfState.setText("服务器已经停止");
btStart.setEnabled(true);
tfPort.setEditable(true);
btStop.setEnabled(false);
tfURL.setEditable(true);
btReloadIP.setEnabled(false);
}
if(event.getActionCommand()=="允许此IP"){
IPadmin=true;
//serverThread.start();
click=true;
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="拒绝此IP"){
click=true;
IPadmin=false;
//serverThread.start();
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="更新合法IP列表"){
try {
readIP();
} catch (IOException e) {
// e.printStackTrace();
}
}
}
}

public static void readIP() throws IOException{
int i=0;
byte;
File IPfile=new File(url+"checkIP.txt");
FileInputStream fileReader=new FileInputStream(IPfile);
fileReader.read(ips);
fileReader.close();
String strip=new String(ips);
StringTokenizer getIP=new StringTokenizer(strip,System.getProperty("line.separator"));

for(;;){
if(getIP.hasMoreTokens()){
checkIP=getIP.nextToken();
System.out.println(checkIP);
i++;
}
else{break;}
}
IPnum=i;

}
public static void disconnect(webClient c){

try {
//c.stop();
c.socket.close();
c.socket=null;
c=null; } catch (IOException e) {
e.printStackTrace();
}
//
}
class webClient extends Thread{
boolean check=true;
boolean send=false;
Socket socket;
BufferedReader inFromClient=null;
DataOutputStream outToClient=null;
String fileName;
String requestMessageLine;
StringTokenizer tokenizedLine=null;
FileInputStream inFile=null;
byte fileInBytes=null;
int numOfBytes=0;
File afile=new File(url+"log.html");
byte b;
public webClient(Socket s) throws IOException{
FileOutputStream out=new FileOutputStream(afile,true);
StringBuffer str=new StringBuffer();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String time=formatter.format(new Date());
socket=s;
str.append(time+" Client_IP:"+socket.getInetAddress().toString()+
" Client_Port:"+socket.getPort()+"《br》"+
System.getProperty("line.separator")
);
b=(new String(str)).getBytes();
System.err.println(new String(str));
out.write(b);
out.close();
inFromClient=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
outToClient=new DataOutputStream(socket.getOutputStream());
if(!checkIP(socket)){
String strWait="《html》" +
"《title》等待验证《/title》" +
"《body》正在等待管理员验证您的IP是否合法,请稍候......《br》《br》" +
"(如果页面没有自动跳转,请每5秒钟刷新一次," +
"以判断管理员是否已经允许您进入)《/body》" +
"《/html》";
byte waiting=strWait.getBytes();
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n");
outToClient.writeBytes("Content-Type: text/html\r\n");
outToClient.writeBytes("Content-Length: "+waiting.length+"\r\n");
outToClient.writeBytes("\r\n");
outToClient.write(waiting,0,waiting.length);
if(!admin()){
return;
}
WebServer.IPadmin=false;
}
this.start(); }
public void receive() throws IOException{
while(socket!=null){
requestMessageLine=inFromClient.readLine();
if(requestMessageLine.length()==0){break;}
System.out.println(requestMessageLine);
tokenizedLine=new StringTokenizer(requestMessageLine);
if(tokenizedLine.hasMoreTokens()){
String strhead=tokenizedLine.nextToken();
if(strhead.equals("GET")){
send=true;
fileName=tokenizedLine.nextToken();
if(fileName.equals("/")){
fileName="index.html";
}
else if(fileName.startsWith("/")){
fileName=fileName.substring(1);
fileName=fileName.replace("%5C", "/");
fileName=fileName.replace("%20", " ");
//如果是文件 ,不要check
check=false;
}
}//endnexttoken
if(check){
if(strhead.equals("User-Agent:")){
if(requestMessageLine.contains("Firefox/3")){
System.err.println("true");
}
else{
System.err.println("false");
fileName="ERROR.html";
send=true;
}
}
}
//....
}//endhastoken
}//endwhile
if(send){
readFile();
send(fileInBytes, numOfBytes);
} }
public void send(byte fileInBytes,int numOfBytes) throws IOException{
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n"); if(fileName.endsWith(".jpg")){
outToClient.writeBytes("Content-Type: image/jpg\r\n");
}
else if(fileName.endsWith(".gif")){
outToClient.writeBytes("Content-Type: image/gif\r\n");
}
else if(fileName.endsWith(".wmv")){
outToClient.writeBytes("Content-Type: video/x-ms-wmv\r\n");
}
else if(fileName.endsWith(".avi")){
outToClient.writeBytes("Content-Type: video/avi\r\n");
}
else if(fileName.endsWith(".html")||fileName.endsWith(".htm")){
outToClient.writeBytes("Content-Type: text/html\r\n");
}
outToClient.writeBytes("Content-Length: "+numOfBytes+"\r\n"); outToClient.writeBytes("\r\n");
outToClient.write(fileInBytes,0,numOfBytes);
}
//得到文件
public void readFile() throws IOException{
File file=new File(url+fileName);
b=(" Client_Request:"+fileName+"《br》"+
System.getProperty("line.separator")).getBytes();
FileOutputStream out=new FileOutputStream(afile,true);
out.write(b);
out.close();
numOfBytes=(int)file.length();
inFile=new FileInputStream(url+fileName);
fileInBytes=new byte;
inFile.read(fileInBytes);
inFile.close(); }
public boolean checkIP(Socket skt){
for(int i=0;i《WebServer.IPnum;i++){
if(skt.getInetAddress().toString().equals(checkIP)){
return true;
}
}
return false;

}
public boolean admin() throws IOException{
WebServer.tfNewIP.setText("IP:"+socket.getInetAddress().toString()+
" PORT:"+socket.getPort());
WebServer.btAllow.setEnabled(true);
WebServer.btRepel.setEnabled(true);
while(!click){}
click=false;

if(WebServer.IPadmin){
File IPFile=new File(url+"checkIP.txt");
FileOutputStream appIP=new FileOutputStream(IPFile,true);
byte ips=(socket.getInetAddress().toString()+
System.getProperty("line.separator")).getBytes();
appIP.write(ips);
appIP.close();
//WebServer.readIP();
WebServer.checkIP=socket.getInetAddress().toString();
WebServer.IPnum++;
return true;
}
else{
WebServer.disconnect(this);
return false;
}
}

public void run(){
try {
receive();
} catch (IOException e) {
}
WebServer.disconnect(this);
}
}}

java webserver,如何应用到真实服务器上面

如果是租的虚拟服务器,直接用FTP上传就行(前提是那个服务器支持JSP)。不同虚拟服务器要求不同,具体要求看网站的帮助
如果是实体服务器,看服务器是否是server系统,如果是的话,配置好系统设置,放在对应目录下(跟tomcat一个道理)
如果不是server系统,装上tomcat,跟本地操作方法一模一样

希望这篇关于java webserver教程的干货,尤其是对急!java调用webservice并解析返回值,重谢!!的拆解,能真的帮到你。别忘了点个“在看”支持一下哦!
本文编辑:admin

更多文章:


网页上部分汉字乱码怎么办?我的电脑有时候显示中文字体会出现乱码,是怎么回事

网页上部分汉字乱码怎么办?我的电脑有时候显示中文字体会出现乱码,是怎么回事

是不是总觉得乱码汉字的知识体系太庞大,网页上部分汉字乱码怎么办更是无从下手?本文将帮你化繁为简,抓住核心。

2026年3月30日 04:20

eclipse配置tomcat环境变量(在Eclipse lomboz中运行JSP时,如何配置Tomcat服务器)

eclipse配置tomcat环境变量(在Eclipse lomboz中运行JSP时,如何配置Tomcat服务器)

您是否正在为搞不清eclipse配置tomcat环境变量和在Eclipse lomboz中运行JSP时,如何配置Tomcat服务器的关系而烦恼?恭喜,这篇干货就是您的“及时雨”。

2026年3月30日 04:00

ps keygen注册机下载(跪求MAC 版的PS 注册机下载地址 百度盘等连接 谢谢了大婶们)

ps keygen注册机下载(跪求MAC 版的PS 注册机下载地址 百度盘等连接 谢谢了大婶们)

您是否正在为搞不清ps keygen注册机下载和跪求MAC 版的PS 注册机下载地址 百度盘等连接 谢谢了大婶们的关系而烦恼?恭喜,这篇干货就是您的“及时雨”。

2026年3月30日 03:40

冒泡排序最坏情况下比较次数(对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为多少)

冒泡排序最坏情况下比较次数(对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为多少)

结合最近的趋势来看,冒泡排序最坏情况下比较次数的热度持续攀升,而对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为多少作为其核心组成部分,讨论度更是居高不下。

2026年3月30日 03:20

有限空间发生事故救援程序是什么(受限空间事故专项应急预案)

有限空间发生事故救援程序是什么(受限空间事故专项应急预案)

我们注意到,那些在有限空间发生事故救援程序是什么上表现突出的人,往往都对受限空间事故专项应急预案有独到的见解。这并非巧合。

2026年3月30日 03:00

java webserver教程(急!java调用webservice并解析返回值,重谢!!)

java webserver教程(急!java调用webservice并解析返回值,重谢!!)

我们整理了关于java webserver教程最高频的提问,发现急!java调用webservice并解析返回值,重谢!!位列榜首。于是,就有了这篇集中解答的精华帖。

2026年3月30日 02:40

建站成功是怎么回事(打开一个网页显示恭喜站点创建成功怎么回事)

建站成功是怎么回事(打开一个网页显示恭喜站点创建成功怎么回事)

想快速搞懂建站成功是怎么回事吗?本文将围绕打开一个网页显示恭喜站点创建成功怎么回事等核心问题,用最直白的语言为您提供一份实用指南,帮您节省大量摸索的时间。

2026年3月30日 02:20

c***tantly和continuously的区别(continually continuously的区别是什么)

c***tantly和continuously的区别(continually continuously的区别是什么)

c***tantly和continuously的区别的背后,隐藏着怎样的秘密?continually continuously的区别是什么又在其中扮演了何种角色?带着疑问,我们一起探秘。

2026年3月30日 02:00

单片机编程题库及答案(急求几套51单片机经典考试题好的追加20分哦!)

单片机编程题库及答案(急求几套51单片机经典考试题好的追加20分哦!)

当大家谈论单片机编程题库及答案时,总免不了提及急求几套51单片机经典考试题好的追加20分哦!。它们之间究竟有何玄机?读完本文你便了然于胸。

2026年3月30日 01:40

minidump是什么文件夹可以删除吗(C盘中有几个特别大的dmp文件,不知道能不能删)

minidump是什么文件夹可以删除吗(C盘中有几个特别大的dmp文件,不知道能不能删)

是不是总觉得minidump是什么文件夹可以删除吗的知识体系太庞大,C盘中有几个特别大的dmp文件,不知道能不能删更是无从下手?本文将帮你化繁为简,抓住核心。

2026年3月30日 01:20

最近更新

eclipse配置tomcat环境变量(在Eclipse lomboz中运行JSP时,如何配置Tomcat服务器)
2026-03-30 04:00:01 浏览:0
java webserver教程(急!java调用webservice并解析返回值,重谢!!)
2026-03-30 02:40:01 浏览:0
c***tantly和continuously的区别(continually continuously的区别是什么)
2026-03-30 02:00:01 浏览:0
热门文章

dedication可以加s吗(dedication可数吗)
2026-03-29 04:20:01 浏览:0
健身基础知识(健身知识大全)
2026-03-29 23:00:01 浏览:0
100个必会的shell命令(linux shell sed命令用法)
2026-03-29 09:40:01 浏览:0
writeas浴室(writeas官网登录入口)
2026-03-29 01:40:01 浏览:0
标签列表