JSP
Chap1
1. 了解软件分类、软件开发的过程和方法。
-
软件分类:
- 系统软件——是支持计算机系统正常运行并实现用户操作的那部分软件。
操作系统
网络系统
语言编译器
工具软件 - 应用软件——满足用户不同领域需求而提供的那部分软件,可拓展计算机系统应用领域,放大硬件功能
管理软件
科学计算、数据处理
嵌入式软件
人工智能软件
专用领域软件 - 按规模分类:
微型、小型、中型、较大型、大型、极大型
- 系统软件——是支持计算机系统正常运行并实现用户操作的那部分软件。
-
软件开发方法:
- 结构化开发方法
自定而下,逐步求精 - 面向对象开发方法
三大特性:封装性、继承性、多态性
- 结构化开发方法
-
什么是软件开发
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程
2. 常见软件架构技术(如分层模式、CS模式、MVC模式),各组成部分的作用是什么?
-
分层模式:
表现层(presentation):用户界面,负责视觉
业务层(business):实现业务逻辑
持久层(persistence):提供数据,SQL语句
数据库(database):保留数据 -
CS模式:
服务器端(server):为客户端提供服务
客户端(client):从服务器端请求服务 -
MVC模式:
模型(model):包含核心功能和数据
视图(view):将信息显示给用户
控制器(controller):处理用户输入的信息
Chap2
3. JSP运行环境需要哪些软件?
JDK(Java Development Kit)
JSP服务器,如Tomcat
WEB浏览器
数据库,如MySQL
4. Tomcat安装目录结构,掌握主要目录功能
目录结构 | 功能 |
---|---|
/bin: | 存放windows或Linux平台上启动和关闭Tomcat的脚本文件 |
/conf: | 存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml |
/doc: | 存放Tomcat文档 |
/server: | 包含三个子目录:classes、lib和webapps |
/server/lib: | 存放Tomcat服务器所需的各种JAR文件 |
/server/webapps: | 存放Tomcat自带的两个WEB应用admin应用和 manager应用 |
/common/lib: | 存放Tomcat服务器以及所有web应用都可以访问的jar文件 |
/shared/lib: | 存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问) |
/logs: | 存放Tomcat执行时的日志文件 |
/src: | 存放Tomcat的源代码 |
/webapps: | Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录 |
/work: | 存放JSP编译后产生的class文件 |
5. 什么是动态网页?有哪些实现技术?
所谓的动态网页
,是指跟静态网页
相对的一种网页编程技术。静态网页,随着html代码的生成,除非你修改页面代码,页面的内容和显示效果就基本上不会发生变化。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
(1)客户端技术(JavaScript、VBScript、ActiveX控件、Java Applet组件)
(2)服务器端技术(CGI、ASP、JSP、PHP、ASP.NET、Servlet)
6. 描述JSP页面执行机制
Chap3
7. Web应用与传统的软件有何差异?
Web应用 | 传统软件 |
---|---|
强调信息含量,面向文档(静态页面、动态页面) | 强调功能的完善,注重实现数据交互 |
数据驱动,让终端用户使用超媒体来表示文本、图形、音频和视频内容 | 功能驱动、过程驱动 |
界面关注视觉和感觉,与多媒体结合,强调色彩搭配、动画飞扬 | 界面简单为美 |
用户多样性,具有不同技术和能力 | 用户群体定制 |
开发周期短 | 一般开发周期长 |
8. WebAPP设计应包含哪些元素?你认为最基本的是哪三个?
1.内容、功能设计;
2.技术设计;
3.编码构建;
4.交互设计
9. Web应用软件原型设计的基础包括HTML、CSS和JavaScript,它们的作用分别是什么?
HTML
提供实现页面布局的表格标记,实现输入窗口的表单标记,实现数据输入的文本框、密码框、单选按钮、复选框、列表、按钮等组件标记。
CSS
的应用实现了界面风格的统一定义
JavaScript
是浏览器解析执行的客户端代码,提供了数据输入验证、特殊组件(菜单、树)
10. 掌握HTML常用标签的用法,如table、form的使用。
示例程序1:使用table标签
示例程序2.1:myform.htm (黄色标记内容的含义是什么?)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单练习</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
</head>
<body>
<h1>登录</h1>
<form action="01.html" method="get">
用户名:<input type="text" name="userName"/><br/>
密 码:<input type="password" name="pwd"/><br/><br/>
<input type="submit" value="登录">
<input type="reset" value="重新填写"><br/><br/><br/>
<!-- <input type="hidden" name="hidename" value="hidevalue"/> <br/> -->
</form>
</body>
</html>
示例程序2.2:(运行结果?)
<!DOCTYPE html>
<html>
<body>
<form action="MAILTO:cdcxh@cuit.com" method="post" enctype="text/plain">
<h3>这个表单会把电子邮件发送到 CUIT。</h3>
姓名:<br />
<input type="text" name="name" value="yourname" size="40">
<br />
电邮:<br />
<input type="text" name="mail" value="yourmail" size="40">
<br />
内容:<br />
<textarea name="comment" rows="5" cols="60"></textarea>
<br /><br />
<input type="submit" value="发送">
<input type="reset" value="重置">
</form>
</body>
</html>
11. 如何使用JavaScript程序进行表单验证?
示例程序3.1:myjsp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script language="javascript" src="MyCheck.js"> </script>
<meta charset="UTF-8">
<title>使用JavaScript和客户端输入信息交互</title>
</head>
<body>
<center>
<form name="myform">
<p> 请输入你的姓名:
<input type="text" name="txt1" value="">
<p> 请输入你的性别:
<p>男<input type="radio" name="sex" value="男" checked>
<p>女<input type="radio" name="sex" value="女" >
<p> 请输入你的爱好:
<p>游泳<input type="checkbox" name="inst" value="游泳" checked>
<p>滑冰<input type="checkbox" name="inst" value="滑冰">
<p>散步<input type="checkbox" name="inst" value="散步" checked>
<p><input type="button" value="Click" OnClick="check()">
</form>
</center>
</body>
</html>
示例程序3.2:check.js
/**
如果没有输入姓名,直接单击Click按钮,会弹出一个提示信息窗口
*/
function check()
{
var inst="爱好:";
if (document.myform.txt1.value=="")
{
alert("请输入姓名!");
}
else{
alert("姓名:"+document.myform.txt1.value);
if (document.myform.sex[0].checked)
alert("性别:男");
else alert("性别:女");
if (document.myform.inst[0].checked) inst += "游泳";
if (document.myform.inst[1].checked) inst += "滑冰";
if (document.myform.inst[2].checked) inst += "散步";
if (inst == "爱好:")
alert("赶快培养一个爱好吧!");
else alert(inst);
}
}
Chap4—6
12. JSP程序的基本构成元素是哪些?
(注释、指令、脚本元素、动作各有哪些?)
示例程序4:(程序包含了哪些JSP构成?运行结果?)
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date,java.text.*" %> <!-- 导入用到的类包文件 -->
<%
Date nowday=new Date(); //获取当前日期
int hour=nowday.getHours(); //获取日期中的小时
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //定义日期格式化对象
String time=format.format(nowday); //将指定日期格式化为”yyyy-MM-dd HH:mm:ss”形式
%>
<html>
<head><title>第一个JSP应用</title></head>
<body>
<center>
<table border=1 width=50%>
<tr height="30"><td align="center">温馨提示!</td></tr>
<tr height="80"><td align="center">现在时间为:<%=time%></td></tr>
<tr height="70">
<td align="center">
<!-- 以下为嵌入到HTML中的Java代码,用来生成动态的内容 -->
<%
if(hour>=24&&hour<5)
out.print("现在是凌晨!时间还很早,再睡会吧!");
else if(hour>=5&&hour<10)
out.print("早上好!新的一天即将开始,您准备好了吗?");
else if(hour>=10&&hour<13)
out.print("午休时间!正午好时光!");
else if(hour>=13&&hour<18)
out.print("下午继续努力工作吧!!");
else if(hour>=18&&hour<21)
out.print("晚上好!自由时间!");
else if(hour>=21&&hour<24)
out.print("已经是深夜,注意休息!");
%>
</td>
</tr>
</table>
</center>
</body>
</html>
13. JSP程序中变量的4种生存周期是什么?
◼函数级变量:定义于函数内部
◼页面级变量:使用jsp声明<! > 只作用于一个页面,关闭服务器释放
◼会话级变量:使用session对象创建,会话结束释放,记录的是不同用户的个别信息
◼应用程序级变量:使用application对象创建,关闭服务器释放,记录不同用户之间共用的数据
14. 了解JSP主要内置对象有哪些?有何作用?
◼out对象:把信息回送到客户端的浏览器中。
◼request对象:用来得到客户端的信息。
◼response对象:处理服务器端对客户端的一些响应。
◼session对象:用来保存单个用户访问时的一些信息。
◼application对象:用来保存网站的一些全局变量,实现用户间数据共享。
◼Cookie对象:服务器保存在用户硬盘上的文本,网站利用Cookie可精确知道访问量。
◼Page对象:代表jsp本省,从该页面产生一个Servlet实例
◼Config对象:用于初始化Servlet
(Response、Request、Session、Cookie等)
15. 通过JDBC访问数据库的步骤有哪些?
➢1、加载驱动程序
➢2、建立数据库连接
➢3、执行SQL语句
➢4、处理SQL语句执行结果
➢5、关闭数据库连接
示例程序5:
package common;
import java.sql.*;
public class DBConnection {
static Connection con=null;
/**获取数据库连接*/
public static Connection getConnection(){
if(con==null){
try { //加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
e.printStackTrace();
System.out.println("加载MYSQL数据库驱动失败!");
}
try { //通过驱动程序管理器获取数据库连接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_student","root","Abc123#");//rootpassword
}catch(Exception e){
e.printStackTrace();
System.out.println("获取数据库连接失败!");
}
}
return con;
}
/** 关闭数据库的操作 */
public static void closeConnection() {
if(con!=null)
try {
con.close();
con=null;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭con对象失败!");
}
}
}
16. 描述Jsp技术使用的两种模式的工作过程
(1) JSP+JavaBean
(2) JSP+Servlet+JavaBean
17. JSP的MVC开发模式
◼Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。
◼JSP页面处于表现层,也就是视图(View即“V”)的角色。
◼JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色
18. Servlet与JSP的区别
- | JSP | Servlet |
---|---|---|
开发 | 1. HMTL和Java代码混合编写的代码文件2、可使用内置对象 | 1、Java类2、没有内置对象3、HTML需要使用页面输出流逐行输出 |
部署 | 编译成servlet类源码,再编译成class文件放置在服务器work目录中 | 1、.class文件放到WEB-INF目录下的classes文件夹下的对应包中2、在WEB-INF目录下的web.xml中定义访问路径到calss文件的映射 |
运行 | 实现输入界面和显示界面 | 接收客户端请求、控制业务实现、返回响应 |
19. Servlet的配置方法(文件名?放置目录?标签含义)
示例程序6:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>student</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>StudentListAction</servlet-name>
<servlet-class>student.StudentListAction</servlet-class>
</servlet>
……
<servlet-mapping>
<servlet-name>StudentListAction</servlet-name>
<url-pattern>/servlet/StudentListAction</url-pattern>
</servlet-mapping>
……
</web-app>