Java Web应用开发项目教程 课件全套 电子 第1-12章 Java Web应用开发基础-JSP技术_第1页
Java Web应用开发项目教程 课件全套 电子 第1-12章 Java Web应用开发基础-JSP技术_第2页
Java Web应用开发项目教程 课件全套 电子 第1-12章 Java Web应用开发基础-JSP技术_第3页
Java Web应用开发项目教程 课件全套 电子 第1-12章 Java Web应用开发基础-JSP技术_第4页
Java Web应用开发项目教程 课件全套 电子 第1-12章 Java Web应用开发基础-JSP技术_第5页
已阅读5页,还剩460页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java

Web应用开发计算机与软件学院课程的任务计算机与软件学院Web服务、Web应用、B/S结构的应用将成为主流基础Web开发导论计算机网络技术静态网页设计数据库原理及应用任务Web应用的规划、设计动态页面设计与实现课程的基本内容计算机与软件学院本课程选用教学内容JSPServletJSP技术力量背景强大语言环境(Java)教材及主要参考书目

孙卫琴.Tomcat与Java

Web开发技术详解(第2版)电子工业出版社

耿祥义.JSP实用教程(第2版)清华大学出版社JSP程序设计类教材计算机与软件学院课时安排和成绩评定总学时:75学时,讲课与实验结合。成绩评定3次旷课没有平时成绩,3次迟到算旷课一次。30%平时成绩30%项目成绩40%期末考试作业考勤态度计算机与软件学院静态网页静态文档超文本HTML(Hypertext

Markup

Language,超文本链接标示语言)静态网页人工手动维护HTML代码交互性差计算机与软件学院动态网页动态网页交互性自动更新(信息)数据库的存取文件的访问…通过数据库进行动态网页的生成计算机与软件学院提高了网页设计和开发的效率保证Internet应用的数据一致性和设计风格的一致性

提高Internet应用数据维护的方便性和效率。第1章Java

Web应用开发基础计算机与软件学院本章要点:★软件常用体系结构C/S和B/S结构★静态网页和动态网页★Web应用和Web应用技术★动态网页技术CGI

/ASP/PHP/JSP★JSP的常用开发模式★Java

Web应用的运行环境★JDK的下载、安装和配置★Tomcat的下载、安装和配置★编写简单的JSP程序,并能够使之在Tomcat等JSP服务器上运行1.1

C/S结构与B/S结构C/S结构Client/Server软件系统分成Client和Server两个部分Client和Server通常处在不同的计算机上计算机与软件学院1.1

C/S结构与B/S结构计算机与软件学院优点人机交互性强具有安全的存取模式网络响应速度快利于处理大量数据缺点维护和管理的难度较大需要安装相应的客户端程序不同的操作系统系统开发不同版本的软件1.1

C/S结构与B/S结构

B/S结构

Browser/Server核心概念是将整个应用的主要业务逻辑集中在服务器端执行,而客户端只负责简单的数据表示和交互典型3层结构的

Web应用计算机与软件学院1.1

C/S结构与B/S结构

Web应用建立在Web系统之上,而且加以扩展,即添加了业务功能简单来说,Web应用利用Web浏览器执行业务逻辑的Web系统后台数据库的支持使得其内容具有动态性计算机与软件学院1.1

C/S结构与B/S结构计算机与软件学院1.1

C/S结构与B/S结构计算机与软件学院B/S结构的优点分布性强维护方便开发简单且共享性强总体拥有成本低B/S结构的缺点数据安全性问题对服务器要求过高数据传输速度慢软件的个性化特点低1.2

Web应用计算机与软件学院Web应用基础

Web应用:网站,网站由大量的页面组成,每个页面通常是由一个或者多个文件组成。

组成网站的大量文件之间通过特定的方式进行组织,并且由一个系统来管理这些文件。应用服务器:管理网站的文件1.2

Web应用计算机与软件学院网站的文件通常类型网页文件如.html、.jsp等网页的格式文件

如.css等

资源文件:文字、图形、声音、动画、资料库、以及各式各样的软件配置文件

处理文件:用于对用户的请求进行处理,如供网页调用、读写文件或访问数据库等1.2

Web应用计算机与软件学院Web应用运行环境客户端环境:

浏览器服务器端环境:服务器端程序网络环境:

网络连接动态网页技术CGI/ASP/PHP/JSP计算机与软件学院CGI

(Common

Gateway

Interface)优点可以独立运行,易于使用缺点当大量用户同时访问同一网页时会同时使用一个CGI应用程序,响应会变慢,Web服务器速度也会受到很大影响对服务器系统提出极高的要求。动态网页技术CGI/ASP/PHP/JSP计算机与软件学院ASP

(Active

Server

Pages

)微软1996年推出ASP不是一种语言而是一种技术使用VBscript、Javascript等简单易懂的脚本语言,结合HTML代码无须编译,可以直接在服务器端执行动态网页技术CGI/ASP/PHP/JSP计算机与软件学院ASP

(Active

Server

Pages

)优点支持动态网页功能,易于使用缺点–脚本是在服务器端运行的,只能在可以支持的服务器上运行,但目前只能在微软公司的NT平台的IIS服务器上执行,限制了ASP的应用。动态网页技术CGI/ASP/PHP/JSP计算机与软件学院PHP

(Personal

Home

Page)是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有点类似于C语言,现在被很多的网站编程人员广泛的运用PHPPHP对MYSQL数据库的支持最全面,因此有人曾把

“Apache+PHP+MYSQL”组合称作Web开发中的黄金搭档动态网页技术CGI/ASP/PHP/JSP计算机与软件学院JSP

(Java

Server

Page

)在服务器端编译执行的Web设计技术Sun公司1999年6月推出JSP技术是完全与平台无关的设计JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。JSP下的编程语言是Java动态网页技术CGI/ASP/PHP/JSP计算机与软件学院JSP

(Java

Server

Page

)–广泛的服务器支持,同PHP类似,几乎可以运行于所有平台,如Windows

NT、Linux、Unix。Windows

NT下的IIS通过一个插件,例如JRUN或者ServletExec就能支持JSP1.4

JSP的开发模式纯粹JSP实现JSP+JavaBean实现JSP+JavaBean+Servlet实现J2EE模式实现计算机与软件学院1.5

Java

Web应用的运行环境计算机与软件学院主要涉及下述两方面内容JDK的下载、安装和配置下载地址:https:///java/technologies/downloads安装:直击双击即可,一路next;配置:涉及环境变量JAVA_HOME和添加相应path;Tomcat的下载、安装和配置下载地址:/安装:直击解压;配置:涉及环境变量CATALINA_HOME和添加相应path;1.5

Java

Web应用的运行环境JDK的下载和安装JDK中包括Java编译器(javac)、打包工具(jar)、文档生成器(javadoc)、查错工具(jdb),以及完整的JRE(Java

RuntimeEnvironment,Java运行环境),也被称为Private

RuntimeJDK开发工具包的官方网址为https:///java/technologies/downloads计算机与软件学院1.5

Java

Web应用的运行环境JDK的下载和安装https:///java/technologies/javase/javase8u211-later-archive-

downloads.html计算机与软件学院1.5

Java

Web应用的运行环境JDK的下载和安装选择合适的JDK下载,如本机是32位机器,选择Windows

x86版本,64位机器选择windows

X64版本计算机与软件学院1.5

Java

Web应用的运行环境JDK的下载和安装计算机与软件学院1.5

Java

Web应用的运行环境配置JDK计算机与软件学院1.5

Java

Web应用的运行环境配置JDK参考:/kevinlocn/archive/2009/10/12/1581855.html计算机与软件学院1.5

Java

Web应用的运行环境计算机与软件学院安装和配置Tomcat服务器Tomcat简介是Sun公司官方推荐的Servlet和JSP容器Tomcat是完全免费的软件Tomcat和IIS、Apache等Web服务器一样,具有处理

HTML页面的功能Tomcat处理静态HTML的能力不如Apache1.5

Java

Web应用的运行环境安装和配置Tomcat服务器下载Tomcat,可以直接在网络上搜索或者从Tomcat官方网站获取并解 压。/计算机与软件学院1.5

Java

Web应用的运行环境安装和配置Tomcat服务器

1、计算机>属性>环境变量,新建环境变量java_home,变量值tomcat的解压目录。2、添加java_home,值为JDK的安装路径3、启动:进入命令行cmd,输入startup.bat4、测试:http://localhost:8080,看tomcat是否正常启动5、关闭:进入命令行cmd,输入shutdown.bat计算机与软件学院1.5

Java

Web应用的运行环境安装和配置Tomcat服务器测试安装Tomcat是否成功计算机与软件学院1.6测试一个JSP程序计算机与软件学院测试一个JSP程序在安装成功后打开Tomcat安装目录,可以看到几个文件夹。其中,Tomcat将由JSP文件转译后的Java源文件和class文件存放在work文件夹下,bin为Tomcat执行脚本目录,conf文件夹下存放有Tomcat的配置文件,lib文件夹为Tomcat运行时需要的库文件,Tomcat执行时的日志文件存放在logs文件夹下,webapps为Tomcat的Web发布目录。按照下面的操作过程创建和运行第一个JSP程序:在Tomcat安装目录下的Webapps目录中,可以看到ROOT、examples、manager、

tomcat-docs之类Tomcat自带的Web应用范例。在webapps目录下新建一个名称为HelloJsp的文件夹。在HelloJsp下新建一个文件夹Web-INF。注意,目录名称是区分大小写的。1.6测试一个JSP程序计算机与软件学院测试一个JSP程序(4)在Web-INF下新建一个文件web.xml,该文件为Tomcat的部署文件,并在其中添加如下代码:<?xml

version="1.0"

encoding="UTF-8"?><!DOCTYPE

web-app

PUBLIC

"-//Sun

Microsystems,

Inc.//DTDWeb

Application

2.3//EN"

"/dtd/web-app_2_3.dtd"><web-app><display-name>My

Web

Application</display-name><description>A

JSP

application

for

test</description><welcome-file-list><welcome-file>Test.jsp</welcome-file></welcome-file-list></web-app>1.6测试一个JSP程序计算机与软件学院测试一个JSP程序(5)在HelloJsp目录下创建文本文件,并为其指定文件名为Test.jsp。注意JSP页面的扩展名必须为.jsp。然后在该文本文件中输入如下代码:<%@

page

contentType="text/html;

charset=gb2312"

%><html><head><title>第一个JSP程序</title></head><body><h2

align="center"><%=new

java.util.Date()%></h2></body></html>1.6测试一个JSP程序测试一个JSP程序启动Tomcat,当Tomcat重新启动时会自动部署webapps下的所有Web应用。打开浏览器,输入http://localhost:8080/HelloJsp/Test.jsp计算机与软件学院第1章Java

Web应用开发基础计算机与软件学院思考题:1、简述HTTP协议和一次HTTP请求与响应的过程。2、试阐述JSP服务器端运行环境的安装与配置。3、试编写一个简单的JSP程序,并能够使之在Tomcat服务器上运行。Java

Web应用开发第2章E-Store电子商城项目概述计算机与软件学院■本章要点:★E-Store电子商城需求★E-Store电子商城总体设计,包括系统架构设计、功能结构划分、业务流程设计★Java

Web应用开发环境搭建★创建E-Store电子商城项目★Java

Web应用程序组成及结构★网站欢迎页面实现★JSP基本语法2.1项目概述计算机与软件学院E-Store电子商城简介E-Store电子商城系统是基于Internet网络平台,利用Web技术、数据库技术、Java技术、面向对象技术等进行开发的Web应用系统。系统中不同权限的用户分别可以实现商城的管理和网上购物等操作。实现:JSP+BeanJSP+Bean+Servlet基于spring

MVC框架2.2系统分析与总体设计前台功能结构图计算机与软件学院2.2系统分析与总体设计后台功能结构图计算机与软件学院2.2系统分析与总体设计前台业务流程图计算机与软件学院2.2系统分析与总体设计后台业务流程图计算机与软件学院2.2系统分析与总体设计系统预览商品前台首页详细信息展示计算机与软件学院2.2系统分析与总体设计系统预览购物车查看页面后台订单信息显示页面计算机与软件学院2.2系统分析与总体设计系统预览后台商品添加页面后台用户管理页面计算机与软件学院2.3系统架构设计与搭建系统架构设计计算机与软件学院2.3系统架构设计与搭建计算机与软件学院业务实体介绍会员(Customer):代表一个会员实体,主要包括会员的 详细信息。如会员名,密码,地址等。商品信息(Product):代表每一个具体的商品信息,主要 包括商品名称、类别、产地、价格等。商品类别(Category):代表商品类别信息,主要包括商 品所属类别、名称等。购物车(Cart):代表会员一次购物时商品暂时存放的地 方,在生成订单后便不再需要。2.3系统架构设计与搭建计算机与软件学院业务实体介绍购物车中的具体商品(CartItem)代表购物车中每一个具体商品的购买情况,包含购买价格、数量等。订单(Order)代表会员的订单,主要包括订单号,会员信息,订单的具体内容。订单明细(OrderItem)代表订单中具体项,一个订单应包括一个或多个商品的购买情况。2.3系统架构设计与搭建业务实体关系图计算机与软件学院2.3系统架构设计与搭建业务逻辑设计DAO模式计算机与软件学院2.3系统架构设计与搭建计算机与软件学院开发环境服务器端:操作系统:Windows

10Web服务器:Tomcat

9.0以上开发环境:Eclipse

Oxygen.3a

ReleaseWeb开发框架:SpingMVCJava开发包:JDK

1.8.0_311以上数据库:MySQL

8.0.15浏览器:IE

7.0以上分辨率:最佳效果为1024×768像素客户端:浏览器:IE

7.0及以上版本分辨率:最佳效果为1024×768像素2.3系统架构设计与搭建启动Eclipse

Oxygen.3a

Release集成开发环境计算机与软件学院2.3系统架构设计与搭建创建工程项目选择【File】→【New】→【Project】如下图所示,工程类型选择【Dynamic

Web

Project】计算机与软件学院2.3系统架构设计与搭建3)如下图所示,在ProjectName处填写工程名E-Store,其他选项保持默认值,单击Finish按钮,Web工程就创建结束。计算机与软件学院搭建2.3系统架构设计与Web应用的目录结构计算机与软件学院2.3系统架构设计与搭建E-Store应用的目录计算机与软件学院2.4

JSP页面基本语法JSP元素计算机与软件学院2.4

JSP页面基本语法计算机与软件学院JSP元素_指令格式:包含在<%@%>标签里作用:向JSP引擎提供该页的全局信息。例如:页面的状态,错误处理,是否是session的一部分等。指令类型:page指令

include指令

taglib指令2.4

JSP页面基本语法计算机与软件学院JSP元素_指令例如:指定在页面中引入其他的Java类,可用:<%@page

import="java.util.Date"%>

当本页面在执行过程中发生异常时将把异常信息传送到errorPage.jsp统一处理,可用:<%@page

errorPage="errorPage.jsp"%>

设置JSP文件执行后返回给浏览器的文件类型和字符编码方式,缺省为:<%@page

ContentType

=

"text/html;

charset=ISO-8859-1"

%>

指明返回给浏览器的文件是普通的HTML类型的文本文件,字符编码方式是ISO-8859-12.4

JSP页面基本语法计算机与软件学院JSP元素_注释输出注释两种不同类型的注释:HTML、JSPHTML注释客户端源文件可以看到:<!--comment[<%=expression%>]-->例如:<!--现在时间为:<%=(newjava.util.Date()).toLocaleString()%>-在客户端的HTML源文件中显示为:<!--现在时间为:January

1,2009-->2.4

JSP页面基本语法计算机与软件学院JSP元素_注释隐藏注释JSP注释是JSP本身用于描述JSP程序代码的注释,用于描述JSP页面执行后的结果页面。格式如下:<%--JSP的注释不会在客户端显示--%>例如:<%--现在时间为:<%=(newjava.util.Date()).toLocaleString()

%>

--%>2.4

JSP页面基本语法计算机与软件学院JSP元素_注释在JSP的“脚本代码”部分,“scriptlet”可以直接在“<%%>”中使用Java的语法,所以下面形式的注释也是合法的:<%/*这是一个scriptlet中的注释*/%><%/**这也是一个scriptlet中的注释,可以用javadoc从生成的Java文件中提取出注释来*/%>2.4

JSP页面基本语法计算机与软件学院JSP元素_脚本在JSP中,主要的动态程序部分是脚本元素。声明(Declaration):用于声明一个或多个变量和方法。表达式(Expression):一个完整的语言表达式。脚本代码(scriptlet):程序片断。2.4

JSP页面基本语法计算机与软件学院JSP元素_脚本1)声明用于声明一个或多个变量和方法,这些声明不会被输出到浏览器中去。在声明元素中声明的变量和方法将在JSP页面初始化时被赋初值。语法为:<%!

Declaration

%><%!

int

i

=

0;

%><%!public

String

f(int

i)

{if

(i<3)

return("...");...}%>2.4

JSP页面基本语法计算机与软件学院JSP元素_脚本2)表达式JSP中的表达式可以被看作一种简单的输出形式,但表达式一定要有一个可以输出的值。语法为:<%=expression%>例如:<%=(new

java.util.Date()).toLocaleString()%>在页面上输出目前日期的值。2.4

JSP页面基本语法计算机与软件学院JSP元素_脚本3)脚本代码JSP的代码部分,其中可以使用任何Java的语法。语法为:<%

scriptlet

%><%if

(Calendar.getInstance().get(Calendar.AM_PM)

==

Calendar.AM)

{%>Good

Morning,

now

is:<%=

(new

java.util.Date()).toLocaleString()

%><%}

else

{%>Good

Afternoon,

now

is:<%=

(new

java.util.Date()).toLocaleString()

%><%}%>2.4

JSP页面基本语法计算机与软件学院JSP元素_动作JSP动作利用XML语法格式的标记来控制JSP引擎的行为。利用JSP动作可以动态地实现插入文件、重用

JavaBean组件、把用户重定向到另外的页面、为

Java插件生成HTML代码等功能。2.4

JSP页面基本语法计算机与软件学院JSP元素_动作常用的JSP动作包括:jsp:include:在页面被请求的时候引入另一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置JavaBean的属性。jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转发到一个新的页面。jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。2.4

JSP页面基本语法计算机与软件学院JSP元素_内置对象JSP的内置对象不需要声明,直接可以在JSP中使用。JSP有常用以下几种内置对象:

request:该对象封装了用户提交的信息。通过调用该对象相应的方法可以获得用户通过浏览器提交的请求以及相关cookie、header、session等信息。

response:response对象提供了用于设置送回浏览器的响应的方法。

out:提供了将response对象向浏览器输出结果的方法。2.4

JSP页面基本语法计算机与软件学院JSP元素_内置对象pageContext:用于方便存取各种范围的名字空间、

servlet相关的对象的API。session:存储用户的状态信息,一个session对象存储一个用户的会话信息,完成对该用户的会话管理。application:当web服务器启动后,对应与部署在这个

服务器上的每一个Web应用都会产生一个application对象,是一个javax.servle.ServletContext类的实例对象。page:page对象表示该JSP页面本身。第2章E-Store电子商城项目概述计算机与软件学院思考题1、试在Eclipse中创建一个Java

Web项目,并在Eclipse自带的Web服务器和独立的Tomcat9服务器上部署和运行。2、阐述JSP页面的主要元素有哪些,分别有什么作用。3、JSP页面常用的内置对象有哪些?如何使用?Java

Web应用开发第3章前台商品展示模块计算机与软件学院本章要点:前台商品展示功能的详细设计和具体实现JSP访问数据库前台商品展示功能实现优化网站前台页面的风格统一新品、特价商品展示的详细设计和具体实现使用分页显示技术商品检索功能详细设计和具体实现JSP隐含对象request、responseJSP的include指令和include动作表单提交及中文处理3.1前台商品展示页面设计前台商品展示页面效果如图计算机与软件学院3.1前台商品展示页面设计商品信息实体E-R图计算机与软件学院3.1前台商品展示页面设计商品大类实体E-R图计算机与软件学院3.1前台商品展示页面设计商品小类实体E-R图计算机与软件学院3.1前台商品展示页面设计商品信息表结构计算机与软件学院3.1前台商品展示页面设计商品大类表结构计算机与软件学院3.1前台商品展示页面设计商品小类表结构计算机与软件学院3.1前台商品展示页面设计数据表之间的关系计算机与软件学院3.1前台商品展示页面设计创建数据库和数据表计算机与软件学院3.1前台商品展示页面设计设置表tb_product的结构计算机与软件学院3.1前台商品展示页面设计前台页面功能流程图计算机与软件学院3.1前台商品展示页面设计创建main.jsp页面计算机与软件学院3.1前台商品展示页面设计创建main.jsp页面计算机与软件学院3.1前台商品展示页面设计计算机与软件学院加载数据驱动在JDBC连接到数据库之前,必须要加载数据库驱动程序,例如加载SQL

Server的驱动。<%...Class.forName("com.mysql.cj.jdbc.Driver").newInstance();//加载数据库驱动...%>3.1前台商品展示页面设计加载数据驱动到工程中计算机与软件学院3.1前台商品展示页面设计加载数据驱动到工程中计算机与软件学院3.1前台商品展示页面设计计算机与软件学院创建数据库连接创建数据库连接需要创建Connection(java.sql包)类的一个实例。连接代码如下:<%String

url

="jdbc:mysql://localhost:3306/estoredb?useSSL=false

&useUnicode=true&characterEncoding=UTF-

8&serverTimezone=GMT%2B8";

conn=DriverManager.getConnection(url,"root",

"12345njcit");//加载数据库连接...%>3.1前台商品展示页面设计计算机与软件学院查询商品信息代码如下:<%...st

=

connection.createStatement();rs

=

st.executeQuery("select

*

from

tb_product

orderby

id

DESC");...%>3.1前台商品展示页面设计计算机与软件学院展示商品信息代码如下:<%...while

(rs.next())

{%><div

align="center"><image

src="<%=rs.getString("picture")%>"

width="110"

height="100"/></div>...%>3.1前台商品展示页面设计计算机与软件学院关闭数据库连接,释放资源代码如下:<%...rs.close();st.close();conn.close();...%>3.1前台商品展示页面设计main.jsp的显示效果计算机与软件学院3.1.4

JSP与数据库JDBC数据库访问机制计算机与软件学院3.1.4

JSP与数据库ResultSet对象的遍历计算机与软件学院3.2前台商品展示页面功能实现优化计算机与软件学院概述CRUD操作提高开发效率,页面简洁,提高代码的可维护性在页面中不使用SQL语句直接操作数据,而将数据库连接和操作功能独立实现对页面功能的优化3.2前台商品展示页面功能实现优化计算机与软件学院优化设计设计类DBConnection封装与数据库的连接。设计类ProductDao封装与数据库商品信息表的操作,查询结果用java实用类链表返回。设计类ProductEntity代表商品实体,类的成员变量与数据库中商品信息表字段相对应,成员方法设计对各成员变量的getXxx()和setXxx()方法。3.2前台商品展示页面功能实现优化计算机与软件学院/*定义数据库链接类*/创建类DBConnectionpackage

cn.estore.util;/*定义数据库链接类*/import

java.sql.*;public

class

DBConnection

{/*加载数据库驱动*/private

String

dbDriver

=

"com.mysql.cj.jdbc.Driver

";/*指定数据库连接字符串*/private

String

url

=

"jdbc:mysql://localhost:3306/estoredbs?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";public

Connection

connection

=

null;public

DBConnection()

{try

{••Class.forName(dbDriver).newInstance();

//加载数据库驱动

connection=DriverManager.getConnection(url,"root","12345njcit");}catch

(Exception

ex)

{System.out.println("数据库加载失败");}}}3.2前台商品展示页面功能实现优化计算机与软件学院创建类ProductDao(数据库商品信息表操作类)创建类ProductEntity(代表商品实体的类)修改前台商品展示页面main.jsp3.3网站前台页面风格页面风格统一一个大型的Web最好使用一致的外观风格,如

Tomcat技术文档的页面。常用方法:利用<table>划分为几个区域插入一个HTML\JSP计算机与软件学院3.3网站前台页面风格计算机与软件学院<html><body><table

border="0"

width="95%"><tr><td

colspan="2"><!--此处插入Banner的内容--></td></tr><tr><td

width="30%"><!--此处插入菜单选择的的内容--></td><td

width="70%"><!—此处插入查询结果内容--></td></tr><tr><td

colspan="2"><!--此处插入版权信息等的内容--></td></tr></table></body></html>页面风格统一实现上述框架的代码3.3网站前台页面风格设计与实现计算机与软件学院在JSP页面内包含其他JSP内容的方法有两种:使用JSP指令中的指令@include替换<!--此处插入

Banner的内容-->:<%@

include

file="include/Banner.html"%>使用JSP动作中的动作<jsp:include>替换<!--此处插入菜单选择的内容-->:<jsp:include

page="include/Left.jsp"%>3.3.3

JSP的include指令和include动作计算机与软件学院include指令JSP编译时在<%@include%>出现的地方插入文件。这个包含的过程是静态的,编译时就能确定包含文件的内容。包含的文件可以是HTML文件、文本文件或

JSP文件等。如果包含文件被改变,包含此文件的JSP文件也需要重新编译,才能反映修改效果。3.3.3

JSP的include指令和include动作计算机与软件学院<jsp:include>动作

–包含文件:

静态。仅仅把包含文件的内容,与include指令包含静态文件的效果一样。动态。包含文件被JSP引擎单独编译执行,由<jsp:include>动作请求执行,并将传送回来一个响应输出到<jsp:include>动作所在的位置。当这个包含文件执行完毕后,JSP引擎继续执行原JSP文件余下的部分。3.4新品及特价商品展示计算机与软件学院功能说明需求:价格有折扣--特价商品,否则为新品。商品展示的风格与main.jsp保持一致,并在页面上实现分页效果。数据库设计是否打折discount、商品现价sell_price两个字段。

discount初始值设定为“0”。当商品被设置为特价商品时,discount值设定为“1”,同时设置商品的现价

sell_price,并在前台特价商品展示页面中出现。3.4新品及特价商品展示计算机与软件学院数据库访问设计–对数据库商品信息表操作类ProductDao进行修改,在ProductDao.java中添加方法selectProductDiscount,根据方法的参数查询新品或特价商品,参数为“0”查询新品,参数为“1”则查询特价商品,方法的返回值为新品或特价商品的链表。3.4新品及特价商品展示计算机与软件学院分页主要有两种思路:“指针分页”适合数据量和并发量不是很高的应用系统,不适合海量的数据查询。“主键分页”适合海量的数据查询,看多少取多少,需要主键来配合使用。3.4新品及特价商品展示计算机与软件学院分页显示实现步骤取得originalList对象中的商品总数,存放到页面变量

pageNumber中,并将此值作为总页数的初始值,后根据每页显示商品的数量在做修改:int

pageNumber=originalList.size();//计算出记录总int

maxPage=pageNumber;//计算有多少页数初始化一些必要参数,其中request.getParameter(“pageNum”)是使用request内置对象的getParameter方法获取参数名为pageNum的请求参数值,在这里是用户要显示的页码。3.4新品及特价商品展示计算机与软件学院<%for

(int

i

=

start;

i

<

over;

i++)

{GoodsEntity

originalGoods

=

(GoodsEntity)

originalList.get(i);%>显示分页导航<tr

align="center">实现页面显示页码总数、记录总数和当前页码数:共为<%=maxPage%>页

</td>共有<%=pageNumber%>条记录

</td>当前为第<%=number

+

1%>页

</td><td

width="13%"><td

width="18%"><td

width="26%"><td

width="15%"><%

if((number+1)==1){

//目前显示的是第1页%>上一页

<%

}else{

//目前显示的不是第1页

%>3.4.4

JSP内置对象request和responserequest对象九种内置对象之一,javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest类的子类对象。封装了用户的信息计算机与软件学院3.4.4

JSP内置对象request和response计算机与软件学院response对象response对象包含了服务器对客户的请求做出动态的响应,向客户端发送数据。和request一样,response对象也由JSP引擎(容器)产生,可以使用response对象提高的方法对响应进行操作。3.4.4

JSP内置对象request和response计算机与软件学院response对象的主要方法void

setContentType(string

contentType):设置响应MIME(媒体)类型。void

setstatus(int

sc):设定响应状态码。3.4.4

JSP内置对象request和responseresponse对象的主要方法–void

sendRedirect(String

localtion):重新定向客户端的请求。计算机与软件学院3.4.4

JSP内置对象request和response计算机与软件学院response对象的主要方法 设置CookieVoid

addCookie(Cookie

c):将cookie加到

response对象上,发送到客户端保存。Cookie是Web服务器保存在用户硬盘上的一段文本。

Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。产生新的Cookie对象如下:Cookie

c=new

Cookie

("username","john");当cookie对象产生以后,JSP中如果要将封装好的

Cookie对象传送到客户端,使用response的addCookie()方法:response.addCookie(c);3.4.4

JSP内置对象request和response计算机与软件学院如果JSP读取保存到客户端的Cookie,可以使用request对象的getCookies()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。例:cookie!=null) //请求中包含有cookiesfor(int

i=0;i<cookie.length;i++){if("username".equals(cookie[i].getName()))

out.println(cookie[i].getName()+":"+cookie[i].getValue());}3.5商品检索计算机与软件学院流程分析与设计搜索内容的提交页面frameLeft.jsp,表单元素searchForm搜索结果显示页面goodsShowSearch.jsp3.5商品检索计算机与软件学院编程详解在ProductDao类中,添加按商品名称查询方法public

List

selectProductsSearch(String

search)。在页面frameLeft.jsp中,添加搜索条件提交表单,并提交给页面findProductsByName.jsp处理。页面findProductsByName.jsp先从页面请求参数search中获取要查询的商品名称,然后以此作方法参数调用数据库商品信息表操作类ProdcutDao的selectProductsSearch方法。4、编写findProductsByName.jsp页面。3.5.4表单提交与中文处理计算机与软件学院HTTP方法页面表单提交GET和POST方法是常用的HTTP方法,除此之外还有OPTIONS、HEAD、PUT、DELETE、TRACE等方法。根据HTTP规范,GET一般用于获取/查询资源信息,而POST可能修改服务器上的资源。形式上,GET请求的数据会附在URL之后,以?分割

URL和传输数据,参数之间以&相连,POST把提交的数据则放置在是HTTP包的BODY中。3.5.4表单提交与中文处理计算机与软件学院中文乱码处理√如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决方法:request.setCharacterEncoding(“GBK”)或(“utf-8”)。√如果出现了中文乱码问题,则可以在页面代码中设置response.setContentType(“text/html;charset=GBK”)或(“text/html;charset=utf-8”)。第3章前台商品展示模块计算机与软件学院思考题1、试阐如何通过JDBC驱动程序来访问数据库并叙述其步骤。2、请说出<%@pageinclude%>与<jsp:include>的异同点。3、描述JSP的request和response内置对象及其作用。4、比较HTTP的GET方法和POST方法的特点和适用场合。Java

Web应用开发第4章前台用户模块计算机与软件学院本章要点用户登录模块功能的详细设计和具体实现会话机制及JSP隐含对象session用户密码找回功能详细设计和具体实现前台会员注册功能详细设计和具体实现请求转发及JSP的forward动作JavaBean前台会员信息修改功能详细设计和具体实现4.1用户登录模块设计与实现功能说明用户登录模块实现用户的登录,由系统验证用户的合法性自动保存会员信息并在页面上显示允许会员进行购买商品、修改会员信息、查看购物车、订单等操作登录界面计算机与软件学院4.1用户登录模块设计与实现流程分析与设计数据表的概念设计会员信息实体计算机与软件学院4.1用户登录模块设计与实现流程分析与设计_会员信息表计算机与软件学院4.1用户登录模块设计与实现计算机与软件学院流程分析与设计数据库会员实体类设计设计数据库会员实体类CustomerEntity,使用该类的

getXxx方法和setXxx方法存取数据数据库会员表操作类设计设计CustomerDao数据库操作类从页面分离对数据库的访问,负责对会员表的访问。创建CustomerDao类并添加相应数据库查询的方法

selectCustomerEntity,方法参数是待验证的会员名4.1用户登录模块设计与实现流程分析与设计功能实现流程设计计算机与软件学院4.1用户登录模块设计与实现计算机与软件学院流程分析与设计编程详解修改left.jsp,添加访问登陆login.jsp页面入口。设计login.jsp中表单,提交userLoginResult.jsp。在页面login.jsp设计客户端验证表单,表单验证多采用Javascript来实现,页面的代码由浏览器负责执行,由一对<script></script>标签包围。创建页面userLoginResult.jsp,在页面中引入类

Customer

Entity和类CustomerDao,并生成各自的对象;使用request对象的getParameter方法获取参数

name的值,调用类CustomerDao对象的方法查询数据库,方法名selectCustomerEntity,进行服务器端验证。4.1用户登录模块设计与实现流程分析与设计编程详解–判断方法selectCustmoerEntity的返回值,如果是空或密码不对,提示出错信息,页面回退。计算机与软件学院4.1用户登录模块设计与实现计算机与软件学院流程分析与设计编程详解登录验证正确,会员信息存于CustmoerEntity类对象中作用范围?如何保存?会员登录成功后,页面跳转到首页<scriptlanguage="javascript">

window.location.hre/pages/product/main.jsp’;

</script>在Javascript中通过设置window.location.href=URL可以实现页面的跳转。4.1用户登录模块设计与实现计算机与软件学院会话机制_SessionHTTP协议是无状态协议网站的应用程序应当通过某种办法来维护同一个用户访问的数据会话机制4.1用户登录模块设计与实现计算机与软件学院Session对象的常用方法publicStringgetId():返回session创建时JSP引擎为它设的惟一ID号,每个session的ID是不用的。public

void

setAttribute(String

key,Object

obj):将参数Object指定的对象obj添加到session对象中,并为添加的对象属性指定一个索引关键字。public

Object

getAttribute(String

key):获取session对象中含有关键字的属性对象。public

Boolean

isNew():判断session对象是否是一个新建的session对象4.1用户登录模块设计与实现计算机与软件学院Session实例<%@

page

contentType="text/html;charset=gb2312"%><%@

page

import="java.util.*"

%><html><head><title>session对象_例1</title><head><body><br>session的创建时间:<%=session.getCreationTime()%><%=new

Date(session.getCreationTime())%><br><br>session的Id号:<%=session.getId()%><br><br>客户端最近一次请求时间:<%=session.getLastAccessedTime()%><%=new

java.sql.Time(session.getLastAccessedTime())%><br><br>两次请求间隔多长时间此SESSION被取消(ms):4.1用户登录模块设计与实现计算机与软件学院Session实例<%=session.getMaxInactiveInterval()%><br><br>是否是新创建的一个SESSION:<%=session.isNew()?"是":"否"%><br><br><%

for(int

i=0;i<session.getValueNames().length;i++)

out.println(session.getValueNames()[i]+"="+session.getValue(sessiongetValueNames()[i]));%><!--返回的是从格林威治时间(GMT)1970年01月01日0:00:00起到计算当时的毫秒数--></body></html>4.1用户登录模块设计与实现第一次访问结果计算机与软件学院4.1用户登录模块设计与实现再次访问结果计算机与软件学院4.2用户密码找回设计与实现功能说明在会员登录页面上设有“找回密码”的链接根据页面提示,逐步填写会员重新设定密码,完成找回密码的操作计算机与软件学院4.2用户密码找回设计与实现流程分析与设计

数据库设计在会员信息表中设计有字段找回密码问题、找回密码问题答案两个字段计算机与软件学院4.2用户密码找回设计与实现计算机与软件学院流程分析与设计

数据库访问设计通过添加selectFind和updatePassword方法在类

CustmoerDao中实现查询和更改密码的操作,selectFind方法使用会员名称与会员找回密码答案作为参数updatePassword方法使用会员的新密码替换原来的密码,实现密码的找回,方法返回修改成功与否4.2用户密码找回设计与实现会员密码找回功能流程图计算机与软件学院4.2用户密码找回设计与实现计算机与软件学院流程分析与设计_编程详解在frameLeft.jsp中添加找回密码的链接。

创建userPasswordFind1.jsp,设计提交表单,提交到页面userPasswordFind2.jsp中,提交之前使用Javascript函数checkEmpty(form)进行合法性验证。

创建userPasswordFind2.jsp,使用

selectCustmoerEntity方法查询数据库,查询结果存放在页面对象user中。4.2用户密码找回设计与实现计算机与软件学院流程分析与设计_编程详解判断user是否为空,如果为空,表示该会员不存在创建userPasswordFind3.jsp,使用DAO类的selectFind方法查询数据库,查询结果存放在页面对象user中判断user是否为空,如果为空,表示该会员输入的答案不正确,但在返回时需要带入name变量做请求参数创建userPasswordFind4.jsp,在页面中引入数据库会员信息表操作类,使用操作类的updatePassword方法修改数据库4.3前台会员注册设计与实现功能说明(Ajax)前台会员注册模块提供注册功能,会员填写必要信息后成为E-Store电子商城的会员,只有注册会员才可以进行购物及相关操作,非注册会员只能浏览商品资料。前台会员注册页面预览如下图所示。计算机与软件学院4.3前台会员注册设计与实现会员注册功能流程图计算机与软件学院4.3前台会员注册设计与实现计算机与软件学院流程分析与设计_编程详解在login.jsp中提供功能入口链接<a

href="/estore/pages/customer/userRegisterAjax/userRegister.jsp">注册</a>;创建userRegister.jsp,页面设计提交表单创建User.jsp,该页面实现实际数据库操作,并不生成返回浏览器的页面。数据库操作结果由JSP隐含对象

request的属性将请求转发到userRegisterResult.jsp显示。<jsp:forward

page="userRegisterResult.jsp"></jsp:forward>4.3前台会员注册设计与实现计算机与软件学院流程分析与设计_<jsp:forward>动作<jsp:forward>动作将客户端所发出来的请求,从一个JSP页面转发给另一个JSP页面,转发的请求中包含用户请求的request对象。forward动作将会引起Web服务器的请求目标转发。4.3前台会员注册设计与实现计算机与软件学院流程分析与设计_<jsp:forward>动作forward动作的语法如下:<jsp:forward

page={"relativeURL"

|

"<%=

expression%>"}

/>或<jsp:forward

page={"relativeURL"

|

"<%=

expression%>"}

><jsp:param

name="parameterName"value="{parameterValue

|

<%=

expression

%>}"

/>…</jsp:forward>4.3前台会员注册设计与实现<jsp:forward>动作实现请求转发计算机与软件学院4.3前台会员注册设计与实现计算机与软件学院流程分析与设计

编程详解4)实现页面userRegisterResult.jsp,用于处理转发来的请求,生成相应结果,并向客户端返回处理的结果。4.3前台会员注册设计与实现计算机与软件学院JavaBean

JavaBean是一个使用Java编写的可以重复利用、跨平台的软件组件。JavaBean是一种Java类,是可以通过封装成为具有某种功能或者处理某个业务的对象。

一般来说,JavaBean可以是简单的图形界面(GUI)组件,如按钮、菜单等等,也可以编写一些不可见的

JavaBean,在运行时刻不需要任何可视的界面。在JSP程序中,所用的JavaBean通常是不可见的。4.3前台会员注册设计与实现计算机与软件学院JavaBeanJavaBean类从形式上与一般的Java类差别不大,但需满足一下条件:JavaBean类必须有一个无参构造函数(默认)。封装到访问器中的字段称为属性,而getXxx、getXxx方法称为访问器。在JSP中使用一个JavaBean之前,要先定义一个合法的

JavaBean类。该类所有的字段只能通过访问器访问4.3前台会员注册设计与实现计算机与软件学院JavaBean属性

JavaBean属性用于描述JavaBean的状态,JavaBean运行时通过getXxx和setXxx方法来改变其属性。属性分成以下几类简单属性索引属性绑定属性约束属性其中简单属性和索引属性比较常用4.3前台会员注册设计与实现计算机与软件学院JavaBean属性1)简单(Simple)属性一个Simple类型的属性表示一个伴随有一对getXxx()、setXxx()方法的变量。属性的名称与和该属性相关的getXxx()、setXxx()方法相对应。如以下代码定义了一个名为Attr的属性:private

String

attr="Hello

World,JavaBean";public

String

getAttr()

{return

attr;}public

void

setAttr(String

attr)

{this.attr

=

attr;}4.3前台会员注册设计与实现计算机与软件学院2)索引(Indexed)属性一个Indexed类型的JavaBean属性表示一个数组值。使用与该属性相对应的setXxx()方法和getXxx()方法可以存取数组中某个元素的数值。同时,也可以使用另两个同名方法一次设置或取得整个数组的值(即属性的值)。如:private

int[

]

dataSet={1,2,3,4,5,6};public

void

setDataSet(int[

]

x){dataSet=x;}public

int[

]

getDataSet()

{return

dataSet;}public

void

setDataSet(int

index,

int

x){dataSet[index]=x;}public

int

getDataSet(int

index){return

dataSet[index];}4.3前台会员注册设计与实现计算机与软件学院JavaBean的应用

JavaBean可以在JSP程序中应用。增加了代码的重用率和系统的安全性。在JSP页面中使用JavaBean的三个动作元素<jsp:useBean><jsp:setProperty><jsp:getProperty>4.3前台会员注册设计与实现计算机与软件学院实例化JavaBean<jsp:useBean>用于实例化一个JavaBean组件,语法如下:<jsp:useBean

id="name"scope="page|request|session|application"

class="className"/>id:设定JavaBean的名称scope属性用于指定JavaBean实例对象的生命周期,即其有效作用范围。scope的值可能是page、request、session以及applicationclass:JavaBean对应类名,如

com.mycompany.entity.UserEntity4.3前台会员注册设计与实现计算机与软件学院存取JavaBean的属性<jsp:setProperty>和<jsp:getProperty>实现属性的存取<jsp:setProperty>语法:<jsp:setProperty

name="Name"property="propertyName"value="string"

/>name用来指定JavaBean的名称(id属性)property属性被用来指定JavaBean需要设置属性的名称value属性是要赋给JavaBean由property指定名称的属性的值4.3前台会员注册设计与实现计算机与软件学院JavaBean的应用

JavaBean的Scope属性 使得JavaBean组件对于不同的功能需求,具有不同的生命周期和不同的使用范围。ApplicationSessionRequestpage4.4前台会员信息修改设计与实现功能说明注册会员未登录不能修改信息

在修改页面显示该会员目前的信息,并提供可供修改信息的输入计算机与软件学院4.4前台会员信息修改设计与实现计算机与软件学院流程分析与设计_数据库操作设计对于会员信息修改操作,只需在数据库会员信息操作类CustomerDao中添加updateCustomer方法。方法以会员信息实体类对象为参数,修改会员信息,返回

boolean类型操作结果。4.4前台会员信息修改设计与实现会员信息修改功能流程图计算机与软件学院4.4前台会员信息修改设计与实现计算机与软件学院流程分析与设计_编程详解1)修改head.jsp,添加会员修改菜单。判断session对象存有否,来判断是否登录。<%String

userlink="userLoginPlease.jsp";UserEntity

user=null;if(session.getAttribute(“user”)!=null){//user是会员登录后存放在session对象上的属性名user=(UserEntity)session.getAttribute("user");userlink="userUpdate.jsp?name="+user.getName();}%>4.4前台会员信息修改设计与实现计算机与软件学院流程分析与设计_编程详解2)修改head.jsp,添加“会员修改”链接。<td

width="100"onmouseover="this.style.backgroundImage="url(image/topMenu.jpg)""onmo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论