一、简答题
1.简述在JSP页面中能够包含哪些内容?各有什么作用?
JSP页面可以包含的内容 | 作用 |
---|---|
HTML静态页面 | JSP可以兼容HTML页面,包括其中的CSS与JavaScript |
注释 | 分为HTML注释与JSP注释 |
Java代码 | 包括声明,脚本,表达式 |
指令 | 包括page,include,taglib指令 |
内置对象 | 可以直接使用的对象 |
2.Jsp有哪些内置对象,作用分别是什么?
内置/隐含对象 | 类型 | 说明 |
---|---|---|
request |
HttpServletRequest |
请求信息(在一起请求中有效) |
response | HttpServletResponse | 响应信息 |
out | JSPWriter | 输出的数据流 |
session |
HttpSession |
会话(在整个会话中有效) |
application |
ServletContext |
全局的上下文对象(整个应用中有效) |
pageContext |
PageContext |
JSP页面上下文(仅当前页面有效) |
page | Object | JSP页面本身 |
config | ServletConfig | Servlet配置对象 |
exception | Throwable | 捕获网页异常 |
3.简述什么是转发?以及如何实现转发?
一个Web组件(Servlet/jsp)将
未完成的处理通过容器转交给另外一个Web组件继续完成
,这个转交的过程叫做转发。常见的情况是Servlet负责获取数据,然后将数据转交给JSP进行展现。
4.简述转发和重定向有什么区别?
①请求次数不同
,重定向在第一次请求并获取相应后,再次向一个新地址发送请求。转发是服务器收到请求后为了完成响应在服务器内部转到一个新的地址。②数据是否共享问题
,重定向请求了两次,不共享数据。转发请求了一次,在web组件间数据共享。③地址栏地址是否改变
,重定向后地址栏改变,转发则不改变地址。④新地址的范围问题
,重定向可以是任意新地址,转发的新地址必须是同一个应用内的某个地址。
二、选择题
(1)当response的状态行代码为哪个时,表示用户请求的资源不可用?()
- A. 101
- B. 202
- C. 303
- D. 404
正确答案D,解析请参照Response响应状态码。
(2)JSP的编译指令标记通常是指:()
- A. Page指令、Include指令和Taglib指令
- B. Page指令、Include指令和Plugin指令
- C. Forward指令、Include指令和Taglib指令
- D. Page指令、Param指令和Taglib指令
正确答案A,可参照JSP编译标记指令。
- page指令:导包,设置编码等。
- include指令:主要用于将其他页面包含在另一个页面之中。
- taglib指令:为标签起别名。
(3)关于部署到Tomcat服务器的Java Web应用程序,正确的选项是()
- A. Java Web应用程序总是打包成WAR形式部署到Tomcat服务器
- B. Java Web应用程序应该部署到Tomcat服务器的server子目录中
- C.每个Java Web应用程序都有一个web.xml文件
- D. Java Web应用程序的根目录下不能存放任何文件,所有html、gif等文件必须存放到某一子目录中
正确答案C,
关于Java web应用部署到tomcat有三种方式,可以参照tomcat部署项目的三种方式。
(4)JSP的Page编译指令的属性Language的默认值是:()
- A. Java
- B. C
- C. C#
- D. SQL
正确答案A。
(5)include指令用于在JSP页面静态插入一个文件,插入文件可以是JSP页面、HTML网页、文本文件或一段Java代码,但必须保证插入后形成的文件是()。
- A. 是一个完整的HTML文件
- B. 是一个完整的JSP文件
- C. 是一个完整的TXT文件
- D. 是一个完整的Java源文件
正确答案B。
(6)下面关于JSP作用域对象的说法错误的是()。
- A. request对象可以得到请求中的参数
- B. session对象可以保存用户信息
- C. application对象可以被多个应用共享
- D. 作用域范围从小到大是request、session、application
正确答案C,其他选项都正确,C应该为当前项目中。
(7)下列变量声明在( )范围内有效。
<%!
Date dateTime;
int countNum;
%>
- A. 从定义开始处有效,客户之间不共享
- B. 在整个页面内有效,客户之间不共享
- C. 在整个页面内有效,被多个客户共享
- D. 从定义开始处有效,被多个客户共享
正确答案,C
<%! 代码 %>
:定义的Java代码,在JSP转换后的Java类的成员位置。也就是Servlet中的成员变量的位置。
(8)下面是Servlet调用的一种典型代码:
<%@page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<html>
<body bgcolor=cyan>
<jsp:forward page="helpHello"/>
</body>
</html>
该调用属于下述哪种。()
- A. url直接调用
- B. 超级链接调用
- C. 表单提交调用
- D. jsp:forward调用
正确答案D,
<jsp:forward page="helpHello"/>
标签是转发, 重定向才是超链接。
三、编程题
1.题目①
在jsp页面中以表格的形式输出20行 Hello JSP
<html>
<head>
<meta http-equive="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<table style="color:red" border="1" cellspacint="0" cellpadding="0">
<%--声明变量 --%>
<%! String name="hello jsp"; %>
<%--小脚本 --%>
<%
for(int i=0;i<20;i++){
%>
<%--表达式 --%>
<tr> <td><%=name%></td> </tr>
<%
}
%>
</body>
</html>
成功打印出数据库中的信息。
2.题目②
在jsp页面中使用jdbc连接数据库,
以表格的形式展示员工列表
,员工表为ems系统中的t_emp表。
创建数据库并手动添加记录。
CREATE TABLE `t_emp` (
`id` INT(4) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NULL DEFAULT NULL,
`salary` DOUBLE(7,2) NULL DEFAULT NULL,
`age` INT(3) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4
;
连接数据库并查询的JSP代码。
<%@ page language="java" import="java.io.*,java.sql.*,java.util.*" pageEncoding="utf-8" %>
<html>
<head>
<meta http-equive="content-type" content="text/html;charset="utf-8"/>
</head>
<body>
<table style="color:red">
<%
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase","root","Hudie");
PreparedStatement pstm = conn.prepareStatement("select * from t_emp");
ResultSet rs = pstm.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getString(2);
Double salary = rs.getDouble(3);
int age = rs.getInt(4);
%>
<tr>
<td><%=id %></td>
<td><%=name %></td>
<td><%=salary %></td>
<td><%=age %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
转载:https://blog.csdn.net/weixin_43691058/article/details/104170387