在J2EE中,为了使得在客户端可以接收用户在控制台上的键盘输入,且把键盘输入发送到服务器,同时还要接收服务器给客户端的反馈,需要构造三个用于输入输出的对象变量,以下代码符合要求的是()。其中clientSocket是一个Socket类的对象。     A、BufferedRead br1 = System.in; BufferedRead br2 = new BufferedReader(clientSocket.getInputStream())); PrintStream ps = new Print

题目

在J2EE中,为了使得在客户端可以接收用户在控制台上的键盘输入,且把键盘输入发送到服务器,同时还要接收服务器给客户端的反馈,需要构造三个用于输入输出的对象变量,以下代码符合要求的是()。其中clientSocket是一个Socket类的对象。     

  • A、BufferedRead br1 = System.in; BufferedRead br2 = new BufferedReader(clientSocket.getInputStream())); PrintStream ps = new PrintStream(clientSocket.getOutputStream());
  • B、BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));PrintStream ps = new PrintStream(clientSocket.getOutputStream());
  • C、 BufferedRead br1 = new InputStreamReader(System.in); BufferedReader br2 = newInputStreamReader(clientSocket.getInputStream()); PrintStream ps = new PrintStream(clientSocket.getOutputStream());
  • D、 BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintStream ps = clientSocket.getOutputStream();

相似考题
更多“在J2EE中,为了使得在客户端可以接收用户在控制台上的键盘输入,且把键盘输入发送到服务器,同时还要接收服务器给客户端的反馈,需要构造三个用于输入输出的对象变量,以下代码符合要求的是()。其中clientSocket是一个Socket类的对象。     A、BufferedRead br1 = System.in; BufferedRead br2 = new BufferedReader(clientSocket.getInputStream())); PrintStream ps = new Print”相关问题
  • 第1题:

    建立Socket类的客户端需要哪些步骤?()

    A.如果连接成功,则可以通过此Socket对象进行通讯;

    B.如果连接成功,则重新创建一个Socket对象用于通讯;

    C.向指定的IP地址和端口号进行连接尝试;

    D.创建一个Socket对象;

    E.首先通过网络扫描工具扫描服务器端是否已经开通;


    参考答案:A, C, D

  • 第2题:

    [Java 源程序:一个简单的Web服务器]

    /************************************************************/

    /* WebServer.java* /

    /************************************************************/

    package objclass;

    import java.net. * ;

    import java.io. * ;

    public class WebServer {

    public static final int PORT=8080; //Web 服务器侦听的端口号

    public static final String WEB_ROOT=

    System.getProperty(“user。dir”)+File.separator+“webroot”;

    //WEB_ROOT 变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源

    private static final String SHUTDOWN_COMMAND=“/shutdown”;

    //SHUTDOWN_COMMAND变量保存关闭服务器的命令

    private boolean shutdown=falset //是否收到关闭服务器命令的标志

    public static void main(String[] args) {

    WebServer server=new WebServer();

    server.await();

    }

    public void await(){

    Serversocbet serverSocket=null

    try{

    serversocket=new (1) ; //创建侦听端口号为PORT的Serversocket类型的对象

    System.out.println(“WebServer Started!”);

    }cateh(10Exceptione){

    e.printStackTrace();

    System.exit(1);

    }

    while(! shutdown) { //循环等待客户端连接

    Socket socket=null

    InputStream input=null;

    OutputStream utput=null;

    try{

    socket= (2) ; //创建来自客户端的连接套接宇

    input=SOCket. (3) , //创建输入流

    output=SOCket. (4) //创建输出流

    Request request=new Request(input); //创建Request对象

    request. (5) ; //解析客户端HTTP请求

    Responseresponse=new Response(output); //创建Response对象

    response.setRequest(request); //将Request对象传递给Response对象

    response (6) ; //给客户端发送所请求的静态资源

    (7) , //关闭连接套接字

    shutdown=request. (8) .equals(SHUTDOWN_COMMAND);

    //判断当前HTTP请求中的URI是否是关闭服务器命令

    }

    }

    }

    }

    /************************************************************/

    / * Request.java */

    /************************************************************/

    package objclass;

    import java.io.InputStream;

    import java.io.IOException;

    public class Request {

    private InputStream input;

    private String uri;

    public Request(InputStream input) { this.input=input;}

    public void parse() {... parseUri();...} //解析客户端HTTP请求消息

    private String parseUri(String requestString) {... } //解析客户端HTTP请求中的URI

    public String getUri() {return uri;}

    }

    /************************************************************/


    正确答案:(1)ServerSocket(PORT) 或 ServerSocket(PORT 1 InetAddress. getByName("127. 0.0.1")) (2) serverSocket. accept() (3) getlnputStream() (4) getOutputStream() (5) parse() (6) sendStaticResource() (7) socket. close() (8) getUri() (9) http://localhost:8080/index. html 或 http.//127.0.0.1:8080/index.html (10) http://localhost:8080/shutdown 或 http://127.0.0.1: 8080/shutdown
    (1)ServerSocket(PORT) 或 ServerSocket(PORT, 1, InetAddress. getByName("127. 0.0.1")) (2) serverSocket. accept() (3) getlnputStream() (4) getOutputStream() (5) parse() (6) sendStaticResource() (7) socket. close() (8) getUri() (9) http://localhost:8080/index. html 或 http.//127.0.0.1:8080/index.html (10) http://localhost:8080/shutdown 或 http://127.0.0.1: 8080/shutdown 解析:本题考查考生对Socket通信的基本模型和Java的基本调用方法的了解。下面介绍基于Socket的客户/服务器通信模式的基本模型。
    在TCP/IP网络应用中,通信的2个进程间相互作用的主要模式是客户/服务器模式 (Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于2点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户/服务器模式的TCP/IP。
    客户/服务器模式在操作过程中采取的是主动请求方式。首先服务器方启动,并根据请求提供相应服务;
    (1)打开一通信通道并告知本地主机,它愿意在某一公认地址上(端口,如FTP为 21)接收客户请求;
    (2)等待客户请求到达该端口;
    (3)接收到重复服务请求,处理该请求并发送应答信号,接收到并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork和exec)。新进程处理此客户请求,并不需要对其他请求作出应答。服务完成后,关闭此新进程与客户的通信链路并终止;
    (4)返回第2步,等待另一客户请求;
    (5)关闭服务器。
    客户方的启动过程如下:
    (1)打开一通信通道,并连接到服务器所在主机的特定端口:
    (2)向服务器发服务请求报文,等待并接收应答,继续提出请求;
    (3)请求结束后关闭通信通道并终止。
    从上面所描述过程可知:
    (1)客户与服务器进程的作用是非对称的,因此编码不同;
    (2)服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
    值得注意的是,该题没有给出完整的Java服务程序代码,考查考生对Socket通信的基本过程的理解,要求熟悉Socket传送数据的基本方法。程序给出对Response和 Request对象的定义和2个对象的方法定义,但是方法的具体的功能一定要注意看语句后面的注释,要填空的地方的信息也来自于后面注释的信息。Java程序是区分大小写的,所以一定要弄清楚什么地方指的是类,什么地方是类的实例。因为类和类的实例的拼写通常就是只有大小写的区别。
    (1)空很明显,要求创建一个侦听端口为PORT的ServerSocket类型的对象,那么只要调用ServerSocket类的构造函数就可以了,具体的参数可以参照ServerSocket类的成员函数表中的格式调用。因此,(1)空应填ServerSocket(PORT)。
    (2)空的作用从注释中可知,是要创建来自客户端的连接套接字,从ServerSocket类的成员函数表中可知,其函数accept()的作用是返回建立连接的Socket类型的对象。因此,(2)空应填serverSocket.accept()。
    (3)空是创建输入流,从Socket类的主要成员函数表中可知getlnputStream()是返回当前对象关联的输入流。因此,(3)空应填getlnputStream()。
    (4)空是创建输出流,从Socket类的主要成员函数表中可知getOutputStream()是返回当前对象关联的输出流。因此,(4)空应填getOutputStream()。
    (5)空是解析客户端HTTP请求,在resopnse对象的成员函数表中可以知道 parse()的作用就是解析客户HTTP请求消息。因此,(5)空应填parse()。
    (6)空是解析客户端发送所请求的静态资源,在resopnse对象的成员函数表中可以找到对应的成员函数sendStaticResource()。因此,(6)空应填sendStaticResource()。
    (7)空关闭套接字,可以直接调用socket类的close()方法。因此,(7)空应填 socket.close()。
    (8)空要注意其作用是要获取HTTP中的URI的信息从而决定是否关闭服务器,在 Request对象的定义中可以发现有3个跟URl相关的成员函数,但是只有parseUri (string requestString)可以解析出其中的URI,但是该函数要求有一个输入的参数,所以必须要找出如何获得这个参数。在题目所给出的信息中,只有Request对象的另一个成员函数getUri()可以返回string类型的URI。因此,(8)空应填parseUri(getUri())。
    (9)空的要点在于必须了解服务器在本地运行的基本路径和端口。在题目最开始给出的请求消息示例信息中,可以看到这么一句,即host:localhost:8080,所以该服务器使用的不是标准端口,而是8080号。同样,在服务器主程序中定义的常量PORT也可以看出来。在下一个常量的定义WEB_ROOT=System.getProperty(“user.dir”)+File.separator+”webroot”中,不要被webroot迷惑,因为Web服务器本身会使用WEB_ ROOT作为根目录,至于根目录指向哪个文件夹只要在定义里面指定好就可以了,不要在 HTTP请求中再加上一个路径。因此,(9)空应填http;//localhost:8080/index.html。
    (10)空可依照此类推可知答案为http://localhost:8080/shutdown。

  • 第3题:

    下列选项均是邮件系统的工作过程,正确的顺序是( )。 ① 用户使用客户端软件创建新邮件。 ② 接收方客户端软件使用POP3/IMAP4协议从邮件服务器中读取邮件。 ③ 客户端软件使用SMTP协议将邮件发到发送方的邮件服务器上。 ④ 发送方邮件服务器使用SMTP协议将邮件发送到接收方的邮件服务器上,接收方的邮件服务器将收到的邮件存储在用户的邮箱中,并等待用户处理。

    A.①②③④

    B.①②④③

    C.①④②③

    D.①③④②


    正确答案:D
    解析:这道题要求读者掌握邮件系统的工作过程,邮件系统的工作过程如下:①用户使用客户端软件创建新邮件;②客户端软件使用SMTP协议将邮件发到发送方的邮件服务器上;③发送方邮件服务器使用SMTP协议将邮件发送到接收方的邮件服务器上,接收方的邮件服务器将收到的邮件存储在用户的邮箱中,并等待用户处理;④接收方客户端软件使用POP3/IMAP4协议从邮件服务器中读取邮件。完整的电子邮件系统包括客户端软件和服务器软件,服务器软件一般需要实现SMTP服务和POP3服务,目前邮件服务器实现IMAP服务,客户端也要使用相应的协议发送、接收或管理用户的邮件。

  • 第4题:

    建立Socket类的客户端需要哪些步骤?()

    • A、如果连接成功,则可以通过此Socket对象进行通讯;
    • B、如果连接成功,则重新创建一个Socket对象用于通讯;
    • C、向指定的IP地址和端口号进行连接尝试;
    • D、创建一个Socket对象;
    • E、首先通过网络扫描工具扫描服务器端是否已经开通;

    正确答案:A,C,D

  • 第5题:

    使用WEB客户端输入验证的风险是()。

    • A、WEB服务器端可能无法验证接收到的客户端输入
    • B、WEB服务器端可能会从WEB客户端接收到无效的输入
    • C、WEB客户端可能会从WEB服务器端接受到无效的输入
    • D、输入内容在进行客户端验证后,用户能够对其进行改变

    正确答案:D

  • 第6题:

    以下关于Session对象,不正确的是()

    • A、Session对象保存在客户端
    • B、是服务器端分配给每个用户的一个存储信息的全局变量的集合
    • C、使用TimeOut方法可以设置其有效期
    • D、用户在应用程序的Web页面之间跳转时,Session对象不会丢失

    正确答案:A

  • 第7题:

    ()对象用语接收客户端浏览器提交的数据,而()对象的功能则时将服务器端的数据发送到客户端的数据发送到客户端浏览器。


    正确答案:Request;RESPONSE

  • 第8题:

    Request 对象用于接收客户端浏览器提交的数据,而()对象的功能则是将服务器端的数据发送到客户端浏览器。


    正确答案:Response

  • 第9题:

    在J2EE中,当使用以某主机地址为参数的构造器来创建新的Socket实例时()。 

    • A、客户端试图通过Internet建立与该主机的链接
    • B、客户端启动运行于主机上的服务器程序
    • C、没有特殊事情发生,直到调用Socket的accept()方法
    • D、调用Socket的accept()方法

    正确答案:A

  • 第10题:

    单选题
    Servet是一个在服务器上运行、处理请求信息并将其发送到客户端的Java程序,()接受服务请求、找到servlet累、加载Servlet类并创建Servlet对象。
    A

    客户端

    B

    IE浏览器

    C

    Servlet容器

    D

    Servlet本身


    正确答案: C
    解析: 暂无解析

  • 第11题:

    单选题
    在J2EE中,为了使得在客户端可以接收用户在控制台上的键盘输入,且把键盘输入发送到服务器,同时还要接收服务器给客户端的反馈,需要构造三个用于输入输出的对象变量,以下代码符合要求的是()。其中clientSocket是一个Socket类的对象。
    A

    BufferedRead br1 = System.in; BufferedRead br2 = new BufferedReader(clientSocket.getInputStream())); PrintStream ps = new PrintStream(clientSocket.getOutputStream());

    B

    BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));PrintStream ps = new PrintStream(clientSocket.getOutputStream());

    C

     BufferedRead br1 = new InputStreamReader(System.in); BufferedReader br2 = newInputStreamReader(clientSocket.getInputStream()); PrintStream ps = new PrintStream(clientSocket.getOutputStream());

    D

     BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintStream ps = clientSocket.getOutputStream();


    正确答案: B
    解析: 暂无解析

  • 第12题:

    填空题
    ()对象用于接收客户端浏览器提交的数据,而()对象的功能则是将服务器端的数据发送到客户端浏览器。

    正确答案: Request,Response
    解析: 暂无解析

  • 第13题:

    DHCP服务器安装好后并不是立即就可以给DHCP客户端提供服务,它必须经过一个()步骤。未经此步骤的DHCP服务器在接收到DHCP客户端索取IP地址的要求时,并不会给DHCP客户端分派IP地址。


    参考答案:授权

  • 第14题:

    在C++中使用流进行输入输出,其中用于键盘输入的对象是 【 】

    A.cerr

    B.cin

    C.cout

    D.cfile


    正确答案:B
    考点点击:本题主要考查的知识点为预定义流对象。要点透析:cin为标准输入,即键盘输入。cout为标准输出,即屏幕输出。

  • 第15题:

    以下有关VPN客户端的叙述,正确的是()。

    • A、在VPN客户端,用户需要新建一个VPN类型的连接
    • B、在VPN客户端连接向导中输入的用户名和密码是在VPN服务器上设置的
    • C、VPN客户端建立VPN连接的过程中,不需要输入VPN服务器的IP地址
    • D、VPN为经常出差而又需要使用公司内部资源的用户提供了方便
    • E、为了方便VPN客户端的接入,可以设置成不经过身份验证的方式

    正确答案:A,B,D

  • 第16题:

    在J2EE中,下面代码中,()不会编译错误。    

    • A、File f = new File("/","autoexec.bat");
    • B、DataInputStream din = new DataInputStream(new FileInputStream("autoexec.bat"));
    • C、InputStreamReader in = new InputStreamReader(System.in);
    • D、OutputStreamWriter out = new OutputStreamWriter(System.in);

    正确答案:A,B,C

  • 第17题:

    以下关于Cookies对象,不正确的是()

    • A、Response.Cookies可以向客户端创建一个Cookies对象
    • B、用户可以在浏览器设置中手动清除Cookies对象
    • C、Cookies对象一般是没有有效期的
    • D、Cookies对象保存在服务器上

    正确答案:D

  • 第18题:

    ()对象用于接收客户端浏览器提交的数据,而()对象的功能则是将服务器端的数据发送到客户端浏览器。


    正确答案:Request;Response

  • 第19题:

    下面关于session对象说法中正确的是()

    • A、session对象的类是HttpSession.HttpSession由服务器的程序实现
    • B、session对象提供HTTP服务器和HTTP客户端之间的会话
    • C、session可以用来储存访问者的一些特定信息
    • D、session可以创建访问者信息容器。
    • E、当用户在应用程序的页之间跳转时,存储在session对象中的变量会清除

    正确答案:A,B,C,D

  • 第20题:

    java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。


    正确答案:正确

  • 第21题:

    下列关于邮件系统工作过程的描述中,错误的是()。

    • A、用户使用客户端软件创建新邮件
    • B、客户端软件使用SMTP协议将邮件发送到接收方的邮件服务器
    • C、接收方的邮件服务器将收到的邮件存储在用户的邮箱中待用户处理
    • D、接收方客户端软件使用POP3或IMAP4协议从邮件服务器读取邮件

    正确答案:B

  • 第22题:

    填空题
    Request 对象用于接收客户端浏览器提交的数据,而()对象的功能则是将服务器端的数据发送到客户端浏览器。

    正确答案: Response
    解析: 暂无解析

  • 第23题:

    填空题
    ()对象用语接收客户端浏览器提交的数据,而()对象的功能则时将服务器端的数据发送到客户端的数据发送到客户端浏览器。

    正确答案: Request,RESPONSE
    解析: 暂无解析