开发基于JSP_Servlet_JavaBean的网上交易系统.doc
《开发基于JSP_Servlet_JavaBean的网上交易系统.doc》由会员分享,可在线阅读,更多相关《开发基于JSP_Servlet_JavaBean的网上交易系统.doc(23页珍藏版)》请在三一文库上搜索。
1、开发基于JSP Servlet JavaBean的网上交易系统第一章 JavaEE的概述1 了解性知识(jsp的弊端,什么是JavaEE,什么是框架,javaEE的结构体系) 表示层技术(HTML JavaScript Ajax) 中间层技术(JSP Servlet JSTL JavaBean Strusts) 数据库技术(JDBC技术 数据层框架技术Hibernate) 系统集成技术(JAX-WS技术 JNDI)2 HTTP协议 http是一个无状态协议,默认输出端口为803 Post与Get提交数据方法的差别(Get方法是浏览器默认的提交方法) (1)Post请求数组在地址栏不可见,相对比
2、较安全 (2)Post请求提交的数据在理论上没有长度的限制 (3)Get请求将字符串添加到URL中,是页面可以被设置成书签或使用电子邮件发送,Post请求则不能4 为Eclipse添加数据监控工具TCP/IP Monitor进行数据监控(1)单击“窗口”-“首选项”命令,弹出“首选项”窗口(2)展开左侧的“运行/调试”节点,选择TCP/IP Monitor选项,并选中Show the.复选框(3)添加监视窗口,单击add按钮后,弹出对话框,按图添加内容(4)启动监控,运行程序,把地址内的端口号8080改为8088查看监控结果第二章 Servlet基础1 Servlet是一个java程序,是在服
3、务器端运行以处理客户端请求并作出响应的程序。创建Servlet类必须继承HttpServlet类,实现doGet()或者doPost()方法2 单击右建选择新建Servlet命令,在弹出的窗口中输入Servlet名称,选择超类为javax.servlet.http.HttpServlet,并选中Create doGet和doPost两个复选框,单击完成按钮3 Servlet的生命周期(1)实例化 Servlet容器创建Servlet的实例(2)初始化 该容器调用Init()方法(3)服务 如果请求Servlet,则容器调用service()方法(4)销毁 销毁实例之前调用destory()方法
4、4 Servlet的部署与配置:web文件 AddServletservlet.AddServlet AddServlet /AddServlet 5 Servlet处理Get/Post请求(1)HttpServletRequest request对象常用方法 Request.getParameter(“param”)获取客户请求的数据 Request.setCharacterEncoding(“GBK”);将输入内容转化成中文 Request.setAttribute(“loginname”,user);在request作用域存储数据(2)HttpServletResponse respon
5、se对象常用方法 Response.setContentType(“text/html;charset=GBK”);设置输出中文,解决中文乱码问题 Response.sendRedirect(“URL”);让浏览器重定向到指定的资源(3)转发 RequestDispatcher dispatcher=request.getRequestDispatcher(url);首选定义转发器dispatcher.forward(request, response); 然后实现转发的功能第三章 基于Servlet的会话跟踪(一) 1 会话的创建 HttpSession session = request.
6、getSession(Boolean value);HttpSession session = request.getSession();在第一种方法中,布尔值为true时,如果存在与当前请求关联的会话,就返回该会话。否则创建一个新会话,并把会话返回。布尔值为false时,如果存在与当前请求关联的会话,就返回该会话。否则返回null,不创建会话。 2 会话的使用 Session.setAttribute(String name,Object value); Session.getAttribute(String name); 值得注意的是:Session.getAttribute(String
7、 name);方法返回的是Object对象,所以在取出数据是需要进行数据类型转化,是与存入的一致。 3 HttpSession对象的结束 (1)关闭浏览器,关闭Session (2)调用HttpSession的invalidate()方法,删除HttpSession对象和数据。 (3)两次访问的时间间隔大于Session定义的非活动时间间隔第四章 基于Servlet的会话跟踪(二)1 购物车的设计分析HttpSession session = request.getSession(false);RequestDispatcher dispatcher;/ 如果session不存在,转向 /ch
8、04/books.jspif (session = null) dispatcher = request.getRequestDispatcher(/cho4/books.jsp);dispatcher.forward(request, response);/ 取出购物车和添加的书籍Map cart = (Map)session.getAttribute(cart);BookBean book = (BookBean) session.getAttribute(bookToAdd);/ 如果购物车不存在,创建购物车if (cart = null) cart = new HashMap();/
9、将购物车存入session之中session.setAttribute(cart, cart);/ 判断书籍是否在购物车中CartItemBean cartItem = (CartItemBean) cart.get(book.getISBN();/ 如果书籍在购物车中,更新其数量./ 否则,创建一个条目到Map中.if (cartItem != null)cartItem.setQuantity(cartItem.getQuantity() + 1);elsecart.put(book.getISBN(), new CartItemBean(book, 1);/ 转向viewCart.jsp
10、显示购物车response.sendRedirect(/Y2JavaEE/cho4/viewCart.jsp); 实现购物车列表 % Map cart = (Map) session.getAttribute(cart);double total = 0;if (cart = null | cart.size() = 0)out.println(购物车当前为空。);out.println(继续购物 ); else / 创建用于显示内容的变量Set cartItems = cart.keySet();Object isbn = cartItems.toArray();BookBean book;
11、CartItemBean cartItem;int quantity;double price, subtotal;% / continue scriptlet int i = 0;while (i 我们通过Map接口的keySet()方法,可以把Map中的key建以set形式返回,在通过toArray()方法,将Set对象转换为Object类型数组,之后我们遍历数组,以数组元素为key值,取出map中所存储的数据 2 格式化问题 在处理数字格式方面,Java API为我们提供了DecimalFormat类,为我们解决十进制数字的格式化问题。 3 常用集合类,接口 (1)List接口(List
12、接口与Set接口都继承自Collection接口) ArrayList是以Array方式实现的List,允许快速随机存取,相对与LinkedList不适合进行插入和移除元素操作 LinkedList提供最佳顺序存取,适合插入和移除元素(2)Set接口(set是一种不包含重复元素的Collection,也就是说在Set中最多只能有一个null元素) HashSet能够快速定位一个元素,但是它要存入HashSet的对象必须实现HashCode()方法 TreeSet将放入其中的元素按顺序存取(3)Map接口(Map是一种把键对象与值对象进行关联的容器,像Set一样,一个map容器中的键对象不允许重
13、复,这是保证查找结果的一致性) HashMap类是Map类的实现类,实现一个键到值映射的哈希表,通过键取得值对象。 Properties类一般是把属性文件读入流中后,以键-值的形式进行保存,以方便程序员读取其中的数据第五章 基于Servlet的MVC设计模式 MVC是一种流行的软件设计模式 (1)模型(Modle):对应的组件是JavaBean(Java类)(2)视图(View):对应的组件是JSP或HTML文件(3)控制器(Controller):对应的组件是ServletMVC设计模式的好处1各司其职,互不干涉2有利于开发中的分工3有利于组建的重用第六章 Model层开发:高级JDBC 1
14、 数据库连池 (1)数据连接池 在JDBC 2.0 中提供了javax.sql.DateSoure(数据源)接口,它负责建立与数据库的连接,在应用程序中访问数据据库不必编写连接数据库的代码,可直接从数据源获得数据库连接。 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接,以避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术明显的提高了对数据库的操作性能。 数据库连接池在初始时将创建一定的数据库连接放到连接池中,这些数据库连接的数量是有最小数据库连接数来确定的。无论这些数据库连接是否被使用
15、,连接都一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个链接池能占用的最大连接数量,当应用程序向连接池请求的连接数量超过最大连接数量时,这些请求将被加入到等待列中。 (2)数据源与JNDI资源 DataSoure对象是由Web容器(Tomcat)提供的,因此不能在程序中采用创建一个实例的方法来生成DataSource对象,而需要采用Java的另一个技术JNDI,来获得DataSource对象 可以简单的把JNDI理解为一种将对象和名字绑定的技术,容器产生出对象,这些对象都和唯一的名字绑定。外部程序可以通过名字来访问该对象。 Javax.naming,Context提供了查
16、找JNDI Resource的接口,例如,可以通过以下的代码获得jdbc/books的数据源的引用:Context ic = new InitialContext();DataSource source = (DataSource)ic.lookup(java:comp/env/jdbc/books);conn=source.getConnection(); /获取数据库连接当程序结束数据库访问后,应该调用Connection的close()方法,及时将Connection返回给数据库连接,是Connection恢复空闲状态。Context接口的lookup()方法方法说明lookup(Str
17、ing name)返回与指定的名字绑定的对象Tomcat把DataSource作为一种可配置的JNDI资源来处理。生成DataSource对象的工厂为mons.dbcp.BasicDataSourceFactory.配置多个DataSource,可以通过lookup(String name)自动查找连接。 (3)JNDI的配置 context.xml文件的配置 在Tomcat根目录confcontext.xml文件中节点中添加信息,内容添加如下:的属性属性说明Name指定Resource的JNDI名字Auth指定管理Resource的Manager,他有两个值可选:Container和Appl
18、ication.Container表示有容器来创建Resource,Application表示有Web来创建和管理ResourceType指定Resource所属的Java类名maxActive指定数据库连接池中的数据库连接处于活动状态的最大数目,取值为0表示不受限制maxIdle指定数据库连接池中的数据库连接处于空闲状态的最大数目,取值为0表示不受限制maxWait指定数据库连接池中的数据库连接处于空闲状态的最长时间(以毫秒为单位),超出这一时间会抛出异常。取值为-1可以无限制等待Username制定连接数据库的用户名Password指定连接数据库的口令driverClassName指定连接
19、数据库的JDBC驱动程序url指定连接数据库的URlweb.xml文件的配置 E-Books DataSource jdbc/books javax.sql.DataSource Container的属性属性说明description对所引用资源的说明res-ref-name指定所引用资源的JNDI名字,与元素中的name属性对应res-type指定所引用资源的类名字,与元素中的type属性对应res-auth指定管理所引用资源的Manager,与元素中的auth属性对应3 基于数据库文件的数据库配置(1)数据配置信息private static final String DRIVER_CLA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开发 基于 JSP_Servlet_JavaBean 网上 交易系统
链接地址:https://www.31doc.com/p-5022357.html