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
- 加载和实例化
- 对每个Servlet,容器将调用
Class.forName()
对其进行加载和实例化。
- 对每个Servlet,容器将调用
- 初始化Servlet
init()
- 在完成实例化后,容器将调用
init(ServletConfig)
对其进行初始化。然后,容器将调用无参的init()
。之后Servlet就完成了初始化。
- 在完成实例化后,容器将调用
- 为客户提供服务
service()
- 在Servlet实例正常初始化后,它就准备为客户提供服务。
- 销毁和卸载Servlet
destory()
- 当容器决定不再需要Servlet实例时,它将在Servlet实例上调用
destory()
, Servlet在该方法中释放资源。
- 当容器决定不再需要Servlet实例时,它将在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页的图
- 当浏览器向服务器发送第一个请求时,服务器可以创建会话对象,并为其指定唯一ID。将请求对象与会话对象进行关联
- 当服务器发送响应时,会携带会话ID
- 客户接收到会话ID,会将其缓存在Web浏览器中。当客户再次发送请求时,会携带会话ID
- 服务器会从请求对象中取出会话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三种脚本元素,能够写具体的例子
- 声明
声明的变量仅在页面第一次载入时由容器初始化一次。
<%! int count = 1;%>
- 小脚本
不能在小脚本中声明方法,因为Java不能再方法中声明方法。
<%
request.getParametetr("name");
%>
- 表达式
与变量声明不同,表达式不能以 ; 结尾。
<%= 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种隐含变量,基本概念,特点,功能
- application
- 基本概念:ServletContext的隐含变量
- 特点:每个Web应用程序创建一个唯一的ServletContext实例对象。
- 功能:获得Web应用程序的初始化参数过Servlet容器的版本信息,它也可以被用来与其它Servlet共享数据。
- session
- 基本概念:HttpSession的隐含变量
- 特点:...
- reuqest
- pageContext
- page
- out
- ...
94 四种作用域,名字是什么,生命周期有多长,写代码的时候怎么调用这四个作用域
- 在第四章中已整理,请前往第四章查看
- 四种作用域
- ServletContext 应用作用域, 应用程序生命期内都可以访问
- HttpSession 会话作用域,在会话有效时才能访问
- HttpServletRequest 请求作用域,仅在该请求被服务期间可被访问。
- PageContext 页面作用域,只能在它们所定义的转换单元中被访问。
103 JavaBean三个规范以及优点
-
规范
- 为public类,需要有一个无参的构造方法
- 属性的访问权限为private,属性的首字母应为小写
- 每个属性有其对应的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应用的组件分为模块,视图和控制器,每种组件完成各自的任务。该模型将业务逻辑和数据访问从表示层中分离出来。
- 实现步骤
- 定义JavaBeans表示数据
- 使用Servlet处理请求
- 填写JavaBeans对象数据
- 将结果存储在作用域对象
- 将请求转发到作用域页面
- 最后在JSP页面中从JavaBeans中取出数据
第五章和第六章一分不考
第七章
- 171 程序7.1 7.2 7.3 7.4 7.5,7.3是重中之重。
网友评论