JavaWeb基础知识测试题及答案

1. 以下关于B/S、C/S说法正确的是()。 A: B/S架构比C/S架构更优秀 B: B/S架构是C/S架构的替代品 C: B/S是指浏览器/服务器,C/S是指客户端/服务器 D: B/S架构比C/S架构的维护和升级方式简单

答案:D

解析:

  • B/S架构和C/S架构各有优劣,不能简单地说哪种架构更优秀。
  • B/S架构不是C/S架构的替代品,它们在不同的场景下有不同的应用。
  • B/S是指浏览器/服务器,C/S是指客户端/服务器,这是正确的。
  • B/S架构比C/S架构的维护和升级方式简单,因为B/S架构的客户端只需要更新浏览器,而C/S架构的客户端需要更新软件。

2. 以下哪个选项表示请求转发() A. response.forward() B. response.sendRedirect() C. session.getRequestDispatcher().forward(request,response) D. request.getRequestDispatcher().forward(request,response)

答案:D

解析:

  • response.forward() 用于服务器内部的请求转发,将请求转发到同一个应用程序中的另一个资源,不会改变浏览器地址栏。
  • response.sendRedirect() 用于重定向,将请求发送到一个新的 URL,会改变浏览器地址栏。
  • session.getRequestDispatcher().forward(request,response) 无法实现请求转发。
  • request.getRequestDispatcher().forward(request,response) 用于服务器内部的请求转发,将请求转发到同一个应用程序中的另一个资源,不会改变浏览器地址栏。

3. 给定一个 Servlet 的 doGet方法中的代码片段,如下:

request.setAttribute('name','zhang');
request.getRequestDispatcher('/myservlet');

那么在MyServlet中可以使用()方法把属性 name的值取出来。 A. String str = request.getAttribute('name'); B. String str = (String) request.getAttribute('name'); C. Object str = request.getAttribute('name'); D. 无法取出来

答案:B

解析:

  • request.setAttribute() 方法用于在请求范围内设置属性,属性值可以是任何类型。
  • request.getAttribute() 方法用于获取请求范围内的属性值,返回类型为 Object
  • 由于 name 属性的值是 String 类型,因此需要将获取到的 Object 类型强制转换为 String 类型。

4. 下面( )方法可以返回当前请求的请求方式 A. request.getAttribute() B. session.getMethod() C. request.getMethod() D. request.getRequestURI()

答案:C

解析:

  • request.getAttribute() 用于获取请求范围内的属性值。
  • session.getMethod() 无法获取请求方式。
  • request.getMethod() 用于获取当前请求的请求方式,例如 GETPOST 等。
  • request.getRequestURI() 用于获取请求的 URL。

5. 当一个Servlet首次被请求的时候,服务器首先会调用________方法 A. doGet B. doPost C. doInit D. init

答案:D

解析:

  • doGetdoPost 方法分别用于处理 GETPOST 请求。
  • doInit 方法在 Servlet 初始化时被调用,用于初始化 Servlet 对象。
  • init 方法在 Servlet 初始化时被调用,用于初始化 Servlet 对象。

6. 从HTTP请求中,获得请求参数,应该调用( ) A. request对象的getAttribute()方法 B. request对象的getParameter()方法 C. session对象的getAttribute()方法 D. session对象的getParameter()方法

答案:B

解析:

  • request.getAttribute() 用于获取请求范围内的属性值。
  • request.getParameter() 用于获取 HTTP 请求中的参数值。
  • session.getAttribute() 用于获取会话范围内的属性值。
  • session.getParameter() 无法获取 HTTP 请求中的参数值。

7. 使用POST方式提交数据,接收数据时,处理中文乱码最直接有效方式为 ( ) A. request.setCharacterEncoding('utf-8'); B. response.setContentType('text/html;charset=utf-8'); C. String name = new String(request.getParameter('name').getBytes('ISO-8859-1'),'gbk'); D. response.setCharacterEncoding('gbk');

答案:A

解析:

  • request.setCharacterEncoding('utf-8'); 用于设置请求的字符编码为 UTF-8,可以有效地解决中文乱码问题。
  • response.setContentType('text/html;charset=utf-8'); 用于设置响应的字符编码为 UTF-8,用于控制页面显示的字符编码。
  • String name = new String(request.getParameter('name').getBytes('ISO-8859-1'),'gbk'); 可以用于将 ISO-8859-1 编码的字符串转换为 GBK 编码,但不是解决中文乱码的最佳方法。
  • response.setCharacterEncoding('gbk'); 用于设置响应的字符编码为 GBK,用于控制页面显示的字符编码。

8. 完整的配置一个Servlet需要__________________标签 A. B. C. D.

答案:B

解析:

  • <servlet></servlet> 标签用于配置 Servlet,包括 Servlet 的名称和类名。
  • <servlet-mapping></servlet-mapping> 标签用于将 Servlet 映射到 URL 模式,用于指定访问 Servlet 的 URL。

9. 在HTTP协议中,用于发送大量数据的方法是 ( ) A. get B. post C. put D. options

答案:B

解析:

  • GET 方法用于获取资源,数据量一般较小。
  • POST 方法用于提交数据,数据量可以比较大。
  • PUT 方法用于更新资源。
  • OPTIONS 方法用于获取服务器支持的 HTTP 方法。

10. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )。

public class Servlet1 extends HttpServlet {
    public void init() throws ServletException {
    }
    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println('hello!');
    }
}

A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello! C. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息内容

答案:B

解析:

  • Servlet 继承了 HttpServlet 类,HttpServlet 类中定义了 doGet()doPost() 方法,用于处理 GETPOST 请求。
  • service() 方法用于处理所有类型的请求,它会根据请求方式调用 doGet()doPost() 方法。
  • 由于 Servlet1 类中没有覆盖 doGet()doPost() 方法,所以 service() 方法会默认调用 doGet() 方法。
  • 因此,编译后,运行 Servlet1,在浏览器中会看到输出文字:hello!

注意: 在实际开发中,建议覆盖 doGet()doPost() 方法,以处理不同的请求类型。

JavaWeb 基础知识测试题及答案

原文地址: https://www.cveoy.top/t/topic/oTyW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录