版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb程序设计与项目实践注:因内容过长上传受限制,本文档只显示部分内容,完整版文档请下载此文档后留言谢谢。目录\h第1章Java动态网站开发概述\h1.1Web运行机制\h1.1.1Web消息生命周期\h1.1.2URL简介\h1.1.3HTTP协议\h1.1.4HTML静态网页语言\h1.2从静态到动态的转变\h1.2.1开发静态网站和应用\h1.2.2用户和浏览器的动态交互\h1.2.3用户和服务器的动态交互\h1.2.4Web2.0时代的人机交互\h1.3使用Java开发动态网站——J2EE技术\h1.3.1Java开发动态网站的优势\h1.3.2J2EE架构技术选择\h1.4J2EE开发中的编程思想\h1.4.1面向对象编程\h1.4.2面向关系编程\h1.4.3面向切面编程\h1.5疑难解答\h第2章开发工具的选择和开发环境搭建\h2.1开发工具的选择\h2.1.1浏览器\h2.1.2Web服务器\h2.1.3数据库管理系统\h2.2下载和安装JDK6\h2.2.1下载JDK6\h2.2.2安装JDK6\h2.2.3配置环境变量\h2.3下载和安装Tomcat6.0服务器\h2.3.1下载Tomcat\h2.3.2安装Tomcat\h2.3.3配置虚拟目录\h2.4下载和安装MySQL数据库\h2.4.1下载MySQL数据库\h2.4.2安装MySQL\h2.5下载和安装MyEclipse6.5集成开发工具\h2.5.1下载MyEclipse6.5集成开发工具\h2.5.2安装MyEclipse\h2.6配置MyEclipse6.5集成开发工具\h2.6.1集成配置JRE\h2.6.2集成配置Tomcat\h2.6.3集成配置MySQL\h2.7开发一个JavaWeb程序\h2.7.1使用MyEclipse新建Web项目\h2.7.2MyEclipse中新建JSP页面\h2.7.3MyEclipse部署项目\h2.8疑难解答\h第3章应用JSP技术开发动态网站\h3.1开发一个JSP程序\h3.1.1编写JSP代码\h3.1.2JSP代码解析\h3.1.3JSP运行机制\h3.2JSP基本语法\h3.2.1注释\h3.2.2JSP脚本元素\h3.2.3JSP指令元素\h3.3JSP动作指令\h3.3.1页面包含操作include\h3.3.2请求转发操作forward\h3.3.3参数传递操作param\h3.4JSP主要内置对象\h3.4.1request请求对象\h3.4.2response响应对象\h3.4.3session会话对象\h3.4.4application应用服务对象\h3.4.5pageContext页面上下文对象\h3.5JSTL标签库\h3.5.1EL表达式\h3.5.2核心标签库\h3.5.3格式化标签库\h3.5.4函数标签库\h实训3.1——开发一个用户登录模块\h3.6疑难解答\h3.7上机题\h第4章JavaBean在JSP程序中的应用\h4.1JavaBean简介\h4.2定义JavaBean\h4.3在JSP中使用JavaBean\h4.3.1调用JavaBean\h4.3.2设置JavaBean属性\h4.3.3获取JavaBean属性\h4.4JavaBean范围\h4.5移除JavaBean\h4.6使用JavaBean封装JDBC操作\h4.6.1数据库和数据库表\h4.6.2公共数据库访问连接类的开发\h4.6.3DAO接口\h4.6.4DAO实现类\h4.6.5DAO工厂类\h实训4.1——用JSP+JavaBean开发购物车模块\h4.7疑难解答\h4.8上机题\h第5章Servlet技术\h5.1什么是Servlet\h5.2Servlet开发\h5.2.1开发一个Servlet程序\h5.2.2Servlet生命周期\h5.2.3HttpServlet常用方法\h5.3Filter过滤器开发\h5.3.1过滤器简介\h5.3.2实现一个过滤器\h5.3.3Filter生命周期\h5.3.4IP地址过滤器\h5.4Listener监听器开发\h5.4.1监听器简介\h5.4.2Servlet上下文监听器\h5.4.3Http会话监听器和客户端请求监听器\h实训5.1——显示在线人员列表\h5.5疑难解答\h5.6上机题\h第6章AJAX+JSP+Servlet整合开发\h6.1AJAX简介\h6.2传统开发模式与AJAX开发模式\h6.2.1传统Web开发模式\h6.2.2AJAX开发模式\h6.3AJAX核心技术\h6.3.1JavaScript脚本语言\h6.3.2XMLHttpRequest对象\h6.3.3DOM文档对象模型\h6.3.4XML/JSON数据表示技术\h6.4AJAX开发过程\h6.4.1创建XMLHttpRequest对象\h6.4.2定义响应事件处理函数\h6.4.3发送HTTP请求\h实训6.1——AJAX实现电子相册\h6.5疑难解答\h6.6上机题\h第7章用Struts2编写一个程序\h7.1Struts2框架\h7.1.1Model1架构模式\h7.1.2Model2架构模式\h7.1.3常用的MVC框架\h7.1.4Struts2框架简介\h7.2搭建Struts2开发环境\h7.2.1下载并安装Struts2框架\h7.2.2配置web.xml\h7.2.3配置struts.xml\h实训7.1——基于Struts2的用户注册模块实现\h7.3疑难解答\h7.4上机题\h第8章Struts2类型转换和输入校验\h8.1Struts2类型转换基础\h8.1.1类型转换的意义\h8.1.2内建类型转换器简介\h8.1.3基本数据类型转换器\h8.1.4基本数据类型的封装类转换器\h8.1.5数组类型转换器\h8.1.6集合类型转换器\h8.1.7日期类型转换器\h8.2自定义类型转换器\h8.2.1实现自定义类型转换器\h8.2.2使用Struts2提供的StrutsTypeConverter\h8.2.3注册局部类型转换器\h8.2.4注册全局类型转换器\h8.2.5类型转换执行流程\h8.2.6类型转换中错误处理\h8.2.7输出指定的错误信息\h8.3Struts2输入校验\h8.3.1输入校验的重要性\h8.3.2通过实现validate方法完成输入校验\h8.3.3保存表单提交信息\h8.3.4使用addFieldError添加错误信息\h8.3.5Struts2输入校验流程\h8.4Struts2校验框架\h8.4.1使用校验框架的好处\h8.4.2编写校验规则文件\h8.4.3校验器配置风格\h8.4.4内建校验器注册文件\h8.4.5常用的内建校验器\h实训8.1——联系人添加模块的实现\h8.5疑难解答\h8.6上机题\h第9章Struts2拦截器\h9.1拦截器介绍以及实现原理\h9.1.1拦截器简介\h9.1.2拦截器实现原理\h9.2自定义拦截器\h9.2.1通过Interceptor接口实现拦截器\h9.2.2通过AbstractInterceptor类实现拦截器\h9.2.3配置拦截器\h9.2.4使用拦截器\h9.2.5使用默认拦截器\h9.3深入了解拦截器\h9.3.1为拦截器传入参数\h9.3.2配置拦截器栈\h9.3.3覆盖拦截器栈中指定拦截器的参数\h9.3.4拦截器执行顺序\h9.4Struts2内建拦截器\h9.4.1内建拦截器介绍\h9.4.2内建拦截器的配置\h实训9.1——通过拦截器实现用户权限控制\h9.5疑难解答\h9.6上机题\h第10章国际化和文件上传\h10.1JSP页面国际化\h10.1.1加载全局资源文件完成国际化\h10.1.2临时指定资源文件完成国际化\h10.1.3为资源文件传递参数\h10.1.4资源文件加载顺序\h10.2Action国际化\h10.2.1加载全局资源文件完成国际化\h10.2.2加载包范围资源文件完成国际化\h10.2.3加载Action范围资源文件完成国际化\h10.2.4资源文件加载顺序\h实训10.1——实现用户自行选择语言环境站点\h10.3基于Struts2完成文件上传\h10.3.1下载并安装Common-FileUpload框架\h10.3.2配置上传解析器\h10.3.3实现文件上传控制器\h10.3.4完成文件上传\h10.4文件上传高级配置\h10.4.1动态设置文件上传目录\h10.4.2限制上传文件大小和类型\h10.4.3自定义上传错误提示信息\h实训10.2——多文件上传\h10.5疑难解答\h10.6上机题\h第11章Struts2标签库\h11.1Struts2标签库概述\h11.1.1Struts2标签库的组成\h11.1.2Struts2标签库的使用\h11.2控制标签\h11.2.1if/elseif/else标签\h11.2.2iterator标签\h11.2.3append标签\h11.2.4merge标签\h11.2.5generator标签\h11.2.6subset标签\h11.2.7sort标签\h11.3数据标签\h11.3.1action标签\h11.3.2bean标签\h11.3.3date标签\h11.3.4debug标签\h11.3.5include标签\h11.3.6param标签\h11.3.7property标签\h11.3.8push标签\h11.3.9set标签\h11.3.10url标签\h11.4表单标签\h11.4.1简单表单标签\h11.4.2checkboxlist标签\h11.4.3combobox标签\h11.4.4datetimepicker标签\h11.4.5doubleselect标签\h实训11.1——分页显示商品列表\h11.5疑难解答\h11.6上机题\h第12章编写一个Hibernate程序\h12.1Hibernate概述\h12.1.1什么是ORM\h12.1.2为什么要使用ORM\h12.1.3使用Hibernate框架的优势\h12.2为项目添加Hibernate支持\h12.2.1下载和安装Hibernate\h12.2.2MyEclipse对Hibernate3的支持\h12.3Hibernate开发入门\h12.3.1开发Hibernate程序的基本步骤\h12.3.2创建数据库表\h12.3.3创建Hibernate配置文件\h12.3.4创建会话工厂类\h12.3.5创建实体类\h12.3.6创建对象关系映射文件\h12.3.7完成插入数据\h实训12.1——使用Hibernate查询学生列表\h12.4疑难解答\h12.5上机题\h第13章Hibernate配置和会话\h13.1配置Hibernate\h13.1.1使用XML文件配置Hibernate\h13.1.2使用资源文件配置Hibernate\h13.1.3代码动态配置Hibernate\h13.2配置映射文件\h13.2.1<hibernate-mapping>元素\h13.2.2<class>元素\h13.2.3<id>元素\h13.2.4<property>元素\h13.2.5其他元素\h13.3使用Annotations配置映射\h13.3.1使用@Entity注释实体类\h13.3.2使用@Table注释实体类\h13.3.3使用@Id注释实体类标识\h13.3.4使用@GenerateValue注释覆盖标识的默认访问策略\h13.3.5使用@GenericGenerator注释生成标识生成器\h13.3.6使用@Column注释实体类非标识属性\h13.3.7自定义AnnotationSessionFactory类来获得Session对象\h13.3.8测试Annotations注释是否成功完成映射\h13.4会话(Session)的应用\h13.4.1Hibernate对象状态\h13.4.2使用save方法持久化对象\h13.4.3使用saveOrUpdate方法持久化对象\h13.4.4使用load方法装载对象\h13.4.5使用get方法装载对象\h13.4.6使用refresh方法刷新对象\h13.4.7使用setFlushMode方法设置更新模式\h13.4.8使用isDirty方法判断数据是否一致\h13.4.9使用delete方法删除记录\h实训13.1——模拟商场VIP系统\h13.5疑难解答\h13.6上机题\h第14章Hibernate高级映射和数据检索\h14.1关联关系映射\h14.1.1多对一关系映射\h14.1.2基于多对一关系映射的演示\h14.1.3一对多关系映射\h14.1.4基于一对多关系映射的演示\h14.1.5一对一关系映射\h14.1.6基于一对一关系映射的演示\h14.2标准查询API\h14.2.1查询所有记录\h14.2.2设置最大记录数\h14.2.3按条件查询\h14.2.4使用通配符完成模糊查询\h14.2.5使用MatchMode完成模糊查询\h14.2.6对查询结果进行排序\h14.3HQL基础查询\h14.3.1使用HQL查询所有记录\h14.3.2使用Select子句返回指定属性信息\h14.3.3使用as关键字给实体类起一个别名\h14.3.4使用Where子句指定查询条件\h14.3.5指定查询参数来完成查询\h14.3.6指定查询起始位置和查询最大记录数\h14.4HQL高级查询\h14.4.1使用HQL对查询结果进行排序\h14.4.2使用HQL对查询结果进行分组\h14.4.3使用HQL执行数据库内置函数\h实训14.1——模拟人才市场查询系统\h14.5疑难解答\h14.6上机题\h第15章编写一个Spring程序\h15.1Spring概述\h15.1.1为什么使用Spring\h15.1.2Spring技术介绍\h15.2Spring开发环境的搭建\h15.2.1手动搭建\h15.2.2使用MyEclipse自动搭建\h15.3开发Spring的HelloWorld程序\h15.3.1开发Spring程序的步骤\h15.3.2编写业务接口\h15.3.3编写业务实现类\h15.3.4配置业务实现类\h15.3.5编写客户端程序进行测试\h实训15.1——Spring在公司管理系统中的应用\h15.4疑难解答\h15.5上机题\h第16章控制反转\h16.1IoC容器\h16.1.1Bean工厂接口\h16.1.2实例化容器\h16.1.3多配置文件的使用\h16.1.4配置Bean\h16.1.5使用容器实例化Bean\h16.1.6容器常用方法\h16.2依赖注入\h16.2.1Setter方法注入\h16.2.2构造函数注入\h16.2.3注入其他Bean\h16.2.4内部Bean\h16.2.5注入集合\h16.2.6空字符串和null值的处理\h16.2.7依赖注入的简写形式\h16.2.8不完全依赖\h16.2.9自动装配\h16.3Bean作用域\h16.3.1Singleton作用域\h16.3.2Prototype作用域\h16.3.3Request作用域\h16.3.4Session作用域\h16.3.5globalsession作用域\h16.3.6自定义作用域\h实训16.1——依赖注入在图书馆查书模块中的使用\h16.4疑难解答\h16.5上机题\h第17章面向切面编程\h17.1面向切面编程简介\h17.1.1面向切面编程概念\h17.1.2面向切面编程的功能\h17.2使用注解方式进行AOP开发\h17.2.1启动AspectJ的支持\h17.2.2声明切面\h17.2.3声明切入点\h17.2.4声明通知\h实训17.1——使用注解对数据访问层进行管理\h17.3切入点\h17.3.1切入点指定者\h17.3.2合并切入点\h17.3.3切入点表达式\h17.4通知\h17.4.1返回后通知\h17.4.2出错后通知\h17.4.3后通知\h17.4.4环绕通知\h17.4.5通知顺序\h17.5使用配置方式进行AOP开发\h17.5.1配置声明切面\h17.5.2配置声明切入点\h17.5.3配置声明通知\h实训17.2——使用配置方式释放数据访问资源\h17.6面向切面编程API介绍\h17.6.1处理切入点\h17.6.2处理通知\h17.6.3使用AOP的工厂Bean\h17.7在Spring中进行JDBC编程\h17.7.1Spring中的数据库操作封装类\h17.7.2数据源接口\h17.7.3执行SQL语句\h17.7.4更新数据库操作\h17.7.5查询数据库操作\h17.8疑难解答\h17.9上机题\h第18章框架技术整合开发\h18.1Struts2和Hibernate整合开发\h18.1.1整合策略\h18.1.2数据库层开发\h18.1.3持久层开发\h18.1.3数据访问层开发\h18.1.4业务逻辑层开发\h18.1.5完成书籍的录入\h18.1.6完成所有图书的显示\h18.2Struts2和Spring整合开发\h18.2.1整合策略\h18.2.2安装Spring插件完成整合\h18.2.3装配数据访问层\h18.2.4装配业务逻辑层\h18.2.5装配业务控制器\h18.3Hibernate和Spring整合开发\h18.3.1使用Spring管理数据源\h18.3.2使用Spring管理SessionFactory\h18.3.3使用HibernateTemplate类\h18.3.4使用HibernateDaoSupport类\h18.3.5使用编程式的事务管理\h18.3.6使用Spring管理事务管理器\h18.3.7为业务逻辑层注入事务管理器\h18.3.8使用TransactionTemplate进行事务管理\h18.3.9使用声明式的事务管理\h18.3.10使用TransactionProxyFactoryBean生成事务代理\h18.4疑难解答\h18.5上机题\h第19章论坛系统\h19.1系统分析\h19.1.1需求分析\h19.1.2功能分析\h19.2系统设计\h19.2.1绘制用例图设计系统功能\h19.2.2绘制系统流程图\h19.3数据库分析与设计\h19.3.1数据库逻辑结构设计\h19.3.2创建数据库及数据表\h19.4公共类设计\h19.4.1分页信息类\h19.4.2分页辅助类\h19.4.3分页结果类\h19.4.4用户实体类\h19.4.5栏目实体类\h19.4.6子栏目实体类\h19.4.7主题实体类\h19.4.8回复实体类\h19.5用户管理模块\h19.5.1新增用户\h19.5.2浏览用户\h19.5.3删除用户\h19.6栏目管理模块\h19.6.1创建新栏目\h19.6.2查看所有栏目\h19.6.3删除指定栏目\h19.7子栏目管理模块\h19.7.1在栏目下创建子栏目\h19.7.2查询栏目下所有子栏目\h19.7.3删除指定子栏目\h19.8前台功能模块\h19.8.1指向论坛首页\h19.8.2显示子栏目中所有主题\h19.8.3发表新主题\h19.8.4浏览主题\h19.8.5对主题进行回复\h第20章新闻发布系统\h20.1系统分析\h20.1.1需求分析\h20.1.2功能分析\h20.2系统设计\h20.2.1绘制用例图设计系统功能\h20.2.2绘制系统流程图\h20.3数据库分析与设计\h20.3.1数据库逻辑结构设计\h20.3.2创建数据库及数据表\h20.4公共类设计\h20.4.1用户实体类\h20.4.2版面实体类\h20.4.3新闻实体类\h20.5系统用户管理模块\h20.6版面管理模块\h20.6.1创建新版面\h20.6.2查看系统中所有版面\h20.6.3对已有版面进行编辑\h20.6.4删除指定版面\h20.7新闻发布管理模块\h20.7.1发布新闻\h20.7.2浏览所有新闻\h20.7.3删除指定新闻\h20.8前台功能模块\h20.8.1指向系统首页\h20.8.2查看版面下所有新闻\h20.8.3阅读指定新闻\h附录赠送项目案例\h项目01在线音乐网站\h01.1需求分析\h01.2功能分析\h01.3数据库分析与设计\h01.4系统演示\h项目02商场VIP消费查询系统\h02.1需求分析\h02.2功能分析\h02.3数据库分析与设计\h02.4系统演示\h项目03仓库管理系统\h03.1需求分析\h03.2功能分析\h03.3数据库分析与设计\h03.4系统演示\h项目04新闻发布系统\h04.1需求分析\h04.2功能分析\h04.3数据库分析与设计\h04.4系统演示\h项目05个人理财管理系统\h05.1需求分析\h05.2功能分析\h05.3数据库分析与设计\h05.4系统演示\h项目06图书馆管理系统\h06.1需求分析\h06.2功能分析\h06.3数据库分析与设计\h06.4系统演示\h项目07学生信息管理系统\h07.1需求分析\h07.2功能分析\h07.3数据库分析与设计\h07.4系统演示\h项目08航空订票系统\h08.1需求分析\h08.2功能分析\h08.3数据库分析与设计\h08.4系统演示\h项目09网上订餐系统\h09.1需求分析\h09.2功能分析\h09.3数据库分析与设计\h09.4系统演示\h项目010办公自动化系统\h010.1需求分析\h010.2功能分析\h010.3数据库分析与设计\h010.4系统演示\h附录CD页第1章Java动态网站开发概述Web发展至今已经有了近15年的历史,它的出现大大改变了人们的生活方式。人们通过它可以很方便地和自己远方的亲友进行聊天,一起游戏;还可以通过它看新闻、看电影、网上购物等。本章首先介绍Web的运行机制,让读者在进行Web开发前对Web有一个初步的认识。然后介绍Web的发展史,重点讲述从静态网站到动态网站的转变。最后将介绍如果使用Java来开发动态网站,包括J2EE架构技术选择、开发模型等。本章的学习重点:◆Web消息生命周期◆HTML静态网页语言◆Web2.0应用◆J2EE开发模型◆面向对象编程1.1Web运行机制通常我们在访问一个网站之前,首先要输入网站的地址。例如我们要访问新浪网时,需要在浏览器的地址栏输入/。当输入完成后,单击“访问”按钮就能进入新浪网。这到底是怎么实现的呢?下面就来介绍Web消息的生命周期,并简单介绍Web开发的一些基础知识,包括URL、HTTP协议以及HTML静态网页开发语言。1.1.1Web消息生命周期当我们输入网址并单击“访问”按钮后,Web消息的生命周期就开始了。而当我们进入到网站后,Web消息的生命周期就结束了。Web消息的生命周期如图1-1所示。图1-1Web消息的生命周期图Web消息从开始到结束一共经历了如下5个步骤。(1)当我们希望进入一个网页,或者其他网络资源的时候。首先需要在浏览器地址栏输入网页的URL地址,或者通过超链接的方式链接到所需的网页或网络资源。(2)浏览器接受到用户的输入后,就去网站该URL地址所对应的服务器查找资源。但是因为我们输入的URL通常只包含服务器的域名地址,而不是IP地址。这时将通过域名服务器进行解析,然后决定发送给哪个IP地址。(3)在得到IP地址后,就可以向该IP地址所在的服务器发送一个HTTP请求。(4)服务器在接受到请求后,根据请求内容进行查询,最终将HTML、CSS以及其他文件,如图片、链接等发送给客户浏览器。(5)用户浏览器将接受到的HTML、CSS等其他文件组织成一个网页,最终呈现给用户。1.1.2URL简介URL的英文全称为UniformResourceLocator,其中文译名为统一资源定位符,它就是我们常指的网址。和每个人都拥有自己的独一无二的身份证号码一样,网页也需要有自己的“身份证号码”,而这个身份证号码就是URL。正是有了这样一个唯一标识,我们在访问新浪网时不会进入到腾讯的网站。和身份证号码一样,URL地址一样有自己的基本格式。URL由三部分组成,分别为协议类型、主机名和路径及文件名,其一般格式如下:(1)protocol,用来指定协议类型,常用的协议有file、ftp、http以及https。(2)hostname,用来指定主机名,可以是服务器的域名或者IP地址。(3)port,用来指定端口号,各种传输协议都有默认的端口号,比如http的默认端口为80。如果输入时省略,则使用默认端口号。(4)path,用来指定路径或者文件名,由零或多个“/”符号分隔的字符串组成。(5)parameters,用来指定特殊参数,可以不指定。(6)query,用来指定查询参数,给一些动态网页传递参数。参数包含参数名和参数值两部分组成,之间使用“=”分隔,如“page=1”。当有多个参数时,可以使用“&”进行分隔,如“list=1&page=2”。(7)fragment,用来指定描点,查找网页中某一个位置。1.1.3HTTP协议前面我们已经学习了URL的组成,那么HTTP如何进行工作的呢?下面就来对其进行深入了解。HTTP的英文全称为HypertextTransferProtocol,其中文译名为超文本传输协议,是客户端浏览器和Web服务器之间的传输协议。客户端浏览器通过HTTP协议来向服务器发送请求,而服务器通过HTTP协议向用户发送结果页面,如图1-2所示。图1-2客户端和服务器间通过HTTP协议进行传输当在客户浏览器输入一个URL地址,服务器返回一个页面给浏览器,这个称为一次HTTP操作。HTTP操作一般分为如下4个部分。(1)客户端和服务器端建立连接,HTTP开始工作。(2)建立连接后,客户端发送一个请求给服务器,请求内容包括URL地址、协议版本号以及MIME信息。其中MIME信息中包括请求修饰符、客户端信息等内容。(3)服务器端接收到请求,对请求进行处理后,返回响应消息,包括状态码、协议版本号以及MIME信息。其中MIME信息中包括服务器端信息、实体信息等内容。(4)客户端接收到服务器端响应,在浏览器中显示结果页面,HTTP协议断开,这时客户端将和服务器端失去连接。作者心得:读者如果想了解更多的HTTP协议的内容,可以访问“/zh-cn/HTTP”。1.1.4HTML静态网页语言前面我们介绍了服务器返回给客户端浏览器的是HTML文件,那HTML到底是什么呢?它又是如何转换成网页,从而呈现给用户的呢?HTML的英文全称为HyperTextMark-upLanguage,其中文译名为超文本标记语言。HTML是构成网页文档的最主要的语言,在HTML中包含了大量的标记,不同的标记用来显示不同的内容。HTML包含头部和主体两个部分,其中头部用来描述网页,如网页的开发者、关键字等信息,这些信息不会显示在浏览器窗口中;主体部分是网页的主要部分,主体部分中的代码将被浏览器解析并显示在浏览器窗口中。下面来开发第一个HTML代码,首先需要新建一个文本文件,设置其扩展名为“.htm”或者“.html”。打开该文件,在文件中输入如下代码:编写完成后,将这个文件保存为“firstPage.html”。使用IE浏览器打开该网页,这时将在浏览器窗口中显示该网页的内容,如图1-3所示。图1-3第一个HTML页面从图1-3可以看出,浏览器窗口的标题被设置成了“我的第一个网页”。在浏览器窗口中显示“欢迎光临本站!”的加粗文本。作者心得:读者如果希望学习HTML的更多内容,可以访问“/”。1.2从静态到动态的转变网站在最开始都是使用静态页面来进行开发的,不过随时时间的发展,技术的不断更新,动态网站完全取代了静态网站。而随着Web2.0的诞生,更是将Web应用推向了一个更高的高度。下面就让我们一起来回顾一下Web开发技术的发展历程。1.2.1开发静态网站和应用静态网站就是指整个网站全部由HTML格式文件组成的网站。在静态网站中仅仅能够表现出一些很少的动态效果,例如图片、Flash动画、滚动屏幕等。如图1-4所示的新浪首页,就是一个典型的静态网页。图1-4静态网站所有的静态网页都有如下4个特点:(1)每个静态页面都有自己的独一无二的URL地址,文件名后缀一般为“.html”或者“.htm”;(2)每个静态页面的内容都是固定的,不能动态修改,如要修改只能修改页面文件代码;(3)整个静态网站都不需要使用到数据库,所有的数据都要人工来进行录入和维护;(4)由于不需要使用数据库来查询数据,所有静态页面能够很快地被访问。而且因为静态页面的内容非常稳定,所以很容易被搜索引擎收录。作者心得:目前整个Web网上已经很难找到纯静态网站了,不过目前很多网站都在使用静态化网页技术。即通过程序将动态代码生成一个一个的HTML页面。这样,能够提高网站的访问速度和有利于网站被搜索引擎收录。1.2.2用户和浏览器的动态交互随着Web技术的发展,简单的静态页面已经无法满足人们的需求。JavaScript的出现给网站开发注入了新鲜的“血液”,网站内容变得越来越丰富。浮动的窗口、滚动导航菜单、树型目录菜单、动态校验表单等,应用在越来越多的网站开发中,开启了用户和浏览器动态交互的新时代。当我们注册网易邮箱时,JavaScript就能根据我们输入的不同信息给出不同的提示,如图1-5所示。图1-5动态校验表单当我们在用户名文本框中输入“11”时,在右侧的提示栏中将显示“用户名不能以数字开头”的提示信息。而当我们输入“aa”时,将显示“合法长度为6~18个字符”的提示信息。这就是一种典型的用户和浏览器之间的动态交互。1.2.3用户和服务器的动态交互Web技术的发展永远都比人们的想象要快,当人们还在习惯从服务器查找网络资源时,一种更高级的网站开发技术正慢慢地在互联网中“蔓延”,那就是动态网页开发。这里所指的动态与网页中动态的图片没有任何关系,而是指能够按用户的请求,动态地生成静态页面的一种网页开发技术。动态网站实现的是用户和服务器的动态交互,例如我们要在当当网购买书籍时,可以在“搜索商品”栏中输入要查找的书籍,如“Java”,单击“搜索”按钮后,页面将显示所有的Java书籍,如图1-6所示。图1-6搜索Java书籍如果输入“JavaWeb”,单击“搜索”按钮后,页面将显示所有的JavaWeb书籍,如图1-7所示。图1-7搜索JavaWeb书籍从上可以看出,动态网站能够根据用户不同的请求,生成不同的静态页面,从而让用户看到不同的网页内容。1.2.4Web2.0时代的人机交互Web2.0中特具代表性的技术就是AJAX,通过AJAX能够给用户带来更好的体验。例如,使用百度搜索时,当输入“J”时,将出现一个列表框显示所有与“J”有关的搜索词汇,如图1-8所示。图1-8百度搜索这样,如果用户要搜索“Java”,只要搜索“J”就能找到自己所要查找的内容。AJAX还有一个非常大的特点,就是无刷新页面,这样能够给用户提供连续的体验,而无须长时间等待。例如,谷歌地图搜索就是一个非常好的AJAX应用,如图1-9所示。图1-9谷歌地图假如用户要查看北京市的地图,只需要双击地图上的北京市,就能打开北京市的地图。整个页面是不会进行刷新的,刷新的仅仅是用来显示地图的图片。1.3使用Java开发动态网站——J2EE技术动态网页是指在服务器端运行的,能够根据不同的时间、不同的请求内容返回不同内容的页面。通过动态网页技术开发的网站可以实现更多的功能,如网站注册、网站登录等。常用的动态网页开发技术有ASP、PHP、J2EE、ASP.NET等。本节重点介绍如何使用Java技术来开发动态网页,也就是我们常说的J2EE技术。1.3.1Java开发动态网站的优势目前,Java平台一共有3个版本,分别是用于小型设备嵌入式开发的J2ME版本、用于桌面应用开发的J2SE版本和用于创建服务器端应用程序的J2EE版本。其中J2EE是架于J2SE版本之上的,在学习J2EE之前,读者必须对J2SE的相关知识进行系统学习。J2EE是一种利用Java平台来简化企业解决方案的开发、部署以及管理等的系统结构。通过J2EE来构建动态网站,具有如下几点优势。(1)代码移植性高。使用J2EE编写的代码具有“一次编写,到处运行”的特点。如在Window操作系统下编写的代码,能直接应用到Linux平台中,而无须修改代码。(2)多平台的支持。目前几乎所有的操作系统都支持J2EE。(3)强大的可伸缩性。使用J2EE开发的动态网站可被部署到一个拥有多个处理器的大型机系统上,同样也可以部署到一台个人电脑上。(4)强大的开发工具支持。开发J2EE应用可以使用许多的开发工具,如Eclipse、NetBeans。这些开发工具都可以免费下载到,并且可以在多个操作系统下使用。(5)高效的开发。J2EE允许将一些通用的代码交给中间件服务商来完成,这样开发人员可以集中精力来实现商业逻辑,从而大大地缩短了开发时间。正是因为使用J2EE开发有如此多的优势,所以目前非常多的网站,尤其是企业级的大型项目都是用它来完成站点的构建。1.3.2J2EE架构技术选择J2EE包含了多种核心技术,这些技术是相互作用、互为补充的。通过这些技术的整合能够搭建出一个完善的企业级Web应用。下面就来对一些常用的技术进行简单的描述,并介绍该技术的作用。(1)JSP。是一种动态页面开发技术,通过在传统的HTML页面中插入JSP脚本代码,就可以构成JSP页面。JSP技术一般应用于显示页面,通过JSP脚本代码生成静态页面并最终发送给用户进行显示。(2)JavaBean。JavaBean是为Java语言设计的软件组件模型,具有可重复使用和跨平台的特点。可以通过JavaBean来封装业务逻辑,进行数据库操作等,从而很好地实现业务逻辑和前后台程序的分离。(3)JDBC。是一种用于执行SQL语句的JavaAPI,通过它可以访问多种关系型数据库。(4)Servlet。是一种运行于服务器端的Java应用程序,通过它可以完成数据的交互,应客户请求,还可以用来生成动态的Web页面。Servlet一般作为程序的后台,用来接收用户的请求,并调用相应的业务逻辑代码,最终决定调转到哪个页面。(5)Struts2。是一种轻量级的MVC框架,通过Struts2来进行开发,可以大大减少开发时间,提高开发效率,并降低后期维护时间和精力。(6)Hibernate。是一种轻量级的持久层框架,通过它能够使开发人员从繁琐的SQL语句和复杂的JDBC中解脱出来。(7)Spring。是一种轻量级的框架,通过它可以非侵入式地为组件注入属性。通过Spring框架,可以大大降低系统各层的耦合度,还可以用来整合Struts2和Hibernate,从而简化系统的开发。作者心得:本书将会介绍到上面所列的所有技术,笔者建议初学者从上之下地进行学习。1.4J2EE开发中的编程思想在J2EE体系开发中将用到许多编程思想,如面向对象编程、面向切面编程。编程思想的应用都是跟特点的技术有关,因为J2EE是基于J2SE的,而J2SE最重要的思想就是面向对象编程,所以在J2EE开发中也大量应用了面向对象编程思想。目前主流的数据库都是关系型数据库,所以在操作数据库时,需要使用面向关系编程思想。在Struts2和Spring两个框架中,都大量运用了拦截功能,这时就需要对面向切面编程思想有所了解。1.4.1面向对象编程面向对象编程又称为面向对象程序设计,起源于20世纪60年代的Simula语言,发展至今已经有了近40年的历史。目前主流的编程语言都是面向对象的,比如C++、Java、C#以及Ruby。面向对象中最重要的两个概念就是类和对象,其中对象的创建是以类为基础的,类是对象的模板,而对象是根据类创建起来的,对象是类的实例。那么到底什么是对象呢?当一个物品,具有属性和行为时,那该物品就是一个程序中的对象。其中属性是指对象有哪些形态,行为是指对象具有什么功能。我们以一个叫张三的人为例,年龄、性别、身高等就可以作为他的属性,通过这些属性就可以表示这个人的形态。而人可以吃饭、可以学习,这些都是人的行为。通过人的行为,就可以来完成特定功能。这时我们就可以说这个人是一个对象,如图1-10所示。现实生活中很多东西都可以被看做对象,例如桌子、电脑等。图1-10“张三”对象类是对象的模板,我们通过类来创建对象。例如,对于所有的人的对象来说,他们都具有姓名、年龄、性别等属性,我们就可以定义一个具有这么多属性的类,然后通过这个类来创建对象。当创建张三这个对象时,我们就可以指定他的姓名是“张三”,年龄是“23”;当创建李四对象时,就可以指定他的性名为“李四”,年龄为“30”,如图1-11所示。图1-11类和对象作者心得:本书将大量运用面向对象编程方面的知识,如果读者对这方面不熟悉,建议先学习J2SE有关基础知识。1.4.2面向关系编程目前主流的数据库都是关系型数据库,它通常使用行和列的形式来存储数据。在关系型数据库中,将一些复杂的数据结构归结为简单的二元关系,并以二维表格形式来保存数据,如图1-12所示。图1-12数据库表表格第1行为表头部分,用来指定数据名称,如姓名、性别等。表格第2行至第5行为表格主体部分,用来指定具体的数据。在数据库管理系统中,要创建数据库表,首先必须执行数据库表创建SQL语句。我们可以将创建SQL看成是面向关系编程。例如,我们要创建一个Person表,该表包含姓名、性别、年龄身高4个字段,这时就需要编写如下的SQL语句:1.4.3面向切面编程面向切面编程的英文名称为AspectOrientedProgramming,简称为AOP,是目前非常流行和热门的一个编程技术。面向切面编程针对业务处理过程中的切面进行提取,面对的是处理过程中的某个步骤或者阶段,从而达到逻辑过程中各部分之间低耦合的隔离效果。下面以一个生活中的例子来说明面向切面编程的作用。假如我们现在要去银行取钱,在我们进入银行之前,银行的门将自动打开;而当我们进入之后,银行的门将自动关闭。这时就可以将人进入银行这个动作看成是一个切面,而门自动打开和自动关闭,则可以看成是面向切面编程的操作。假如我们以常规的面向对象编程思想来看待这个问题,那么人在进入到银行之前,首先需要调用门的开启方法,从而将门打开。同样当人进入银行以后,又需要调用门的关闭方法来将门关闭。这样做就非常繁琐了,而且人这个类和门这个类的行为严重耦合。那么怎样才能将人进入银行的行为和开门关门的行为分离开呢?这时我们就需要应用到面向切面编程了,通过将进入银行这个动作看成是一个切面,并使用动态代理类,来拦击人进入银行这个动作。同时在这个动作的前后添加门的相应方法来完成。这样在人进入银行的前后,就能自动调用门的开启方法和关闭方法了。图1-13面向切面编程作者心得:在Struts2和Spring两个框架中大量运用了面向切面编程方面的知识,所以将对面向切面编程的详细讲解,放在后面的章节中进行。1.5疑难解答(1)什么是域名解析?域名解析有什么作用?答:域名解析就是指把域名指向网站空间的IP地址,使得人们可以通过域名来访问网站的一种服务。域名解析还可以叫域名指向、域名配置或者反向IP登记等。通过域名解析能将包含字母、数字组成的网址如,解析成32位的IP地址,如16。通过域名解析能够将容易让人记住的网址,转换成服务器的实际IP地址,从而实现网站的访问。(2)如何通过域名来找到这个网站的IP地址?答:可以通过Windows系统的PING命令来获得指定网站域名的IP地址。具体步骤如下:选择“开始”|“运行”菜单,在“运行”对话框中输入“cmd”命令,将打开一个控制台程序。在控制台中就可以执行PING命令,如要查询雅虎中国的IP地址,则只需要输入“ping”。输入完成后,按下“Enter”键即可执行该命令,这时将在控制台中输出雅虎中国的IP地址,如图1-14所示。图1-14执行PING命令(3)域名、IP地址和URL三者有何区别?答:IP地址是服务器的真实地址,如“”。域名是一组和IP地址相对应的容易记忆的一串字符,如。URL是所有网页的唯一标识,在URL中必须指定主机名信息,这时可以使用IP地址,如“/default.html”,也可以使用域名,如“/index.html”。(4)HTTP协议同TCP/IP协议有什么不同,他们之间有关系吗?答:TCP/IP协议是一种底层数据通信协议,定义了数据传输和连接方式的规范。该协议一共包含4层,从下至上分别是网络接口层、互联网层、传输层和应用层。HTTP协议是TCP/IP中的一种应用层协议,定义了传输数据内容的规范。除了HTTP协议,还有一些常见的应用层协议,如邮件协议SMTP、POP3、FTP等。(5)开发静态页面,除了使用HTML,还需要什么其他网页开发技术吗?答:常用的静态页面开发技术有HTML、CSS以及JavaScript。其中HTML用来组织网页的文档结构,它是整个网页的“骨架”;CSS用来控制网页中元素的显示效果,它是整个网页的“外衣”;JavaScript是一种客户端脚本语言,提供了用户和浏览器交互的能力,它是整个网页的“装饰”。一个完整的网页一般都包含这3种网页开发技术,这也是目前最流行的组合方式。(6)除了记事本之外,有没有比较好的HTML代码编辑器?答:目前有很多的HTML代码编辑器,如EditPlus、UltraEdit,这些编辑器都具有良好的语法特色功能。还有一些可视化编辑器,如Dreamweaver、FrontPage,这些编辑器提供了可视化的环境,使得开发人员无须书写HTML代码就能编写网页。(7)请问扩展名为“.htm”和“.html”的网页文件有什么区别?答:没有任何区别,只是早期的一些操作系统无法识别到4位的文件名,所以才使用“.htm”作为网页文件的文件名。(8)动态网页是不是一定比静态网页好?答:不一定,动态网页虽然提供了用户和服务器的动态交互,但是其访问速度比静态网页要慢很多。使用动态网页还是静态网页,是根据具体的应用来决定的。例如一个房地产网站,主要是展示户型图,这时候就可以使用静态网页,因为在该页面中只需要打开一个户型图,并不需要进行任何动态交互。(9)一个项目可以同时使用J2EE和ASP.NET两种技术开发吗?答:可以的,可以通过WebService来实现,也可以通过ColdFusion技术来实现。(10)既然Hibernate能够完成所有的数据库操作,而且没有JDBC那么繁琐,那么我还有必要学习JDBC吗?答:在学习Hibernate之前是需要学习JDBC的,因为在Hibernate中完成数据库操作也是通过JDBC来实现的,只不过在其上进行了一系列封装。JDBC是Java操作数据库的底层操作,就相当于房子的“地基”,没有地基的房子是经受不起风吹雨打的。第2章开发工具的选择和开发环境搭建古人有云,工欲善其事,必先利其器。程序开发也是如此,要想做出好的项目,也得选择好的开发工具。要想做出一个完整的Web项目,有3个开发工具是必不可少的。一个是浏览器,一个是Web服务器,另外一个是数据库系统。每个开发工具都有许多不同的产品,如浏览器有微软的IE,有Mozilla的Firefox,等等。本章将选出一些主流的产品来进行介绍和说明。进行JavaWeb开发还有一个非常重要的开发工具,那就是集成开发环境,本章将介绍其中一个非常流行的产品,那就是MyEclipse6.5。本章的学习重点:◆安装JDK并配置环境变量◆安装Tomcat并配置虚拟目录◆安装MyEclipse6.5集成开发工具◆使用MyEclipse进行开发2.1开发工具的选择随时技术的发展和完善,各软件商提供了非常多的开发工具,使得使用者有了很大的选择余地。但是由于各开发工具的差异一般都比较大,而且对于使用者的要求也不同。这时摆在我们面前的一个问题是,如何选择得心应手的开发工具。2.1.1浏览器浏览器是用来浏览网页、显示HTML文件内容的一款软件。如果我们要查看网页中的内容,就必须使用一款浏览器。目前流行的浏览器有InternetExplorer、Firefox、Safari、Opera及Chrome等。InternetExplorer浏览器(IE)是由微软公司开发并发布的,它是目前全世界使用最广泛的浏览器。本书所有案例在没有特别声明的情况下,都将使用InternetExplorer浏览器来进行演示和测试。Firefox浏览器是由Mozilla基金会与开源团体共同开发的,目前市场占有率超过20%,仅次于IE浏览器。Firefox浏览器有许多好用的插件,能方便进行开发调试,在后面的章节中将介绍如何使用Firefox浏览器来调试AJAX程序。其他几种浏览器虽然创意非常新颖,并且也有自己的一些新功能,但是由于各种原因,并不能成为主流的浏览器。读者如果感兴趣,可以到其相应的官方网站下载并使用。作者心得:InternetExplorer浏览器是目前国内使用最多和最广泛的浏览器,所以我们创建的Web项目都应该能在其上面运行通过。2.1.2Web服务器Web服务器又称为WWW服务器,主要用来提供网上信息浏览服务。Web服务器能接受用户发送的HTTP请求,在经过处理后,又将返回用户一个HTTP响应。例如,用户请求一张图片时,Web服务器首先接受用户的请求,然后找到相应的图片,并返回用户一个包含该图片的响应。Web服务器在处理请求时,一般需要调用其他的服务器程序,如CGI脚本、JSP脚本、Servlet程序获得ASP脚本等服务器端程序。无论服务器端程序如何运行,这些服务器端程序通常需要生成一个HTML的响应页面来让浏览器浏览用。常用的Web服务器有如下几种。(1)IIS。全称为InternetInformationServer,是由微软公司开发的一款Web服务器产品。IIS是目前最流行的Web服务器,使用ASP或者ASP.NET编写的程序,一般都使用IIS进行部署和发布。(2)BEAWebLogicServer。是由BEASystems公司开发的一款Web服务器产品。WebLogic主要用来构建企业级的大型项目,如使用EJB开发的项目一般都使用WebLogic作为服务器。(3)Apache。是由Apache开源组织开发的一款Web服务器产品。Apache服务器是目前使用人数最多的服务器。使用PHP编写的程序一般都使用Apache服务器进行部署和发布。(4)Tomcat。同样也是由Apache开源组织开发的。Tomcat服务器主要用来运行Servlet、JSP或其他轻量级框架开发的程序。Tomcat服务器运行时占用的系统资源非常小,而且提供了非常多的扩展功能,同时还支持负载平衡与邮件服务等开发应用系统常用的功能。这些优点使得Tomcat成为开发和调试JavaWeb程序的首选,本书的所有的案例都将运行于Tomcat服务器之下。作者心得:Tomcat服务器的安装和使用非常简单,非常适合初学者学习使用。而且Tomcat也完全支持Struts2、Hibernate及Spring框架。Tomcat最大的优点是,占用的系统资源非常少,尤其适合于个人电脑。2.1.3数据库管理系统通俗地讲,数据库就是按照数据结构来组织、存储和管理数据的仓库。数据库分为层次式数据库、网络式数据库和关系式数据库3种。目前最常用的是关系式数据库,也称为关系型数据库。目前常用的数据库管理系统有以下几种。(1)DB2数据库。是由IBM公司开发并发布的关系型数据库管理系统。DB2一般应用于大型的应用程序,支持单用户环境到大型机,并应用于OS/2、Windows等操作系统下。(2)Oracle数据库。是由甲骨文公司开发并发布的一款企业级关系型数据库管理系统。目前大部分的企业级应用都是用Oracle数据库作为其数据库管理系统,但是其价格非常昂贵,而且非常耗费系统资源。(3)SQLServer数据库。是由微软公司开发的一款数据库管理系统。由于它具有很好的伸缩性和集成度高等优点,使之可以运行于微型机到大型多处理器的服务器等多种平台中。(4)MySQL数据库。是由MySQLAB公司开发的一款小型关系型数据库管理系统。它安装后占用系统资源非常少,运行速度非常快,而且开放源代码。因此,目前许多中小型网站都选择MySQL作为其网站数据库。(5)Access数据库。同样是由微软公司开发的一款桌面数据库管理系统。它属于Office办公软件中的一个组成部分,具有界面友好、开发简单、易学易用、接口灵活等特点。由于MySQL数据库体积小、速度快、总体拥有成本低,尤其是其开放源代码,所以使之成为了JavaWeb开发首选的数据库。本书所有案例都将使用MySQL数据库来进行开发。作者心得:MySQL数据库是一款小型的数据库管理系统,就算是一台配置不高的个人电脑,也能非常流畅地运行它。MySQL数据库拥有其他数据库(如Oracle等)的一些常用功能,对于个人学习完全够用。2.2下载和安装JDK6如果需要运行有关的Java程序,就需要安装JRE(JavaRuntimeEnvironment),即Java运行时环境。而如果需要编译并执行有关Java程序,就必须安装安装JDK(Java2SoftwareDevelopmentKit),即Java软件开发工具包。本节将详细介绍如何下载并安装JDK,并介绍如何配置环境变量。2.2.1下载JDK6下载JDK非常简单,只需按照如下步骤,即可从SUN公司的官方网站获得免费的JDK。第一步:进入Java官方首页“”。第二步:单击其中的“Dowloads”菜单栏,并选择其中的“JavaSE”,弹出JavaSE下载页面。第三步:单击“JDK6Update7”右边的“Download”链接进行下载,弹出JDK6Update7选择下载页面。第四步:通过下拉菜单列表选择所使用的操作系统平台及语言环境,并勾选“IagreetotheJavaSEDevelopmentKit6LicenseAgreement”复选框,单击“Continue”按钮继续,弹出JDK6Update7下载页面,如图2-1所示。图2-1JDK6Update7下载页面第五步:该下载页面包含两个版本的安装文件,一个是“WindowsOfflineInstallation”,即离线安装版本;一个是“WindowsOnlineInstallation”,即在线安装版本。为了安装方便,这里选择离线安装版本。单击“jdk-6u7-windows-i586-p.exe”链接,进行下载。作者心得:建议大家选择离线安装版本,这样在安装时就无须一边下载一边安装,可以大大减少JDK的安装时间。2.2.2安装JDK6下载完成JDK后,就可以通过下载的安装文件来安装JDK了,步骤如下。第一步:双击下载好的“jdk-6u7-windows-i586-p.exe”文件,打开许可证协议确认界面,如图2-2所示。图2-2许可证协议确认界面第二步:在打开的许可证协议确认界面中选择“接受”按钮,打开自定义安装界面,如图2-3所示。图2-3自定义安装界面第三步:在安装界面的列表中选择相应的选项,如“开发工具”等。单击“更改”按钮,即可以指定该选项的安装目录,如安装到“C:\jdk1.6.0_07\”路径下。如果不希望使用某个功能,如“JavaDB”选项,可以单击其选项前面的按钮,并选择其中的“此功能将不可用”选项。配置完成后,单击“下一步”按钮,进入JDK安装界面。第四步:经过数分钟后JDK完成安装,将自动打开Java运行时环境自定义安装界面。第五步:Java运行时环境配置和JDK配置完全相同,配置完成后单击“下一步”按钮,进入Java运行时环境安装界面。第六步:经过数分钟后,Java运行时环境安装完成,进入安装成功界面,如图2-4所示。单击其中的“完成”按钮,即可完成JDK的安装。图2-4完成JDK的安装作者心得:在选择JDK安装目录时,不要使用中文字符,并保证JDK的路径中不要有中文存在。2.2.3配置环境变量JDK安装成功后,但还不能够使用控制台来编译和运行Java程序。要想使用控制台来编译和运行Java程序,还需要配置系统环境变量。配置系统环境变量的步骤如下。第一步:右键单击“我的电脑”,选择“属性”,在打开的“属性”窗口中选择“高级”选项卡,如图2-5所示。图2-5高级选项卡界面第二步:在“高级”选项卡界面中单击“环境变量”按钮,打开环境变量配置窗口,如图2-6所示。图2-6环境变量配置窗口第三步:根据自己的需要,在“用户变量”或者“系统变量”选项组中,单击“新建”按钮。打开“新建用户变量”窗口如图2-7所示。这里值得注意的是,如果在“用户变量”中新建,那么环境变量只对该用户起作用;如果是在“系统变量”中新建,那么将对所有的用户都起作用。图2-7新建用户变量窗口第四步:在“变量名”文本框中输入“JAVA_HOME”,在变量值中输入JDK的安装路径,如“C:\jdk1.6.0_07”,单击“确定”按钮,完成“JAVA_HOME”环境变量的添加。通过同样的方法添加“CLASSPATH”环境变量,其变量值为“.;”。同时找到“PATH”环境变量,单击其中的“编辑”按钮进行修改,在其最开始位置添加文本“%JAVA_HOME%\bin;”。单击“确定”按钮完成修改。通过上述步骤,环境变量就设置完成了,这个时候就可以通过控制台来编译并运行Java程序了。2.3下载和安装Tomcat6.0服务器如果需要进行JavaWeb开发,还需要安装Web服务器,这里选择Tomcat服务器。Tomcat服务器是由Apache开源组织开发并维护的,能够支持JSP和Servlet,而且Tomcat服务器是免费产品,并且提供其源代码。本节将详细介绍如何下载并安装Tomcat服务器,并介绍如何配置虚拟目录。2.3.1下载Tomcat下载Tomcat服务器非常简单,只需按照如下步骤,即可从Apache的官方网站获得免费的Tomcat。第一步:打开Apache官方站点“/”。第二步:在右边的“ApacheProjects”下找到“Tomcat”项目链接,单击该链接进入Tomcat项目首页。第三步:从右边的“Download”系列链接中,可以看到Tomcat的目前最新版本为“Tomcat6.x”,单击该链接进入“Tomcat6.x”下载页面。第四步:从该下载页面中可以看出目前Tomcat的最新版本为6.0.18。其中“BinaryDistributions”下的文件都是编译好的二进制文件,而“SourceCodeDistributions”下面的文件为Tomcat的源代码,这里选择下载编译好的二进制文件。“BinaryDistributions”下又分为两类,一类是“Core”即Tomcat核心,一类是“Deployer”即Tomcat部署文件,这里选择下载“Core”下的文件。“Core”下的文件又分为3种,一种是zip格式的,即Windows下的压缩文件;一种是tar.gz格式,即Linux下的压缩文件;一种是WindowsServiceInstaller,即Windows安装文件。这里选择下载zip格式的Tomcat即可。作者心得:添建议大家下载并安装zip格式的Tomcat,这样直接解压缩就可以使用,无须安装。2.3.2安装Tomcat下载完成Tomcat服务器后,就可以通过下载的压缩文件夹来安装Tomcat,步骤如下。第一步:安装Tomcat非常简单,只需要将下载好的“apache-tomcat-6.0.18.zip”解压。如解压到“E:\apache-tomcat-6.0.18”目录下,如图2-8所示。图2-8“E:\apache-tomcat-6.0.18”目录第二步:打开安装目录下的“bin”文件夹,找到其中的“startup.bat”,双击该批处理文件,如图2-9所示。图2-9运行startup.bat第三步:当控制台输出如“Serverstartupin604ms”的文本,则表示Tomcat服务器启动成功。打开IE浏览器,在地址栏输入“http://localhost:8080”,打开如图2-10所示页面,则表示Tomcat服务器安装成功。图2-10Tomcat服务器首页作者心得:Tomcat服务器的默认监听端口为8080,在启动Tomcat服务器前必须保证该端口没有被其他应用程序占用,否则会出现启动错误。2.3.3配置虚拟目录虚拟目录即为保存网站资源如JSP等文件的目录,配置虚拟目录分为如下几个步骤。第一步:在磁盘的任意位置创建一个文件夹,如“F:\JavaWebAPP”。该文件夹即为虚拟目录地址。第二步:在虚拟目录中创建一个名为“WEB-INF”的文件夹,并在该文件夹中创建一个web.xml文件,web.xml代码如下所示。第三步:打开Tomcat安装目录conf文件夹中的server.xml,找到文件最末端的“</Host>”,在其上面一行添加如下代码:<Contextpath="/test"docBase="F:\JavaWebAPP"/>第四步:为了使得虚拟目录生效,还需要使Tomcat服务器重新加载server.xml文件,所以必须重启Tomcat服务器。作者心得:在server.xml文件中可以配置多个虚拟目录,多个虚拟目录之间通过path属性值来区分。2.4下载和安装MySQL数据库数据库管理系统选择使用MySQL数据库,它的体积非常小、速度非常快,许多中小型网站为了降低网站总体成本而选择MySQL作为网站数据库。下面将详细介绍如何下载MySQL数据库和如何安装MySQL数据库。2.4.1下载MySQL数据库首先登
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国均苯四甲酸二酐产业前景趋势展望及投资战略决策报告
- 2024-2030年中国发动机轴承橡胶模行业市场运营模式及未来发展动向预测报告
- 2024年生态修复工程用草种采购合同
- 2024年生态旅游区门面房买卖合同范本3篇
- 2024年版地下水开采合同3篇
- 2024年珠宝首饰租赁协议2篇
- 2024年企事业单位食堂餐饮承包合同及员工餐饮健康促进3篇
- 2018企业首席质量官培训考核试题(综合卷)
- 2024年标准离婚股权分割合同模板版B版
- 2025年深圳从业资格证货运模拟考试下载
- 2024年煤矿事故汇编
- Unit 7单元教案 2024-2025学年人教版(2024)七年级英语上册
- Unit 6 My sweet home(教学设计)-2024-2025学年外研版(三起)(2024)小学英语三年级上册
- 北师大版教案正比例函数案例分析
- 行政文秘笔试题
- 人教版(2024)七年级地理上册跨学科主题学习《探索外来食料作物传播史》精美课件
- 2024-2025学年七年级数学上册第一学期 期末模拟测试卷(湘教版)
- 职业素质养成(吉林交通职业技术学院)智慧树知到答案2024年吉林交通职业技术学院
- 《红楼梦》第5课时:欣赏小说人物创作的诗词(教学教学设计)高一语文同步备课系列(统编版必修下册)
- 【新教材】苏科版(2024)七年级上册数学第1-6章全册教案设计
- 天津2024年天津市应急管理局招聘应急管理综合行政执法专职技术检查员笔试历年典型考题及考点附答案解析
评论
0/150
提交评论