0%

第五章 Cookie 和 Session

1.蛋糕商城

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class PurchaseServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = (String) req.getAttribute("id");
if(id==null){
resp.sendRedirect("/ListBookServlet");
return;
}

Book book = BookDB.getBook(id);
HttpSession session = req.getSession();
List<Book>cart = (List)session.getAttribute("cart");

if(cart == null){
cart = new ArrayList<Book>();
session.setAttribute("cart");
}
cart.add(book);

Cookie cookie = new Cookie("JSESSIONID",session.getID());
cookie.setMaxAge(60*30);
cookie.setPath("/chapter06");
resp.addCookie(cookie);

resp.sendRedirect("BookServlet");
}
}

2.显示上次访问时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@WebServlet(name="lastAccessServlet",urlPatterns="/lastAccessServlet")
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");

String lastAccessTime = null;
Cookie[] cookies = req.getCookies();

for(Cookie cookie : cookies){
if("lastAccess".equals(cookie.getName())){
lastAccessTime = cookie.getValue();
break;
}
resp.getWriter().println(cookie.getName());
}

if(lastAccessTime == null){
resp.getWriter().print("您是首次访问!");
}else{
resp.getWriter().print("您上次访问的时间是:" + lastAccessTime);
}

Cookie cookie = new Cookie("lastAccess", new Date().toString());
cookie.setMaxAge(60*60);
cookie.setPath("/School_war_exploded");
resp.addCookie(cookie);
}
}

第六章 JSP

1.显示时间

time.jsp

1
2
3
4
5
6
7
8
9
10
11
<%@ page contentType ="text/html;charset=utf-8" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.text.SimpleDateFormat" %>

欢迎访问 , 现在的时间是:
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
String str = sdf.format(new Date());
%>

<%= str%>

time_main.jsp

1
2
3
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<jsp:include page = "time.jsp" />

2.写两个jsp,要求显示b,等待5s显示a

a.jsp

1
2
3
4
<%@ page contentType="text/html;charset=utf-8" %>

<% Thread.sleep(5000); %>
a.jsp中的中文

b.jsp

1
2
3
4
<%@ page contentType="text/html;charset=utf-8" %>

b.jsp的中文
<jsp:include page="a.jsp" flush="true" />

第八章

UserBean

注意属性不能大写!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Entity;

public class User {
private String username = "zhangsan";
private int age = 20;
private String sex = "nan";

public int getAge() {
return age;
}
public String getUsername(){
return username;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setUsername(String username) {
username = username;
}
}

add.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2024-01-02
Time: 22:03
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="info.jsp" method="get">
姓名:<input type="text" name="username"> <br>
年龄:<input type="text" name="age"> <br>
性别:<input type="text" name="sex"> <br>
<input type="submit" value="添加">
</form>
</body>
</html>

info.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ page contentType="text/html;charset=utf-8" %>

<html>
<head>
<title>title</title>
</head>

<body>
<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="user" class="Entity.User" scope="page">
// 通过表单提交赋值
<jsp:setProperty name="user" property="*"></jsp:setProperty>
</jsp:useBean>

// 通过直接赋值
<jsp:setProperty name="user" property="username" value="skyang" />
<jsp:setProperty name="user" property="age" value="111" />
<jsp:setProperty name="user" property="sex" value="男" />

<table>
<tr>
<td>姓名: <jsp:getProperty property="username" name="user"/> </td>
</tr>
<tr>
<td> 年龄: <jsp:getProperty property="age" name="user" /> </td>
</tr>
<tr>
<td> 性别: <jsp:getProperty property="sex" name="user"/></td>
</tr>
</table>
</body>

</html>

第十章

1.基本步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static void main(String[] args) throws SQLException{
// 1.加载数据库驱动
DriverManager.registerDriver(new com.example.mysql.jdbc.Driver());

// 2.通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jdbc";
String username = "skyang";
String password = "skyang";
Connection conn = DriverManager.getConnection(url,username,password);

// 3.通过Connection对象获取Statement对象
Statement stmt = conn.createStatement();

// 4.使用Statement独享执行SQL语句
String sql = "select * from users";
ResultSet rs = stmt.executeQuery(sql);

// 5.操作ResultSet结果集
while(rs.next()){
String name = rs.getString("name");
String word = rs.getString("password");
}

// 6.回收数据库资源
rs.close();
stmt.close();
conn.close();
}

2.PrepareStatement

1
2
3
4
5
6
conn = JDBCUtils.getConnection();
String sql = "select password from users where username= ?";
ps = conn.prepareStatement(sql);

ps.setString(1, user.getUsername());
rs = ps.executeQuery();

3.JDBCUtils

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package Utils;

import java.sql.*;

public class JDBCUtils {
public static Connection getConnection() throws SQLException,ClassNotFoundException{
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/bloguser?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8";
String username = "root";
String password = "skyang9";

Connection conn = DriverManager.getConnection(url,username,password);
return conn;
}

public static void release(PreparedStatement stmt , Connection conn){
if(stmt != null){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(conn != null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}

public static void release(ResultSet rs , PreparedStatement stmt , Connection conn){
if(rs != null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
release(stmt,conn);
}
}

UserDAO部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static String Find(User user){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JDBCUtils.getConnection();
String sql = "select password from users where username= ?";
ps = conn.prepareStatement(sql);

ps.setString(1, user.getUsername());
rs = ps.executeQuery();

String SQLpassword;
while(rs.next()){
SQLpassword = rs.getString("password");
return SQLpassword;
}
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtils.release(rs,ps,conn);
}
return null;
}

第1章

一、 填空

  1. HTML中文译为_超文本标记语言___,主要作用是通过HTML标签对网页中的文本、图片、声音等内容进行描述。
  2. 表单主要由3部分组成,分别是表单控件、提示信息和__表单域__。
  3. CSS中文译为_层叠样式表___,用于控制网页样式并允许将样式信息与网页内容分离的一种标签性语言。
  4. __JavaScript__是Web中一种功能强大的脚本语言,常用来为网页添加各式各样的动态功能,它不需要进行编译,直接嵌入在HTML页面中,就可以把静态的页面转变成支持用户交互并响应事件的动态页面。
  5. 标签表示一个图像信息,它有一个必须要指定的_src___属性,用来指定图片路径。
  6. _外链式___是指将JavaScript代码写在一个单独的文件中,一般使用“js”作为文件的扩展名,在HTML文件中使用
    A.2
    B.2.5
    C.5
    D.16
  7. 下面选项中,设置字号大小书写正确的是(A )。
    A.{ font-size: 24px; }
    B.{ font: 24px; }
    C.{ fontSize: 24px; }
    D.{ size: 24px; }
  8. 下列选项中,不属于表单标记
    常用属性的是(B)。
    A.action
    B.size
    C.method
    D.name
  9. 下列代码中,哪个正确定义了JavaScript函数?(C)
    A.function (a, b) {return a * b;}
    B.function myDemo(a, b) {return a * b}; 函数声明
    C.var x = function (a, b) {return a * b;} 函数表达式定义
    D.var x = function myDemo(a, b) {return a * b};
  10. 下列选项中,用来设置单元格背景颜色的是(B)。
    A.width
    B.bgcolor
    C.rowspan
    D.colspan
  11. 认真阅读下面代码,并按要求进行作答。txt1=”What a very”;txt2=”nice day”;txt3=txt1+txt2;
    根据上述代码,txt3的运算结果是(A)。
    A.What a verynice day
    B.What a very nice day
    C.What a very
    D.nice day

四、 简答

  1. 简述如何将单独的CSS文件引入到HTML页面中。
  2. 请描述HTML文档中注释标记的作用。
    标记方便查找、对比和理解代码

第2章

五、 填空

  1. XML称为__可扩展标记语言__,用于提供数据描述格式,适用于不同应用程序之间的数据交换,而且这种交换不以预先定义的一组数据结构为前提,增强了可扩展性。
  2. XML文档中有且仅有一个顶层元素,称为文档元素或_根元素___。
  3. 在XML声明中,可以通过standalone属性来声明这个文档是否为独立的文档。默认情况下,standalone属性的值为__no__。
  4. 在DTD中定义元素的属性时,CDATA____是最常用的一种属性类型,表明属性类型是字符数据,与#PCDATA相同。
  5. Tomcat的端口号可在其安装目录下的_conf___文件夹下的server.xml文件中配置。
    六、 判断
  6. 在命名XML元素时,元素是不区分大小写的。错
    Html不区分大小写,xml严格区分大小写。
  7. 在XML声明中必须包含version属性,且该属性必须放在XML声明中其他属性之前。 对
  8. B/S架构中,浏览器并不是直接与数据库服务器建立连接,而是通过Web服务器与数据库服务器需要建立连接。对
  9. Tomcat服务器默认的端口号是8080。对
  10. Tomcat的webapps目录是Web应用程序的主要发布目录,通常将要发布的应用程序放到这个目录下。对
    七、 选择
  11. 安装tomcat成功后,要修改tomcat端口,要修改的文件是(B)
    A.tomcat/bin/startup.bat文件
    B.tomcat/conf/server.xml
    C.tomcat/conf/web.xml
    D.以上都不是
  12. 下列选项中,启动Tomcat的命令startup.bat,放在哪个目录中(A)
    A.bin
    B.lib
    C.webapps
    D.work
  13. 关于配置Path环境变量的路径写法,正确的是(C)
    A.”%JAVA_HOME%bin;”
    B.”%JAVA_HOME%\bin;
    C.”%JAVA_HOME%\bin”
    D.以上都不是
  14. 下面XML文档声明的格式中,正确的是(A)
    A.
    B.<?xml version=”1.0” encoding=”GBK” !>
    C.
    D.<! –xml version=”1.0” encoding=”GBK” –!>
  15. 下列关于XML的描述中,正确的是(B)
    A.所有的XML元素都必须是小写的
    B.所有XML元素都必须正确地关闭
    C.所有XML文档都必须有DTD
    D.以上说法都正确

八、 简答

  1. 请列举出Tomcat安装目录下的子目录,并对其进行简要说明。
    Bin:存放Tomcat的可执行文件和脚本文件
    Conf:存放Tomcat的配置文件,如web.xml,server.xml
    Lib:存放TOmcat服务器和Web应用程序需要访问的JAR包
    Logs:存放Tomcat的日志文件
    Webapps:web应用程序的主要发布目录,通常将要发布的应用程序放到这个目录下
    Work:Tomcat的工作目录,JSP编译生成的Servlet源文件和字节码文件放到这个目录下。
  2. 开发时经常需要修改项目的访问路径,请简述如何在IDEA的Tomcat配置中修改项目访问路径。

第3章

九、 填空

  1. HTTP即_超文本传输___协议,它是一种请求/响应式的协议。
  2. 在HTTP协议中,一个完整的请求消息是由请求行、_请求头___和实体内容三部分组成。
  3. HTTP请求消息的请求行的构成,包括_请求方式___、资源路径以及所使用的HTTP协议版本。
  4. HTTP专门用于定义浏览器与服务器____之间交换数据的过程以及数据本身的格式。
  5. Accept-Encoding头字段可以使用gzip和__compress__这两种最常见的数据编码格式。
    十、 判断
  6. 在HTTP消息中,所有消息都是可见的。错
  7. POST比GET请求方式更安全。对
  8. 客户端向服务器请求服务时,请求方式只有GET、POST两种。错
  9. HTTP响应状态行包括:HTTP版本、一个表示成功或错误的整数代码(状态码)和对状态码进行描述的文本信息3个部分。对
  10. Location头字段用于通知客户端获取请求文档的新地址,其值为一个使用绝对路径的URL地址。对
    十一、 选择
  11. 下列选择中,哪个响应头能够使客户端访问服务器资源时采用下载窗口打开?(A)
    A.Content-Disposition
    B.Content-Type
    C.Content-Encoding
    D.Disposition
  12. Refresh能够使客户端不断刷新,其刷新的时间单位是(C)
    A.毫秒
    B.分钟
    C.秒
    D.纳秒
  13. 下面选项中,哪个头字段用于通知客户端获取请求文档的新地址?(D)
    A.Accept
    B.Accept-Range
    C.Accept-Location
    D.Location
  14. 下面选项中,表示服务器错误的状态码是(D)
    A.200
    B.404
    C.304
    D.500
  15. 下面选项中,可以实现浏览器重定向的状态码是(C)
    A.100
    B.200
    C.302
    D.304

十二、 简答

  1. 简述POST请求和GET请求有什么不同?(至少2点)
    POST传输数据大小不受限制,而GET一次最多传输2KB
    POST比GET更安全,将传递的参数隐藏到了实体内容中。
    2.简述5种Web开发的常见状态码及含义?
    200:服务器成功的处理了客户端的请求。
    302:请求的资源临时从不同的URI请求。
    304:客户端缓存的版本是最新的,客户端应该继续使用它。
    404:服务器找不到请求资源。
    500:服务器发生错误,无法处理客户端请求

第4章

十三、 填空

  1. 如果当前Web资源不想处理请求,RequestDispatcher接口提供了一个forward()方法,该方法可以将当前请求传递给其他Web资源对这些信息进行处理并响应给客户端,这种方式称为_请求转发___。
  2. Servlet API中,专门用来封装HTTP响应消息的接口是__HttpServletResponse__。
  3. __请求重定向__指的是Web服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求。
  4. 在Servlet开发中,当我们要自定义一个Servlet时,可以继承__GenericServlet__或HttpServlet类。
  5. Servlet的配置主要有两种方式,分别是使用web.xml文件来完成配置和使用__@WebServlet__注解的方式完成配置。
  6. Servlet的生命周期大致可以分为三个阶段,分别是初始化阶段、运行阶段和__销毁阶段__。
    十四、 判断
  7. Response对象的getOutputStream()和getWriter()方法可以同时发送响应消息体。错
  8. 当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中。对
  9. 定义@WebServlet 注解时,vlaue或者urlPatterns 通常是必需的,但二者不能共存。对
  10. 在Servlet的整个生命周期中,destroy()方法会被调用多次。错
  11. ServletRequest接口的setAttribute()方法用于将一个对象与一个name关联后存储进ServletRequest对象中。对
    十五、 选择
  12. 程序中创建了一个Servlet,该Servlet重写了其父类的doGet()和doPost()方法,那么其父类可能是 (D)
    A.RequestDispatcher
    B.HttpServletResponse
    C.HttpServletRequest
    D.HttpServlet
  13. LoginServlet是一个Servlet类,代码如下
    public class LoginServlet extends ___________ {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
    }在下划线处应填写(B)
    A.Servlet
    B.HttpServlet
    C.GenericServlet
    D.Cookie
  14. 给定Servlet程序的代码如下所示:
    Public class Servlet1 extends HttpServlet{
    Public void doGet(HttpServletRequest request,HttpServletResponse response)
    Throws ServletException IOException{
    System.out.println(“get”);
    }
    Public void doPost(HttpServletRequest request.HttpServletResponse response)
    Throws ServletException,IOException{
    System.out.println(“post”);
    doGet(reauest,response);
    }
    }
    用户在浏览器地址栏中键入正确的请求URL并回车后,在控制台上显示的结果是(A)。
    A.get
    B.post
    C.get post
    D.post get
  15. HttpServlet类中,用来处理POST请求的方法是(C)
    A.doHead
    B.doGet
    C.doPost
    D.doPut
  16. 下面选项中, 用于实现一个Web应用中的所有Servlet共享数据的对象是(B)
    A.HttpSession
    B.ServletContext
    C.ServletConfig
    D.ServletRequest

十六、 简答

  1. 简述请求转发与重定向的异同?(至少写3点)

请求转发和重定向都可以实现访问一个资源时转向当前资源
请求转发是一次请求一次响应,重定向是两次请求两次响应。
一般情况应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力。
如果需要改变浏览器地址栏,或更改浏览器的刷新按钮的功能时,需要使用重定向。

第5章

十七、 填空

  1. 服务器向客户端发送Cookie时,会在HTTP响应头字段中增加_set-cookie___响应头字段。
  2. Web应用中的会话指的是一个客户端(浏览器)与__服务器__之间连续发生的一系列请求和响应过程。
  3. Session相对于Cookie具有更高的安全性,它将关键数据保存在__服务器__端。
  4. 在Servlet技术中,提供了两个用于保存会话数据的对象,分别是_cookie___和Session。
  5. Tomcat容器中会话的有效时间可以在_web.xml___文件中设置,默认会话过期时间为30分钟。
    十八、 判断
  6. Tomcat容器中如果将元素中的时间值设置成0或一个负数,则表示会话永不超时。对
  7. Session是一种将会话数据保存到服务器端的技术,需要借助Cookie技术来实现。对
  8. Cookie的domain属性是用来指定浏览器访问的域,设置domain属性时严格区分大小写。错
  9. Cookie的path属性设置后,只对当前访问路径所属的目录有效。错
  10. 一次会话过程中,只允许客户端与服务器进行一次请求与响应过程。错
    十九、 选择
  11. 下列对于setMaxAge(-1)方法的描述中,正确的是(C)
    A: 表示通知浏览器保存这个Cookie信息
    B: 表示通知浏览器立即删除这个Cookie信息
    C: 表示当浏览器关闭时,Cookie信息会被删除
    D: 以上说法都是错误的
  12. Tomcat服务器的默认会话超时时间是(B)
    A: 30秒
    B: 30分钟
    C: 30毫秒
    D: 30小时
  13. 下面选项中,用于强制使Session对象无效的方法是(D)
    A: request. invalidate ();
    B: session. validate ();
    C: response. invalidate ();
    D: session. invalidate ();
  14. 下面选项中,当存在Session对象直接返回,否则返回null的方法是(C)
    A: request.getSession();
    B: request.getSession(true);
    C: request.getSession(false);
    D: response.getSession();
  15. 下列选项中,能够用于获取客户端所有cookie对象的方法是(B)
    A: List cookies = request.getCookies();
    B: Cookie[] cookies = request.getCookies();
    C: List cookies = response.getCookies();
    D: Cookie[] cookies = response.getCookies();

二十、 简答

  1. 简述什么是会话技术?
    会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程。在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。
  2. 简述Cookie与Session的区别。(至少写出3点)
  3. Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端是客户端技术,Session将数据保存在服务器端是服务器端技术。
  4. Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的。
  5. 默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的。
  6. 浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的。
  7. HttpSession默认是基于Cookie运作的。

第6章

二十一、 填空

  1. JSP页面中out对象是用来向__客户端__发送文本形式的实体内容。
  2. 在JSP页面中,经常需要处理一些异常信息,这时,可以通过__exception__对象来实现。
  3. 除了RequestDispatcher接口的forward()方法可以实现转发外,还可以通过JSP的jsp:forward____标签来实现转发。
  4. JSP脚本元素主要包含三种类型,分别是JSP Scriptlets、声明标识和__jsp表达式__。
  5. 当用户第一次访问JSP页面时,该页面都会被JspServlet翻译成一个Servlet源文件,然后将源文件编译为后缀名为_class___的文件。
    二十二、 判断
  6. JSP隐式对象out可以通过response.getWriter()方式获取,然后再通过println()或者write()方法向页面发送文本内容。错
  7. include指令的file属性值必须使用相对路径,这里的相对路径是相对于文件(file),而不是相对于页面(page)。对
  8. include指令用于静态包含一个文件,它的file属性只能取相对路径。对
  9. page指令的属性中,所有的属性都只能出现一次,否则会编译失败。错
  10. JSP文件与html文件有所不同,它不可以直接在浏览器中运行。对
    二十三、 选择
  11. 阅读下面代码片段:
    <% out.println(“first line “); response.getWriter().write(“second line “); %> 当使用浏览器访问该jsp页面时会什么结果(D)
    A.将上述代码原样输出
    B.first line
    C.先输出first line,再输出second line
    D.先输出second line,再输出first line
  12. 下面关于动态包含的语法格式,书写正确的是(C)
    A.<jsp:forward file=”relativeURL” />
    B.<jsp:forward path=”relativeURL” />
    C.<jsp:forward page=”relativeURL” />
    D.<%@include file=”relativeURL” />
  13. 在JSP中,exception隐式对象所对应的类是(A)
    A.java.lang.Exception
    B.java.lang.Throwable
    C.java.lang.ExceptionThrowable
    D.java.lang. ThrowableException
  14. 下列是page指令中的一些属性,其中,用于告知客户端浏览器采用什么文档类型的属性是(B)
    A.session
    B.contentType
    C.content
    D.isThreadSafe
  15. 阅读下列JSP代码片断:
    <% int x=5; %>
    <%! private int m(int a){ return a+1;} %>
    <% x=3; %>
    x=<%=x%>,<%=m(x)%>
    其运行结果是(B)
    A.x=3,6
    B.x=3,4
    C.x=5,4
    D.编译错误
    二十四、 简答
  16. 简述JSP的九个隐式对象及它们的作用。
    Out:用于页面输出
    Request:得到用户请求信息
    Response:服务器向客户端回应信息
    Config:服务器配置,可以取得初始化参数
    Session:用于保存用户的信息
    Application:所用用户的共享信息
    Page:当前页米娜转换后的Servlet类实例
    pageContext:jsp的页面容器
    Exception:jsp页面发生的异常,在错误页中才起作用

第8章

二十五、 填空

  1. 为了更方便地使用JSP技术,Sun公司为JSP技术提供了两种开发模型:JSP Model1和 JSP Model2 。
  2. JSP Model1采用 JSP+JavaBean 的技术,将页面显示和业务逻辑分开。
  3. JSP Model2模型就是MVC设计模式,其中控制器的角色是由 Servlet 实现,视图的角色是由JSP页面实现,模型的角色是由JavaBean实现。
  4. MVC设计模式将软件程序分为三个核心模块:模型(Model)、视图(View)和 控制器 。
  5. 控制器 是负责应用程序中处理用户交互的部分。
    二十六、 判断
  6. JSP Model1架构模型采用JSP+Servlet+JavaBean的技术,实际上它就是MVC设计模式。( 错)
  7. JavaBean需要有一个默认的无参构造方法。(对)
  8. 在JSP Model2模型中,控制器的角色是由Servlet实现,视图的角色是由JSP页面实现。(对)
  9. JavaBean中的属性必须私有化。( 对)
  10. 控制器负责管理应用程序的业务数据、定义访问控制以及修改这些数据的业务规则。( 错)这是模型的功能
    二十七、 选择
  11. 1.JSP Model2开发的系统中,实现视图的是(A )
    A.JSP
    B.HTML
    C.JavaBean
    D.Servlet
  12. MVC模式中用于负责与用户交互并展示模型中数据的模块是( C)
    A.模型(Model)
    B.表示层(View)
    C.视图(View)
    D.控制器(Controller)
  13. 阅读下面的类:
    public class Book {
    private double price;
    public double getPrice() {
    return price;
    }
    public void setPrice(double price) {
    this.price = price;
    }
    }
    针对以上类,下列说法正确的是( A)
    A.符合JavaBean规范
    B.不符合JavaBean规范
    C.没有构造方法,所以不符合JavaBean规范
    D.以上说法都不对
  14. 下面关于MVC设计模式的特点描述中,错误的是(B )
    A.有利于开发中的分工
    B.使程序结构的耦合性增强
    C.有利于组件的重用
    D.MVC设计模式是当前主流的设计模式之一
  15. 在JSP Model2模型中,接收浏览器请求的是(C )
    A.JSP
    B.JS
    C.Servlet
    D.JavaBean
    二十八、 简答
  16. 简述Javabean规范都有哪些?
    必须有一个公共的无参构造方法,可以使编译器自动产生的缺省的构造方法
    他提供的setter方法和getter方法让外部程序设置和获取javabean属性
    他是一个公有类
    通常可以实现java.io.Serializable 用于序列化

第10章

二十九、 填空

  1. Connection 接口表示Java程序和数据库的连接,只有获得该连接对象后才能访问数据库,并操作数据表。
  2. ResultSet接口中,能将游标移动到此 ResultSet 对象的最后一行的方法是 last() 。
  3. PreparedStatement是Statement的子接口,用于执行 预编译 的SQL语句。
  4. Statement接口的executeUpdate(String sql)方法用于执行SQL中的insert、 update 和delete语句。
  5. JDBC常用API 中, DriverManager 类用于加载JDBC驱动并且创建与数据库的连接。

三十、 判断

  1. 对于相同的SQL语句,Statement对象只会对其编译执行一次。(错)
  2. 使用DriverManager.registerDriver进行驱动注册时,数据库驱动会被注册2次。( 对)
  3. ResultSet接口表示select查询语句得到的结果集,该结果集封装在一个逻辑表格中。(对)
  4. Statement接口的executeUpdate(String sql)返回值是int,它表示数据库中受该SQL语句影响的记录的数目。( 对)
  5. JDBC的全称是Java数据库连接,它是一套用于执行HTML语句的Java API。( 错)

三十一、 选择

  1. 下列选项,可用于存储结果集的对象是(A )
    A.ResultSet
    B.Connection
    C.Statement
    D.PreparedStatement
  2. 下面选项中,能够将游标从当前位置向下移一行的方法是( A)
    A.next()
    B.absolute(introw)
    C.previous()
    D.last()
  3. 下面关于executeQuery(String sql)方法,说法正确的是(C )
    A.可以执行insert语句
    B.可以执行update语句
    C.可以执行select语句
    D.可以执行delete语句
  4. 下面Statement接口的方法中,用于执行各种SQL语句的是( C)
    A.executeUpdate(Stringsql)
    B.executeQuery(Stringsql)
    C.execute(Stringsql)
    D.executeDelete(Stringsql)
  5. 下面选项中,用于将参数化的SQL语句发送到数据库的方法是(B )
    A.prepareCall(Stringsql)
    B.prepareStatement(Stringsql)
    C.registerDriver(Driverdriver)
    D.createStatement()

这是一个测试文档

2023操作系统E复习大纲(适用于计算机信安21****级)

1. *操作系统的定义*

*操作系统是覆盖在硬件上的第一层软件,他负责管理计算机的硬件和软件资源,并向用户提供良好的界面。*

2. 操作系统的基本类型及特征

(1) 单道批处理系统:资源得不到充分利用。

(2) 多道批处理系统:资源利用率高,系统吞吐量大,平均周转时间长,无交互能力。

(3) 分时系统:多路性,独立性,及时性,交互性。

(4) 实时系统:及时性 和 高可靠性

(5) 微机操作系统:单用户单任务(DOS),单用户多任务(Windows),多用户多任务(Unix,Linux)。

3. *操作系统的功能及特征*

(1) *操作系统是用户和计算机硬件系统之间的接口。*

(2) *操作系统为计算机系统资源的管理者*

(3) *操作系统实现了对系统资源的抽象*

(4) *方便性、有效性、可扩充性、开放性。*

4. 进程的定义、特征

​ 定义:进程是一段可并发执行的具有独立功能的程序,是关于某个数据集的一次执行过程,也是OS进行资源分配和保护的基本单位。

​ 特征:动态性,并发性,独立性,异步性。

5. 进程基本状态及其转换原因

​ 就绪状态,执行状态,阻塞状态。

6. 进程互斥、同步

(1) 在多道程序环境下,进程是并发进行的,不同进程之间存在着不同的相互制约关系,为了协调进程之间的相互关系,引入了进程同步的概念。

(2) 对临界资源的访问,需要互斥地进行,即一个时间段内只允许一个进程访问该资源。

(3) 互斥是同步的一个特例,同步强调的是保证这些进程之间的操作的先后次序的约束,而互斥强调的是对共享资源的互斥访问。

7. 进程控制块的内容、作用

​ 内容:进程标识符 + 处理机状态 + 进程调度信息 + 进程控制信息

​ 作用:作为独立运行基本单位的标志(系统是通过PCB来感知进程的存在的);实现间接性运行方式;提供进程管理所需要的信息;提供继承调度所需要的信息;实现与其他进程之间的同步与通信。

8. 死锁的原因、必要条件

​ 定义:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法向前推进。

​ 原因:抢占不可抢占性资源,竞争可消耗资源,进程间推进顺序不当。

​ 必要条件:互斥条件,请求和保持条件,不可抢占条件,循环等待条件。

9. 连续分配原理和特点

​ 一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻,体现在内存空间中为分配的物理地址相邻。

(1) 单一连续分配:适用于单用户单任务

(2) 固定分区分配:

(3) 动态分区分配:

① 数据结构:空闲分区表 , 空闲分区链

② 分配算法:

\1) 首次适应算法:有外部碎片,每次从低地址开始查找,增加查找的时间开销。

\2) 循环首次适应算法:让内存中空闲分区分布的更均匀,减少查找空闲分区的时间开销,但使大的空闲分区比较缺乏。

\3) 最佳适应算法:会留下很多外部碎片

\4) 最坏适应算法:可使剩下的空闲分区不至于太小,产生碎片的概率最小,对中小作业有利,同时查找效率高。

\5) 快速适应算法,伙伴系统,哈希系统。

③ 回收操作。

(4) 动态重定位分区分配:与动态分区分配基本相同,但增加了紧凑功能。

10. 页式、段式存储管理原理

11. 分页、分段存储管理的地址转换过程

12. 虚拟存储器概念、理论基础

(1) 概念:虚拟存储器,是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

(2) 逻辑容量:内存容量+外存容量

(3) 最大容量:取决于计算机系统的地质结构

(4) 理论基础:局部性原理

① 程序在执行时,除了少部分的转移和过程调用指令外,在大多数情况下是顺序执行的。

② 过程调用将会使程序的执行轨迹由一部分区域转移至另一部分区域。

③ 程序中存在许多循环结构,这些结构虽然只有少数指令构成,但是他们将会被多次执行。

④ 程序中还包括许多对数据结构的处理,如对数组进行操作,他们往往都局限于很小的范围内。

13. 页面置换算法-先进先出页面置换算法、最佳页面置换算法、LRU

14. 存储管理的碎片问题

(1) 按需分配没有内部碎片:动态分区分配,分段存储管理。

(2) 固定分配没有外部碎片:固定分区分配,分页存储管理。

15. 设备分配时应考虑的因素

(1) 设备的固有属性

(2) 设备分配算法

(3) 设备分配时的安全性

(4) 设备独立性

16. 设备独立性、虚拟设备

(1) 设备独立性:设备独立性是指操作系统把所有外部设备统一当做文件来看待,只要安装他们的驱动程序,任何用户都可以像使用文件那样,操作、使用这些设备,而不必知道他们的具体存在形式。

(2) 虚拟设备:通过虚拟技术,将一台独占设备虚拟成多台逻辑设备,供多个进程同时使用。

(3) 物理设备是实际存在的,逻辑设备是依靠物理设备存在的。在应用程序中,用来请求I/O服务而使用的是逻辑设备,系统在实际执行时使用的是物理设备,系统为了实现从逻辑设备到物理设备的映射,设置了一张逻辑设备表。每个表目包括逻辑设备名、物理设备名、设备驱动程序入口。这样做实现了设备独立性,带来两个好处:使设备分配时具有灵活性和易于实现I/O重定向。

17. 磁盘的调度算法

(1) FCFS:先进先出

(2) SSTF:距离最近优先

(3) SCAN:无更外的磁道需要访问时,磁头便会返回。

(4) CSCAN:移动到最外的磁道并完成访问后,磁头才返回。

18. 文件的物理结构(顺序结构、链接结构(隐式、显式)、索引结构(单级、多级、增量式))

19. UNIX系统多级混合(增量式)索引结构

20. 文件存储空间的管理方法-空闲表法、位示图、空闲块链法

21. 系统调用的过程

​ 首先运行于用户态的应用程序发出系统调用请求,保护现场。一般都是给出一个中断指令(软中断),然后根据中断向量表查找系统调用表,最后在核心态执行系统调用处理程序(中断程序),最后返回应用程序,恢复现场。

22. 系统调用与一般过程调用的区别、

(1) 系统调用(程序)在内核态执行,调用它们时需要一个类似于硬件中断处理机制的中断处理机制考体统系统服务。

(2) 一般

《操作系统E》试卷题型

一、选择题(每题2分,共40分)

二、判断题(每题1分,共10分)

三、简答题(每题5分,共20分)

四、应用题(每题10分,共30分)

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment