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

2019.1.10 更新完结 😀

考试题型:

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

重点

第一章

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

以下演示如何编写表格

<table>
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>

效果:

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
<form action="login.do" method="post">
    <table>
        <tr>
            <td>用户名:</td>
            <td> <input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td> <input type="password" name="password"></td>
        </tr>
        <tr>
            <td><input type="submit" value="登陆"></td>
            <td><input type="reset" value="重置"></td>
        </tr>
    </table>
</form>

程序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("<html><body>");
        if("admin".equals(username) && "admin".equals(password)) {
            out.println("登陆成功欢迎您," + username);
        }
        else {
            out.println("对不起!您的用户名或密码不正确");
        }
        out.println("</body></html>");
    }

}

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

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

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

<input type="checkbox" name="quest3" value="1">Java语言
<input type="checkbox" name="quest3" value="2">C语言
<input type="checkbox" name="quest3" value="3">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);
    }
%>

<form action="area.jsp" method="post">
    请输入圆的半径:
    <input type="text" name="radius">
    <inout type="submit" value="提交">
</form>

半径为<%= 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(只对重点进行描述)

<input type="text" name="custName">
<input type="text" name="email">
<input type="text" name="phone">

程序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,打印属性值)

<!--页面首先在会话作用域查找名为customer的bean实例,如果找到将输出bean实例的各属性值,如果找不到将创建一个bean实例并使用同名的请求参数为bean实例的各属性值赋值,最后也输出各属性值-->
<jsp:useBean id="customer" scope="session" class="class.demo.Customer">
    <jsp:setProperty name="customer" property="*">
</jsp:useBean>
客户名:<jsp:getProperty name="customer" property="custName">
...

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是重中之重。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,810评论 0 11
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,434评论 0 13
  • 天哥_d4b9阅读 172评论 0 0
  • 水波不兴 我把天空倒过来, 就变成了海 我就栖息在这里 这是有海啸,大浪的小洋 太阳哪有我这么闪光,风儿也不够我轻...
    诗与远方Endeavor阅读 256评论 1 8
  • day15 小白 阅读 这是这本书最后的几个章节,这部分包含的内容也比较多,没有那么集中,这里就一些比较有印象的...
    什么都是小白阅读 933评论 0 0