尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习

上传人:E**** 文档编号:90898191 上传时间:2019-06-20 格式:PPTX 页数:23 大小:247.02KB
返回 下载 相关 举报
尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习_第1页
第1页 / 共23页
尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习_第2页
第2页 / 共23页
尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习_第3页
第3页 / 共23页
尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习_第4页
第4页 / 共23页
尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习》由会员分享,可在线阅读,更多相关《尚硅谷教学课件JavaWEB5.尚硅谷佟刚JavaWEBjdbcjavaweb练习(23页珍藏版)》请在金锄头文库上搜索。

1、建数据表,为 name 字段添加唯一约束: alter table customers add constraint name_uk unique(name);,Create table customers( id int primary key auto_increment, name varchar(30) not null unique, address varchar(30), phone varchar(30) );,JSP,Servlet,DAO,DB,显示数据,处理请求: 获取请求参数 对请求参数进行检验 或需要把请求参数进行封装 调用方法: 1. 调用 DAO 方法 派发页面

2、1. 根据 DAO 方法的执行情况来转发不同的页面,对数据进行增, 删, 改, 查操作,保存数据,Database access object,没有任何的业务逻辑.,使用 C3P0 数据库连接池,添加新客户的流程,填入数据,success.jsp,POST 请求,添加新用户请求,addCustomerServlet,解析客户端浏览器的提交数据 封装请求参数到一个 JavaBean 调用 CustomerDAO 的方法 根据方法的返回情况进行页面的派发: 若不出现异常,则派发到 若出现用户名重复,则派发到,CustoemrDAO,public void save(Customer custome

3、r);,success.jsp,JDBCUtils,addCustomer.jsp,Customer,CustoemrDAO,public void saveCustomer(Customer customer);,JDBCUtils,调用,public Connection getConnection(),addCustomerServlet,调用,查询操作,SearchCustomerServlet,获取客户端浏览器的请求参数 封装请求信息到一个 JavaBean中 调用 CustomerDAO 方法 根据方法的执行情况确定派发页面 若不出现异常 出现异常 派发页面,public List

4、 searchCustomers(Customer customer),CustoemrDAO,searchCustomers.jsp,fail.jsp,删除操作,DeleteCustomer?id=,获取 id 值 调用 CustomerDAO 方法执行删除操作 根据方法的执行情况派发页面 没有异常派发页面到 若出现异常,CustomerDAO,public void delete(int id);,转发 OR 重定向,error.jsp,/SearchCustomerServlet,/index.jsp,删除时需要注意: 在 ”Delete” 连接上需要加上 id 参数 在执行 Custo

5、merDAO 方法若不出现异常, 派发页面若为 “searchCustomers.jsp” 将在该页面不能获取 customer 的信息, 所以派发页面应该为 servlet 的一个映射地址 “searchCustomerServlet”;但此时在 searchCustomerServlet 中 request.getParameter(“name”) 值将为 null,这可以通过修改 customerDAO 的方法来修正。,1. Customer cust = new Customer();,Cust.setName(“Tom”),修改操作,CustomerUIServlet,custome

6、rUI.jsp,获取客户端的请求参数, customerId 调用 CustomerDAO.findCustomerById(int customerId); 返回对应的 Customer 对象 若不出现异常, 把 2 得到的 Customer 对象放到 request 域中. 派发到 customerUI.jsp 页面. 若出现异常, 把异常信息放到 request 域中 派发到 searchcustomers.jsp 页面, 显示提示信息和先前显示的 customer 信息,使用 JSTL 和 EL 显示数据,根据 customerId 到数据库中查询对应的记录, 并把记录封装成一个 Cu

7、stomer 对象返回; 若该记录不存在, 抛出一个信息为: “要修改的客户不存在” 的 RuntimeException。,修改操作,CustomerUIServlet,customerUI.jsp,updateCustomerServlet,注意:需要获取隐藏域的 id 值,searchCustomerServlet,jdbc_javaweb_2/customerui?id=9a,CustomerUIServlet,SearchCustomers,searchCustomers.jsp,SearchCustomers,searchCustomers.jsp,提交请求,转发: forward

8、,CustomerUIServlet,转发: forward,customerUI.jsp,提交请求,UpdateCustomerServlet,提交请求,转发: forward,ActionServlet,AddCustomer,SearchCustomer,DeleteCustomer,abstract calss Action abstract String execute(HttpServletRequest request, HttpSerlvetResponse response) ,AddCustomerAction,SearchCustomerAction,DeleteCust

9、omerAction,读取,JSP,Servlet,DAO,显示数据,处理请求, 调用方法, 派发页面,对数据进行增, 删, 改, 查操作,若 DAO 出现异常, DAO 内部: 打印异常信息, 有利于排错 把异常信息经过重新封装以 RuntimeException 的形式跑出去,在 Servlet 中: 需要用 try catch 捕捉异常, 因为若再不抓异常, 则服务器会以 error 页面的形式显示异常信息, 这显然不是用户所能够接受的 在 catch 块中把异常信息放到 request 中, 在页面显示异常信息,数据库的配置文件:为了在底层可以随意的切换数据库而不用修改程序的源代码,则

10、连接数据库的 user, password, driver, url 这些参数就不能以硬编码的方式写在程序代码中,而是将它们保存在一个文件中 这个资源文件一般被保存在 WEB-INF 目录或其子目录下(一般不放在 lib 目录下) 在 Servlet 中不可以使用 FileInputStream 类来直接访问资源文件,原因有二: 在程序中不应该使用绝对路径的形式来访问 web 应用程序的某个文件 在某个 java 类中使用的相对路径是相对于当前的工作目录而言的,这个目录通常是执行 Java 命令的目录,而不是当前正在执行的 Java 类所在的目录。 解决方案: 使用 JDK 中提供的 Clas

11、sLoader 类提供的 getResource 等方法加载资源文件,它们使用与查找 Java 类文件同样的方案去查找资源文件,即在类加载器所搜索的目录中查找。由于 web 应用程序的类装载器会搜索 WEB-INF/classes 目录,所以当 配置文件 放置在该目录下时利用 ClassLoader.getResourceAsStream() 方法可以访问到配置文件 调用 ServletContext.getResourceAsStream() 方法 ServletContext.getRealPath 先读取文件的绝对路径, 再利用 FileInputStream 完成,加载当前 web 应

12、用时,Web 服务器会初始化这个 Servlet,调用 init 方法,读取 web.xml 中为当前 web 应用配置的初始化参数 dbType, 并把该值赋给 WebAppConfig 的 dbType 静态属性,DAO 对象调用 DBManager 的 getConnection 方法,根据在 WebAppConfig 中 静态变量 dbType 的值来决定加载那个数据库配置文件,需求: 存储媒介由 mysql 改为 xml 文件 JSP 是负责显示的, JSP 不用改动 Servlet 负责接受请求,调用 DAO 方法, 进行页面派发。 需要小范围改动:改动 调用的 DAO 对象,Se

13、archCustomerServlet,CustomerDAOMysqlImpl,CustomerDAOXMLImpl, CustomerDAO,CustomerDAOMysqlImpl,CustomerDAOXMLImpl, CustomerDAO,CustomerDAOFactory,创建 CustomerDAO 的一个实现类对象,SearchCustomerServlet,调用接口中定义的方法,Web.xml,获取CustomerDAO 实现类对象,WebConfig,InitMvcAppServlet,关于 InitMvcAppServlet 的说明: 作用: 读取 web 应用的初始

14、化参数(该 Servlet 中只有一个 init 方法) 要求:在 web 应用真正运行前,把参数读取出来并且赋给 WebConfig 对象的 dbType(load-on-startup) 该 Servlet 不需要被客户端访问(该 Servlet 只需注册不需要进行映射),请求,AddCustomerServlet,CustomerDAOMysqlImpl,CustomerDAOXmlImpl,Web.xml,CustomerDAO,CustomerDAOFactory,获取 CustomerDAO 实现类的对象,根据传过来的 web.xml 中的参数值来创建对象,用于查询 Custome

15、r 对象,条件查询的条件,customerUIServlet,Get 请求,派发,在该页面能够得到 (连接1)处的 name, address 和 phone,即能够得到条件查询的条件,(连接1),updateCustomerServlet,在该 Servlet 中不能得到 (连接1)处的 name, address 和 phone,即不能得到条件查询的条件,Post 请求,派发,searchCustomerServlet,在该 Servlet 中得不到查询条件,用于查询 Customer 对象,条件查询的条件,customerUIServlet,Get 请求,派发,在该页面能够得到 (连接1)处的 name, address 和 phone,即能够得到条件查询的条件,(连接1),updateCustomerServlet,在该 Servlet 中能够得到 updateCustomers.jsp 表单提交的数据,所以能够得到该表单中隐藏域的值,即能够得到(连接1)处的 name, address 和 phone,即能够得到条件查询的条件,Post 请求,派发,searchCustomerServlet,在该 Servlet 中能够得到查询条件,web.xml,daoConfig.xml,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号