JSP数据库应用开发知识点
- 格式:docx
- 大小:91.56 KB
- 文档页数:3
JSP的网络数据库连接技术及运用之研究JSP技术已经成为了Web应用程序中最广泛使用的技术之一。
而网络数据库连接则是JSP技术中使用最广泛的技术之一。
本文将会探讨JSP技术中网络数据库连接技术的相关内容,同时也会介绍其如何应用于实际项目中。
一、JSP技术概述JSP,即Java Server Pages,它是Sun Microsystems为了简化网站开发而开发的一套技术方案。
JSP技术通过将Java代码嵌入到HTML页面中来实现页面的动态性,同时通过Java Servlet技术来实现Web应用程序的逻辑控制。
JSP技术具有以下优点:1、易于维护:由于JSP技术将Java代码嵌入到HTML页面中,因此页面开发的工作变得更加容易,并且这种技术也使得页面的维护非常方便。
2、灵活性高:JSP技术可以支持Java的强大功能,不仅可以方便地进行页面的开发和维护,还可以很方便地对程序进行扩展。
3、高性能:与ASP、PHP等页面开发技术相比,JSP技术的性能非常高,这也是其在大型网站中得以广泛使用的原因之一。
二、网络数据库连接技术网络数据库连接技术是JSP技术中使用最为广泛的技术之一。
该技术通常使用Java数据库连接(JDBC)技术来实现。
JDBC是Java语言中用于与关系型数据库进行通信的标准API。
通过JDBC技术,JSP开发人员可以完成对数据库的增删改查等操作。
JDBC技术的核心是数据库驱动程序(driver),驱动程序是一个Java库,使得JDBC 可以与各种数据库进行交互。
驱动程序分为两种类型:JDBC-ODBC桥接器(Bridge)和纯Java驱动程序。
JDBC-ODBC桥接器在JDK 8中已被弃用,因此现在的Java应用程序中通常使用纯Java驱动程序。
常见的数据库驱动程序有以下几种:1、Oracle数据库驱动程序(OracleDriver)。
2、MySQL数据库驱动程序(com.mysql.jdbc.Driver)。
08计算机《JSP程序设计》作业题请把各题的答案另外写在一个Word文档中,标明题号,写好答案即可。
写上自己的学号姓名,统一发给班长,下周上课,班长用优盘考给我或QQ发给我。
一、填空题1、在安装Tomcat时,如果系统中已经有其他的应用程序占用了【8080 】端口,则启动Tomcat时会失败。
2、Servlet是服务器端的【 java小程序】,用于响应客户机的请求。
在默认情况下,Servlet采用一种无状态的【请求-响应】处理方式。
Servlet主要功能是增强Java服务器端功能。
3、Servlet的生命周期主要由3个过程:【init() 】方法功能是服务器初始化Servlet;【 service() 】方法功能是对象调用该方法响应客户的请求;【 destroy() 】方法功能是消灭Servlet对象。
4、编译后的Servlet只被装载【 1 】次,因此,当源程序重新编译后,需要重新启动服务器;同时Servlet 类的修饰符必须为【 public 】5、Servlet的环境API接口中,ServletConfig接口对象接收【 servlet 】特定的初始化参数,而ServletContext接收【 webapp 】初始化参数。
6、表单提交有2种方式。
【 get 】方式是表单的默认方式,并且次提交方式的总数据量不能超过2KB,否则提交失败。
利用【 post 】方法需要在method方法中声明,并且它没有容量方面的限制。
7、在Servlet中,通过HttpServletRequest接口的方法来获得来自【客户和服务器】端的一些数据;HttpServletReponse接口的方法来【发出响应】,它的【 sendredirect 】方法可以立即使网页重定向,它的【 setintheader 】方法可以使网页定时刷新,它的【 secdheader 】方法可以定时使网页重定向。
8、javax.servlet.RequestDispatcher接口有两个最重要的的方法:【 forward 】和【 include 】,它们用来实现对页面的动态转发或者包含。
Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
不管是JSP还是Servlet,虽然都可以用于开发动态web资源。
但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。
《Java Web程序设计》练习题一、填空题1、JDBC对数据库的操作通过5个JDBC的类/接口来实现,它们是:DriverManager 、Statement、Connection、ResultSet和Class。
2、JSP 的英文全称是Java、Srever 、Page。
3、JSP指令元素主要有3种类型的指令,即include、taglib和page。
4、在JSP中提供了_9_个内置对象,分别是request对象、response对象、out对象、session对象、pageContext对象、exception对象、cofig对象、page对象和application对象。
5、在提交表单时有两种不同的提交方法,分别是POST和get。
6、在JSP中实现客户端和服务器的会话可使用session实现。
7、每过10分钟自动刷新的JSP语句是:response.setHeader(“refresh”,”600”)。
8、ResultSet类的.next( ) 方法可以移动记录指针到下一条记录。
9、在JSP中使用<jsp:useBean> 标记来访问JavaBean。
10、在<jsp:useBean>标记中,有一个scope属性,它是用来设定JavaBean存在的范围。
scope属性一分别为page、request、session和application。
11、JDBC是Java DataBase Connectivity的缩写,它的中文名称是java数据库连接技术。
12、JSP页面组成元素中,除了可以包含静态内容(html、js、css)外,还可以包含:JSP指令、j、脚本元素、动作、注释等。
13、异常的处理,可在该方法的代码段中包含3类代码:try 、catch和finally 块。
14、JSP的三个指令中,定义整个JSP页面属性的是page指令,实现静态包含的是include指令,库的是taglib指令。
第1章JSP概述1.1什么是JSP网络通信中最常见的模式是B/S模式,即需要获取信息的用户使用浏览器向某个服务器发出请求,服务器进行必要的处理后,将有关信息发送给服务器。
在B/S模式中,服务器上必须有所谓的Web应用程序,这样的应用程序负责处理用户的请求,满足用户对信息的请求。
JSP是Web服务器端开发技术,利用这一技术可以建立安全、跨平台的Web应用程序。
JSP的安全性和跨平台得益于Java语言,这是因为Java语言具有不依赖于平台、面向对象和安全等优良特性,已经成为网络程序设计的佼佼者。
许多和Java有关的技术得到了广泛的应用和认可,JSP技术就是其中之一。
读者可能对Microsoft的ASP(Active Server Pages)比较熟悉,ASP也是一项Web服务器端的开发技术,可以开发出动态的、高性能的Web服务应用程序。
JSP和ASP技术非常相似。
ASP使用的是VBScript脚本语言,而JSP使用的是Java编程语言。
与ASP相比,JSP以Java技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离、能够脱离硬件平台的束缚及编译后运行等优点,完全克服了ASP的脚本级执行的缺点。
JSP已经成为开发动态网站的主流技术。
需要强调的一点是:要想真正地掌握JSP技术,必须有较好的Java语言基础,以及HTML语言方面的知识。
1.2安装配置JSP运行环境JSP的核心内容就是编写JSP页面(有关JSP页面的内容见本章1.3节和第2章的2.1节)。
对于JSP页面,需要一个应用程序来运行它,我们将这样的应用程序称作JSP 引擎或JSP容器。
将安装JSP引擎的计算机称作一个支持JSP的Web服务器。
支持JSP 的Web服务器负责运行JSP,并将运行结果返回给用户,有关JSP的运行原理将在1.4节讲解。
自从JSP发布以后,出现了各式各样的JSP引擎。
1999年10月Sun公司将Java Server Page 1.1代码交给Apache组织,Apache组织对JSP进行了实用研究,并将这个服务器项目称为Tomcat。
JSP数据库应用开发:
1、了解数据库的基本概念
2、了解数据库mysql
3、掌握在mysql中创建数据库、数据表
4、熟悉sql的常用查询语句
5、了解jdbc的工作原理
6、掌握使用jdbc连接数据库的方法
7、了解jdbc-odbc桥接
8、掌握纯java驱动方式连接数据库
9、掌握在web项目中创建连接数据库的工具类
具体内容:
1、了解数据库的基本概念:
(1)数据库技术产生于20世纪60年代;
(2)数据VS信息:1)数据——对客观事物描述和记载的可以鉴别的物理符号,是客观事物的基本表达;
2)信息是数据的集合、含义与解释,是事物变化、特征的反映。
(3)数据库是指在计算机内按照一定形式存放、有组织、统一管理的相关数据和数据库对象的集合。
其中数据库对象是指表、视图、存储过程、触发器等。
(4)数据库管理系统:是位于用户和操作系统之间的一层数据管理软件。
它能科学的组织和存储数据、高效地获取和维护数据,并能为用户提供访问数据的方法,包括数据库的创建、查询、插入、
修改和删除等。
(5)数据库系统:是指实现有组织、动态的存储大量关联数据、方便用户访问计算机硬件、软件和数据资源的系统,它主要由数据库、数据库管理系统、应用系统、数据库管理员及用户组成。
数据
库系统常称为数据库。
(6)数据库分类:一句数据库管理系统的数据模型,可以分为层次数据库、网状数据库、关系数据库、面向对象数据库。
最常用的是关系数据库。
支持关系数据库的产品有:IBMDB2 Oracle Sybase Microsoft SQL Server等
(7)关系数据库:是以关系模型为基础的;
(8)关系模型是利用二维表格表示数据的数据模型。
(9)数据表a 也叫做关系a
(10)关系的首行:叫做属性、也叫做字段、也就是关系各列的名字,属性描述了所在列的意义。
关系中每个属性都有一个取值范围,也就是这个属性的数据类型的取值范围,称为该属性的域。
(11)关系的模式:关系名和关系的属性的集合,也就是数据表的名字和数据表首行的各个字段的集合,例如数据表user,里面有三个字段id, username,userpassword,那么,关系模式是:
user(id,username,userpassword)
(12)记录:在关系中,字段的有序集合称为记录,记录的各个分量分别对应着关系的各个属性。
也就是每个属性/字段对应的实际的数据,例如关系user中,01,张山,12398u,那么,这条记录
就写为(01,张山,12398u)
(13)主键:是能确定一条记录的唯一标识。
一条记录中有若干个属性,若其中某一个属性组能唯一标识一条记录,那么该属性组就可以称为一个主键。
例如,一条记录包括学号、年龄、姓名,学号
是唯一能确定这个人的,其他都可能重复,所以学号是主键。
(14)外健:关系a的一个非主键(字段/属性)与关系b的主键(是可以唯一标识一条记录的那个字段/属性)相对应,表达的是同样的意思,则称关系a的这个字段是关系a的外健。
(15)定义主键的目的是:唯一的标识一条记录;定义外健的目的是:用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。
(16)数据表结构:是指这个数据库表名字、字段、主键等表的信息。
即数据表的名字叫什么、表中字段叫什么名字、这个字段的数据类型是什么、这个字段是否主键、这个字段的相关说明。
(17)完整性规则:1)实体完整性规则————一个关系a/数据表a中的主键不能为空,否则不能起到唯一表示记录的作用。
2)参照完整性规则————关系a的某个字段相对于关系b来说是关系a的外健,即该字段在关系b中作为主键,则在关系a中该字段(外健)要么是全部都取空值,要么取关系b中主键的某个值。
3)用户定义的完整性规则————是针对某一具体关系数据库的约束条件,它反映的是某一具体应用所涉及的数据必须满足的语义要求。
例如,人的年龄在0--200岁之间;性别要么是男,要么是女,不能写成别的。
(18)sql(Structured Query Language,结构化查询语言):主要功能就是同各种数据库建立关系,进行沟通,它可用来执行各种操作。
(19)SQL的组成部分:1)数据定义语言(Data Definition Language,DDL):主要用于定义SQL模式、数据表、视图和索引等结构;
2)数据操纵语言(Data Manipulation Language, DML):分为数据查询和数据更新(插入、删除、修改);最常用
3)数据控制语言(Data Control Language,DCL):用来更改或设定数据库用户或角色,包括对数据表和视图的授权、完整性规则的描述、事物控制等。
常用
2、sql中常用的命令:
(1)创建数据库: create database 数据库名称;例如,create database notice;
(2)创建数据表:create table 表名称(列名称对应的数据类型,...); 例如,create table Nuser(Unoint, Unamevarchar(45), Upasswordvarchar(45)); 字段的命名规则:一般而言,都是表名首字母_字段名称,例如表user的name字段,命名为u_name,表user的password字段,命名为u_password;以此类推
(3)插入数据:insert into 表名称 (字段1,字段2,字段3,....) values (字段1对应的值,字段2对应的值,字段3对应的值,....); 例如往关系模式user(u_name, u_id, u_password)中插入一条记录数据,语句是insert into user(u_name, u_id, u_password) values("黎明", 12, 123qwe32);
(4)删除数据:delete from 表名称 [where 条件]; 例如删除关系user中姓名为“李华”的记录,语句是delete from user where u_name="李华";
(5)更新数据:update 表名称 set 字段1=值1 [, 字段2=值2,......] [where 条件]; 例如将关系user中的u_name的值改为"李俊"条件是u_name为“华国锋”,语句是 update user set u_name='李俊' where u_name='华国锋';
(6)数据查询:select [distanct ][别名.]字段名或表达式[as 列标题] from 表名 [where 条件] [group by 分组表达式] [orderby排序表达式 [asc|desc]];其中,select 子句:查询结果中显示的字段名或字段名和函数组成的表达式等;as 列表题制定查询结果显示的列表题的名称,如果需要显示表中所有字段,用*代替字段名列表;
distinct关键字:去除重复的记录行;
别名. 是给表另起一个简单的名字,以供条用其属性的时候使用;
from子句:指定表或者视图;
where子句:定义了查询条件;只能是一条记录的主键。
groupby子句:对查询结果进行分组;
orderby子句:对查询结果进行排序;
例如:1)查询notice数据库中user表中用户名和密码: use notice select u_name, u_password from user;
2)查询user表中所有信息:select * from user;
3)查询user表中u_name显示名为用户名: select user.u_name as 用户名, user.u_pwd as 密码from user u; (这里的from user u表示,将user表名重定义为u这个符号)4)查询u_id为1的那条记录:select * from user where u_id=1;
5)查询u_name中有“小”的信息:select * from user where u_name like …%小%‟;
6)查询类型名不是科研通知的通知公告信息:select * from notice where n_type not in (select t_no from type where t_name=”科研通知”);
7)聚合函数1,count()求和:select count(*) from user where u_id<20; (这条语句表示查询ID小于20的记录条数)
聚合函数2,Max(参数)求最大值:select max(u_id) from user; (这条语句表示查询user表中ID号最大的那条记录)
聚合函数3,min(参数)求最小值:select min(u_id) from user; (这条语句表示查询user表中ID号最小的那条记录)
(7)删除数据表或者数据库:drop table表名称; drop database 数据库名称;。