【问题标题】:how to implement client and server code in jsp如何在jsp中实现客户端和服务端代码
【发布时间】:2014-04-08 18:13:31
【问题描述】:

我在Java SE 中有一个用于Desktop 的小型聊天应用程序,我也想为Web 实现相同的功能,我有ChatServer 为:

public class ChatServer extends Thread {
public static final int DEFAULT_PORT = 6035;


public static String initServer() {
    String msg = "";
    int port = DEFAULT_PORT;
    ServerSocket serverSocket = null;
    Socket socket = null;
    try {
        serverSocket = new ServerSocket(port);
        msg = "Listening on port " + port;
        while (true) {
            socket = serverSocket.accept();
            /*System.out.println("Connection receive from "
                    + socket.getRemoteSocketAddress());*/
            ChatHandler handler = new ChatHandler(socket);
            handler.start();
        }


    } catch (IOException ioe) {
        System.err.println("Usage: java ChatServer [port]");
        System.err.println("Where options include:");
        System.err.println("\tport the port on which to listen.");
        msg = "Usage: java ChatServer [port]";
        System.exit(0);
    } finally {
        try {
            serverSocket.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }

    return msg;
}
}

现在打电话给index.jsp,我有:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1><%=pkj.com.lenvel.ChatServer.initServer() %></h1>
</body>
</html>

上面的代码没有显示任何消息,我仍然很困惑,在哪里实现Client的代码?

【问题讨论】:

  • 客户是什么意思?客户端就是你的浏览器
  • 我怀疑您是否应该在 JSP 中创建一个套接字。你能创建一个处理所有连接的类吗?

标签: java jsp


【解决方案1】:

试试这个

服务器(YourServer.java)

import java.io.*;
import java.net.*;

public class YourServer
{    
    public static void main(String[] args ) 
    {
        try {    
            ServerSocket socket = new ServerSocket(8765);

            Socket insocket = socket.accept( );

            BufferedReader in = new BufferedReader (new 
                InputStreamReader(insocket.getInputStream()));
            PrintWriter out = new PrintWriter (insocket.getOutputStream(), 
                true);

            String instring = in.readLine();
            out.println("The server got this: " + instring);
            insocket.close();
        }
        catch (Exception e) {} 
     } 
}

Client.Jsp

<%@ page import="java.io.*, java.net.*" %>
<HTML>
    <HEAD>
        <TITLE>Creating Client/Server Applications</TITLE>
    </HEAD>
        <BODY>
        <H1>Creating Client/Server Applications</H1>
        <% 
        try{
            int character;
            Socket socket = new Socket("127.0.0.1", 8765);
            InputStream inSocket = socket.getInputStream();
            OutputStream outSocket = socket.getOutputStream();
            String str = "Hello!\n";
            byte buffer[] = str.getBytes();
            outSocket.write(buffer);
            while ((character = inSocket.read()) != -1) {
                out.print((char) character);
            }
            socket.close();
        }
        catch(java.net.ConnectException e){
        %>
            You must first start the server application 
            (YourServer.java) at the command prompt.
        <%
        }
        %>
    </BODY>
</HTML>

Taken from this link

【讨论】:

  • 首先Thank you very much,现在我想问的更多是如何在Apache Tomcat Serverexecute 包含main() 的类?
  • 如果你使用的是eclipse,右击yourserver.java并作为一个应用程序运行它就可以了。
  • 好的,但我实际上想问的是I have a free hosting server on the Net which is Apache Tomcat Server,现在我该如何运行该服务器。
  • 通过命令提示符将其作为简单的 java 程序运行。步骤,javac YourServer.java,java YourServer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
相关资源
最近更新 更多