考试重点但不囊括所有考点

2019.1.10 更新完结

考试题型:

  • 单选题 15题,30分(期中考试出现过)
  • 简答复习笔记题 25分(考哪些概念)
  • 程序分析题 25分 较难(填空或者回答问题,比如程序执行之后会有什么效果)
  • 编程题 1题 20分

重点

第一章

11-12页客户端动态web文档有哪些概念区别,实现的哪些技术架构
html常用的元素会写

以下演示如何编写表格

1 2
3 4

效果:

1 2
3 4

css,javascript


课后习题整理

  • (选择题)Servlet必须在什么环境下运行?

    • 操作系统
    • Java虚拟机
    • Web容器(✔)
    • Web服务器
  • (简答题)什么是URL,什么是URI,它们都由哪几部分组成?URL与URI有什么关系?

    • 应该不考
  • (简答题)动态Web文档技术有哪些?服务器端动态文档技术和客户端动态文档技术有何不同?

    • 动态Web文档技术

      • 服务器端动态文档技术
        • CGI: 公共网关接口
        • 服务器扩展
        • 在HTML页面嵌入脚本
      • 客户端动态文档技术
        • 使用Javascript结合DOM
    • 不同点

      • 服务器端动态文档技术的页面,代码是在服务器运行的。
      • 客户端动态文档技术的页面,代码是在客户端运行的。
  • (简答题)什么是Servlet?什么是Servlet容器?它的主要作用是什么?

    • Servlet是使用Servlet API开发的Java程序,它运行在Servlet容器中。
    • Servlet容器是运行Servlet的软件。
    • 它主要用来扩展Web服务器功能。
  • (简答题)什么是MVC设计模式, 它有什么优点?

    • 第四章会讲到

第二章

servlet的生命周期的过程2.2.1-2.2.4

  1. 加载和实例化
    • 对每个Servlet,容器将调用Class.forName()对其进行加载和实例化。
  2. 初始化Servlet init()
    • 在完成实例化后,容器将调用init(ServletConfig)对其进行初始化。然后,容器将调用无参的init()。之后Servlet就完成了初始化。
  3. 为客户提供服务 service()
    • 在Servlet实例正常初始化后,它就准备为客户提供服务。
  4. 销毁和卸载Servlet destory()
    • 当容器决定不再需要Servlet实例时,它将在Servlet实例上调用destory(), Servlet在该方法中释放资源。

28页 2.1 2.2的代码能写得出来
下面是一个登陆页面,通过表单提供请求参数,然后在Servlet中检索参数并验证,最后向用户发送验证消息。

  • 程序2.1
用户名:
密码:

程序2.2

import *

@webServlet(name="LoginServlet", urlPatterns={"/login.do"})
public class LoginServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException{
        String username = reuqest.getParameter("username");
        String password = request.getParameter("password");
        PrintWriter out = response.getWriter();
        out.println("");
        if("admin".equals(username) && "admin".equals(password)) {
            out.println("登陆成功欢迎您," + username);
        }
        else {
            out.println("对不起!您的用户名或密码不正确");
        }
        out.println("");
    }

}

34页 2.7 2.8程序的原理基本逻辑结构,写的时候心里有数。

  • 一个简单的考试系统,该例说明了当一个参数有多个值时,如何使用getParameterValues()获得该参数的所有参数值。

  • 这里只挑了重点进行讲述

Java语言
C语言
C++语言
  • 在Servlet中
String[] quest3 = request.getParameterValues("quest3");
if(quest3 != null && quest3.length == 2 && quest3[0].equals("1") && quest3[1].equals("3")) {
    score += 25;
}

54 程序2.16怎么使用servletConfig读取初始化参数

// 设置初始化参数
@WebServlet(name="...", urlPatterns={"/..."},
        initParams = {
            @WebInitParam(name="name", value="zhuyun"),
            @WebInitParam(name="sex", value="male")
        }
 )
 public class Demo extends HttpServlet{
    ServletConfig config = null;
    String name = null;
    String sex = null;
    
    public void init(ServletConfig config) {
        this.config = config;
        name = config.getInitParameter("name");
        sex = config.getInitParameter("sex");
    }
 }

课后习题

P1:http://www.myserver.com:80/helloweb/helloServlet/hello/abc.jsp?userName="zy"

  • ❓后面的内容称为什么 --- 查询串
  • 具体每个部分名称叫什么,请看书本第50页

P2: HTTP请求结构由哪几部分组成?请求行由哪几部分组成

  • HTTP请求结构
    • 请求行
    • 请求头
    • 空行
    • 数据
  • 请求行
    • 方法名(GET, POST...)
    • 请求资源的URI
    • HTTP版本

P3: HTTP响应结构由哪几部分组成?状态行由哪几部分组成?

  • HTTP响应结构
    • 状态行
    • 响应头
    • 空行
    • 响应数据
  • 状态行
    • HTTP版本号
    • 状态码
    • 描述状态码的短语

P4: GET请求与POST请求有什么异同?

  • GET请求是从服务器检索资源
  • POST请求主要用于向服务器发送数据
sendRedirect("/abc.do"); // 相对于服务器的根目录
sendRedirect("abc.do"); // 相对于Web应用程序的文档根目录

request.getRequestDispatcher("/adb.do"); // 相对于Web应用程序的文档根目录
request.getRequestDispatcher("adb.do"); // 当前资源所在的目录

第三章

61 什么是会话

会话是一个客户与服务器之间的不间断的请求响应序列。

会话的管理机制

结合书本P62页的图

  1. 当浏览器向服务器发送第一个请求时,服务器可以创建会话对象,并为其指定唯一ID。将请求对象与会话对象进行关联
  2. 当服务器发送响应时,会携带会话ID
  3. 客户接收到会话ID,会将其缓存在Web浏览器中。当客户再次发送请求时,会携带会话ID
  4. 服务器会从请求对象中取出会话ID,与之前创建的会话对象进行匹配

66 程序3.3 在session中存储数据

// 只记载关键代码
// doGet函数中
int magic = (int)(Math.random() * 101);
HttpSession session = request.getSession();
session.setAttribute("num", (Integer)magic);

// doPost函数中
int guess = (int)request.getParameter("guess");
HttpSession session = request.getSession();
int num = (Integer)session.getAttribute("num");

第四章

JSP三种脚本元素,能够写具体的例子

  1. 声明

声明的变量仅在页面第一次载入时由容器初始化一次。

<%! int count = 1;%>
  1. 小脚本

不能在小脚本中声明方法,因为Java不能再方法中声明方法。

<%
    request.getParametetr("name");
%>
  1. 表达式

与变量声明不同,表达式不能以 ; 结尾。

<%= count%>

程序4.7 只用JSP完成的JAVA要做的事,熟练使用JSP

<%! 
    double r = 0;
    double area(double r) {
        return Math.PI * r * r;
    }
%>

<% 
    String radius = request.getParameter("radius");
    if(radius == null) {
        r = 0;
    }
    else {
        r = Double.parseDouble(radius);
    }
%>

请输入圆的半径: 半径为<%= r%>的圆的面积为:<%= area(r)%>

90 JSP隐含变量 4~6种隐含变量,基本概念,特点,功能

  1. application
    1. 基本概念:ServletContext的隐含变量
    2. 特点:每个Web应用程序创建一个唯一的ServletContext实例对象。
    3. 功能:获得Web应用程序的初始化参数过Servlet容器的版本信息,它也可以被用来与其它Servlet共享数据。
  2. session
    1. 基本概念:HttpSession的隐含变量
    2. 特点:...
  3. reuqest
  4. pageContext
  5. page
  6. out
  7. ...

94 四种作用域,名字是什么,生命周期有多长,写代码的时候怎么调用这四个作用域

  • 在第四章中已整理,请前往第四章查看
  • 四种作用域
    1. ServletContext 应用作用域, 应用程序生命期内都可以访问
    2. HttpSession 会话作用域,在会话有效时才能访问
    3. HttpServletRequest 请求作用域,仅在该请求被服务期间可被访问。
    4. PageContext 页面作用域,只能在它们所定义的转换单元中被访问。

103 JavaBean三个规范以及优点

  • 规范

    1. 为public类,需要有一个无参的构造方法
    2. 属性的访问权限为private,属性的首字母应为小写
    3. 每个属性有其对应的getXxx()和setXxx(), 如果属性的类型为boolean,则访问方法改为isXxx()
  • 优点

    • 将业务逻辑从表示层剥离出来了
    • 增加了代码的可重用性
    • 增加了可维护性
    • 可以充分利用面向对象的特性

程序4.20 知道JavaBean是怎么写的

  • 有一个Customer类,其中有custName, email, phone三个属性

程序4.21,22,23怎么结合JavaBean实现一系列的操作。

程序4.21(只对重点进行描述)




程序4.22(创建bean,在作用域中进行共享)

String name = request.getParameter("custName");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
Customer customer = new Customer(name, email, phone);
HttpSession session = request.getSession();
session.setAttribute("customer", customer);
RequestDispatcher rd = request.getRequestDisatcher("/displayCustomer.jsp");
rd.forward(request, response);

程序4.23(获取bean,打印属性值)



    

客户名:
...

110 什么是MVC的设计模式, MVC的实现步骤

  • MVC模式称为模块-视图-控制器模式。Web应用的组件分为模块,视图和控制器,每种组件完成各自的任务。该模型将业务逻辑和数据访问从表示层中分离出来。
  • 实现步骤
    1. 定义JavaBeans表示数据
    2. 使用Servlet处理请求
    3. 填写JavaBeans对象数据
    4. 将结果存储在作用域对象
    5. 将请求转发到作用域页面
    6. 最后在JSP页面中从JavaBeans中取出数据

第五章和第六章一分不考

第七章

  • 171 程序7.1 7.2 7.3 7.4 7.5,7.3是重中之重。

你可能感兴趣的:(考试重点但不囊括所有考点)