MyEclipseTomcatMySQL的环境搭建精品资料.doc
java环境安装,主要分为三大部分:1、下载并安装java_jdk2、下载并安装。MyEclipse 10_xx3、数据库及服务器安装(mysql(数据库)、Tomcat(服务器)第一部分:java_jdk的安装1、在oracle官网找到最新java_jdk(EE及SE版本自选,并看清windows32位或64位)下载。2、双击名为jdk的exe文件,进行安装到C:Program FilesJavajdk1.6.0_22(一路next,如不想安装在c盘,在路径选择处修改即可,此处以D盘为例)。3、环境变量的设置(此为重要的一步): windows7下java环境变量配置方法: 1.用鼠标右击“我的电脑”->属性 继续选择右下角的“环境变量”选项 2.进行win7下Java环境变量配置 在"系统变量"下进行如下配置: (1)新建->变量名:JAVA_HOME 变量值:C:Program FilesJavajdk1.6.0_22 (这只是我的JDK安装路径) (2)编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin (3)新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar 3.测试下环境变量是否设置成功 在左下角的搜索框中键入 cmd 或者按下“WIN+R”键,“WIN”键就是"CTRL"和“ALT”中间那个微软图标那个键; 分别输入java,javac,java -version 命令 如果出现如下信息: 4.你的Java环境变量配置成功! 注意: 若出现 'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。 说明此次Java环境变量配置出错了,仔细检查下吧!完成上述三个变量的设置后点击确定,java_jdk的安装就完成了,为了检验安装是否正确。“win键+R”输入java -version,若输出java_version "1.x.x.x"(这里为1.7.0.10)则安装正确,若出现错误说java不是系统内部命令等则说明安装未成功,需检查前面的安装设置=第二部分:数据库及服务器的安装:【A】mysql:1、上网选择较新的mysql版本进行下载,这里为Mysql 5.0.22版本2、双击exe文件并一直进行下一步注意:在此过程中需要对两处进行修改:1、字符集,我们选择gb-2312或者utf-8(默认为latin)2、设置密码安装完成后,会自动运行一个配置程序,同样是一直下一步即可,最后有一个配置完成并开启服务的窗口,所有的都打钩时表明安装成功。若未成功,则点击retry若多次仍不成功则需卸载,重新安装。安装数据库MySql和可视化操作界面MySql安装成功【B】apache-Tomcat6.0:1、在官网中找到相应版本并下载。2、双击exe文件并运行,在过程中设置安装路径及端口号(一定要记住端口号)3、安装完成后在开始菜单里点击Apache-TomcatConfigure Tomcat点击Start并确定在此过程中可能出现8080端口(默认端口)被占用的情况,即点击Start后并确定后在任务栏处,Tomcat的图标为红色,此时再次打开Tomcat Configure仍然可以点击Start,这说明端口号8080被占用,简单的方法是重新安装tomcat,并在端口号处设置大于1024,不等于8080的端口号。Tomacat的具体安装步骤如下:用户名和密码admin验证Tomcat是否运行成功在IE浏览器中输入:http:/localhost:80804、Myeclipse+Tomcat集成1.创建Web项目导入已有的工程:菜单:File-àimport-à existing Projects into Workspace-ànext -àbrowse-à找到工程所在的目录-àFinish2.MyEclipse 中tomcat的配置(就是将工程与tomcat关联起来)3.将工程发布到tomcat上(每次为工程添加新的文件时都要操作一次,并重启tomcat)3通过MyEclipse.启动tomcat(先要在开始à程序àapache tomcatàconfigure tomcat停止服务)4. 运行测试二、MySQL的安装(可能你现在觉得没用,但你早晚会用的)基本上就是一路下一步,只是这几个地方要设置一下其他的查询,插入,删除,更新的语句都一样三、将MySQL的jar包引入到工程中(其他的jar包引入的方法都一样) 现在可以使用了。=至此,若上述软件安装正常,则基本的软件安装已经结束,下面进行一个小测试:打开myeclipse打开tomcat,并点击start将以下代码复制到一个web工程的jsp文件中,此处以test.jsp命名。<%page import="java.sql.DriverManager"%><%page import="java.sql.ResultSet"%><%page import="java.sql.SQLInput"%><%page import="java.sql.Statement"%><%page import="java.sql.Connection"%><% page language="java" import="java.util.*" pageEncoding="utf-8"%><html><body><table border=1><% Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String path = request.getContextPath(); String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/" String url="jdbc:mysql:/localhost:3306/test? characterEncoding=utf8" String user="root" String password="admin" Connection con=DriverManager.getConnection(url, user, password); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery("select * from ad_roleInfo order by role_id;"); while(rst.next() out.println("<tr>"); out.println("<td>"+rst.getString("role_id")+"</td>"); out.println("<td>"+rst.getString("role_name")+"</td>"); out.println("</tr>"); rst.close(); stmt.close(); con.close(); %> </table></body></html>将代码发布到服务器中,即deploy选项。在mysql shell命令下输入#mysql -u root -p123456#create database tery;#use tery;#Create TABLE ad_roleInfo ( role_id INT NOT NULL, role_name VARCHAR(20), PRIMARY KEY (role_id)ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into ad_roleInfo values(1,'超级管理员');insert into ad_roleInfo values(2,'总经理');insert into ad_roleInfo values(3,'市场部');insert into ad_roleInfo values(4,'技术部');insert into ad_roleInfo values(5,'客服部');insert into ad_roleInfo values(6,'会计');打开浏览器,并在地址栏输入:locahost:8080/test/test.jsp(注意此处端口号为应用程序对应的端口号,8080为tomcat,3306为mysql,tomcat调用mysql显示数据库,不能用浏览器直接访问mysql)出现相应表格即为正确配置环境。附录资料:java重点笔记归纳整理Java初级eclipse快捷键:右键>REFACTER->RENAME 一改全改ALT+ENTER 查看现在项目的位置 Alt+ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+ 当前行和上面一行交互位置(同上) Ctrl+W 关闭当前Editer C+/ 注释(取消注释)选中行C+S+/ 注释多行C+S+取消注释 F2 查看完整的函数帮助信息,并且可以复制粘贴文字 ,当选中文件时,有改名作用 F3找到变量的定义 C+鼠标点击 找到变量的定义 作用和F3C差不多。 F4找到接口方法的具体实现类.=C+T F5刷新 C+F6:在打开的文件间进行切换; C+F7:在资源窗口间进行切换; C+F8:在各种模式间进行切换; C+E:选择某个打开的文件; C+S+r:打开一个文件; c+s+t:打开一个类; c+s+f:格式化代码; C+S+O:导入需要的类 c+o:查看类结构; c+t:列出子类或接口实现类(类的等级结构) Ctrl+Alt+ 复制当前行到下一行(复制增加) Ctrl+Alt+ 复制当前行到上一行(复制增加) CtrlK (加SHIFT是向上)向下查找选中的字符串 Ctrlshift 向上向下查找一个函数和变量 Java基础知识1.Java是Sun公司的JamesGosling发明的面向对象的可跨平台的编程语言。2.SUN公司,Stanford University Network,斯坦福大学;3.平台:我们把cpu处理器与操作系统的整体叫做平台。不同的操作系统支持不同的cpu指令集。不同的cup有不同的指令集,如intel和AMD.4.JDK:Java Software Develop Kit. JVM:Java Virtual Machine.Java虚拟机,包含:类加载器,字节码校验器,java解释器。 JRE:java运行时环境,包含jvm与java运行支持类库。5.环境变量:java_home;classpath:.;C:Javajdk1.6.0_10lib;path6.jdkjdk1.1为jvm增加了JIT(即时编译)编译器;jdk1.2也叫java2;jdk1.5也叫java5(改动较大);现在使用的是jdk1.6。7.jdk,Java Developent ToolKit;开发java需要有源程序文件到中间文件的编译器;运行java中间文件需要对应平台的解释器(官方叫法JVM);编译器、解释器加上一些其它的组件合称为JDK.JDK的另外一个称呼为Java Software develop kit.JDK即开发java程序的组件。jdk=java编译器+jre(java运行环境) jre=jvm+运行支持类库 eclipse和jbuilder本身自带了java编译器但不包含jre。8.jre:Java Runtime Environment,java运行时需要的环境。有两类,开发需要的jre和公共jre。9.jdk版本,jdk1.2到jdk1.4为java2时代,java技术有j2ee,j2se,jeme.jdk1.5,也叫做java5,技术术语改为javase,javaee,javame.1.5在1.4的基础上改动很大。10.常用的DOS命令:dir,现实当前文件夹的所有文件;cd . 打开上级目录;exit:退出。11.java注释:java注释分为三种单行注释,多行注释,文档注释,文档注释结果为:/*换行*/,文档注释在帮助文档里面有显示。12.javadoc帮助文档,javadoc可执行程序可生成帮助文档,用法如下:javadoc Test01.java13.java 打包jar,用法见cmd输入jar;ant也是一种打包成jar的工具,其功能叫jar更加强大;除了jar包外,java文件包还有war,ear两种格式。14.java缺点:运行速度慢,占用资源多是java的缺点;其原因是:class需要二次编译,解释执行;jvm运行占用资源;无指针无法直接操作内存,垃圾回收线程占用资源,并且不会实时收集内存。15.JVM,JAVA虚拟机即java解释器;JVM执行.class文件需要三步:类加载器加载;校验器检查错误,执行文件。在执行的时候有两种方法:a.解释器直接执行;b.JIT代码生成器搞定。16.两种解释执行方法的区别:直接解释执行是1.1版本的,其直接翻译class文件,速度必然比机器执行二进制文件的速度慢;1.2版本后引入JIT,即将class文件先转换为二进制文件,再执行二进制文件,下次执行时可直接执行二进制文件。15.JIT(即时编译):java即时编译技术,可执行java代码的运行速度。17.IDE工具 IDE:Integrated Development Environment,集成开发环境。18.开发java的IDE工具:JCREATOR,JBUILDER,ECLIPSE,NETBEANS.20.拷贝项目的三种方式:a.拷贝整个工作空间,切换工作空间。b.拷贝项目,导入项目。c.只拷贝源代码(即src文件夹),从新建的项目导入。22.转义字符:单引号:'双引号:"反斜杠:;回车:n;水平制表符:t;换行:r. 转义字符一般出现在字符串中时,要是以原型输入,则输出一定报错,只有以转换后的才能显示。23.数据类型转换:byte char short int long float double,String,小杯到大杯自动转换,但是大杯到小杯强制转换。一般的格式:标变量=(目标类型)源变量,特殊的,String转换为其它,int a = Integer.parseInt(str1);float b = Float.parseFloat(str2);boolean c = Boolean.parseBoolean(str3);24.内存分配 基本数据类型只在栈中分配内存;应用数据类型不仅在栈中分配内存,还在堆中分配内存,在变量声明时,在栈中分配内存,当创建对象时,在堆中分配内存。25.值传递和引用传递 本人去见网友叫按引用传递;替身去见网友叫做按值传递。引用传递参数数值改变,按值传递参数值不变。基本数据类型就是按值传递的,又称为值类型,而引用类型是按引用传递的。String 虽然是按引用传递的,但是传递给的新变量会有属于自己的堆内存,所以,String值不变。包: 开发中最好在导入包和类的过程中,最好是使用哪个类就导入那个类,不要导入包。27.包的命名规则:反写的企业域名.功能名.模块名28.系统包(SUN提供的包)默认包-java.lang.常用包 java.lang: java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 java.lang.reflect:提供用于反射对象的工具 java.io: java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出等 java.util:常用的工具类,如集合框架类,日期处理类等。主题:旺旺老师软件工程师实训教程-JAVASE 第六章:包与 JAVA 常用类 java.sql: JDBC相关类。 :JAVA网络包,其中包含能够使程序通过网络进行通信的 java.awt;javax.swing:使用java开发C/S结构应用程序使用的类。29.企业开发中命名规则一般如下: com.easyitedu.dao /持久层代码 com.easyitedu.view /表示层代码 com.easyitedu.biz.student /stuent模块的业务层代码 com.easyitedu.biz.teacher /teacer模块的业务层代码 com.easyitedu.tool /本项目使用的工具类30.包装类:8个值类型对应的有8个类,我们把它们称为包装类。其作用较八种基本类型的作用强大,java不符合面向对象的两个地方:一个是JAVA保留了8个基本数据类型,他们不是对象,更没有属性和方法;另一个就是JAVA中存在着main方法。之所以还在用八种基本类型而不是通通用包装类,是因为一些简单的业务用基本数据类型效率较高,但是有时必须用八个包装包,例如:强制类型转换。 其中byte的包装类是Byte.只有char的类是Character,int 是 Integer.其它像byte一样是其本身。说明:int a = 10; Integer b = new Integer(10);其中,前者占用一块内存,后者占用两块,符合引用传递。自动的拆箱和装箱:把数据由基本数据类型转换为对应包装类叫做装箱,把数据由包装类转化为基本数据类型叫拆箱。实例:int a = 10;Integer b = a;/自动装箱,基本数据类型->包装类 int c = b;/自动拆箱,包装类->基本数据类型,即两种类型可以自动相互转换,没其它制约。32.String转换成基本型:调用包装类的parse*方法,例如:String a = "12" int a = Integer.parseInt(a);33.=和equals,=比较的是堆内存地址,后者堆内存(即地址可以不同)。equals,用法:常量.equals(变量),要不然会出现空指针异常。34.字符串池:当字符串直接赋值时,(string a = "aa")其堆内存会进入字符串池,当下次在赋值相同时,String b ="aa"b会直接引用a的堆内存。但是当赋值为new 方法赋值时,其堆内存不会进入字符串池,而是直接开辟一个新的空间。String c = new String("aa");35.三个空字符串的区别:String a = null;String b = " "String c = ""其中null,没有分配堆内存空间,b分配了堆内存空间,里面放了一个空格;c虽然分配了内存空间,但是没有放东西。36.字符串拼接:不用String 而是用StringBuffer.append(),前者的对内存限定了,改变后重新分配内存;后者可以添加内存。就像前面是不能加车厢的汽车,每次都得换车;后者是可以加车厢的汽车。37.面向对象编程叫OOP,还有一门知识叫OOAD(面向对象的分析与设计),在OOAD中,继承又叫派生,父类又叫超类。38.Override注释:第四种注释,给java编译器看的,在编译阶段提示错误,在重写父类方法时,一般加上此注释,表示此方法是重写的父类方法。39.Deprecated注释:此方法不推荐使用(看文档时),一般会有功能更强大的方法代替。SuppressWarrin40.继承的7点特性:a.子类拥有父类的属性和方法b.子类可以有自己行的属性和方法c.子类可以重写父类的方法d.可以声明父类,创建子类d_1.声明什么类型,就只能调用什么类型的方法d_2.创建什么类型,运行什么类型的方法d_3要使用创建类型的方法,必须得强制转化类型。41.this与super关键字 一般在子类中使用,this表示调用自己声明的属性和方法;super表示父类声明的属性和方法。static方法中不能使用this与super关键字。42.继承中的构造方法 创建对象一定会调用构造方法? 创建子类对象一定会调用父类的构造方法? 子类默认调用父类无参构造方法? 子类只能调用父类存在的构造方法? 子类构造方法中使用super调用父类构造方法,并且super必须放在第一行? 构造方法中this表示调用本类其他构造方法,并且this必须放在第一行43.封装定义:隐藏属性,方法和方法实现细节的过程成为封装。45.方法的说明符 方法的访问说明符 1.public 任何地方都可以访问 2.protected 子类或者同包,同类可以访问,但是其它包的非子类不可以访问 3.default 只有同类或者同包可以访问 4.private 私有的方法,这里的私有指的是被被class所私有,其他类不能访问,继承的类也不行。 方法的其他说明符 1.static 2.final 此方法不可以被子类覆盖。 3.abstract 抽象的方法 4.native 用户可以使用,但是不能编写的类。 5.synchronized 同步的方法面向对象 面向对象的程序开发实际上分为三种:OOA OOD OOP |-OOA:面向对象的分析 |-OOD:面向对象设计 |-OOP:面向对象程序 三大特性:封装、继承、多态。 对象的创建及使用:Person zcy = null;/声明对象 zcy=new Person();/实例化对象 Person zcy = new Person(); 方法不需要创建,直接使用。47.封装性 封装性有很多体现,但是最简单的体现是假如“private”关键字。48.实体类:在开发过程中,有一些类与数据库紧密联系,其叫法有几种,常用的有,entity 实体类;vo类 value object 值传递;dto,data transmission object 数据传输对象。Static49.static普通变量通过对象名.变量访问;而static变量通过类命.变量访问,因为static 修饰的变量为类变量。50.final,当定义一常量时,用final修饰,变量名大写,通常情况下,final修饰,前面加上static,但是反之不成立!51.static方法,静态方法,同样是通过类名.方法名调用。静态方法里面不能调用非静态变量;静态方法下面不能使用this,super等关键字。静态方法中不能访问普通方法,但可以调用静态方法;即静态方法里面不能出现非静态的东西。52.静态块:在虚拟机加载类时就调用,不需要等到创建对象时执行。sun公司不推荐使用。多态53.方法重载相同的方面名称,不同的参数列表(个数和类别不同),同时出现在一个类中。54.方法重写:在子类中产生与父类相同的方法头(参数列表也相同),但是方法体不同,属于方法重写,与方法重载有根本区别。子类也可以重载父类的方法,只是父子类的方法重载。55.多态定义:多种形态,多种形式,多种表现形态。最直接的表现形式是方法重写(父子类之间),方法重载(一个类里面)。抽象类,接口都为接口服务。abstract56.抽象方法(abstract):由abstract关键字修饰的方法叫做抽象方法,只有方法头没有方法体。56.抽象类(abstract):由abstract关键字修饰的类叫做抽象类。只能声明,不能创建。有抽象方法的类一定是抽象类,但抽象类不一定是抽象方法。当想让一个方法只能被继承,但是不能创建时,用到此种情况。57.抽象类子类:1实现父类的所有的抽象方法,2.或者自己声明为抽象类,3.或者部份实现父类的方法,但自身还是要声明成抽象类。58.取随机数:Random random = new Random();int selectTndex = random.nextInt(3);System.out.println(selectTndex);59.接口(interface):接口是一系列方法(功能)的声明,即没有实现任何方法的抽象类(没有abstract关键字,但出现也不会报错);命名时,前面加上大写字母I,在其子类中,子类 implements 接口,implements在这里是实现的意思。子类要么实现接口的所有方法,要么把自己变成抽象类。60.接口特点:一个子类可以实现多个接口,即变相的多继承。接口可以继承接口,一个接口可以继承多个接口。接口只能声明不能创建。61.接口的分类:a.普通接口,即一系列方法的声明;b.常量接口,项目中常用的一些常量。C.标识接口(空方法接口),子类实现此接口,表示属于某个体系接口,具有某种功能。Java中级HTML知识点:Html怎么转换成jsp页面供程序员使用1.首行加上代码<% page language="java" contentType="text/html; charset=gbk"%>2.重命名为jsptable修饰代码<table align="center" width="80%" border="1", style="border-collapse:collapse">鼠标来去特效<tr align="center" onmouseover="this.bgColor='red'" onmouseout="this.bgColor='white'"><TH>与<TD>区别同样是标示一个储存格,唯一不同的是<TH>所标示的储存格中的文字是以粗体出现URL重写jjj.jsp?参数名称=参数值&参数名称=参数值&参数名称=参数值方法重写可以通过链接页面跳转传递参数,其作用和表单中的隐藏域作用一样。跳转服务器跳转和客户端跳转:跳转之后地址没变,称为服务器跳转,地址改变称为客户端跳转。跳转方式:客户端跳转setHeader() response.setHeader("refresh","2;url=ddd.jsp");属于客户端跳转response.sendRedirect("DDD,JSP");客户端跳转,页面执行完毕之后再跳转,但是不能出传递request范围的属性。服务器跳转<jsp:forward page="ddd.jsp"/>服务器跳转,属于无条件跳转,后面的内容不执行,故而数据库的关闭不能放在后面。页面间的两种跳转服务器跳转:<jsp:forward page = "Page01.jsp"/>超链接跳转<a href = "dddd.jsp">sssss</a>cookie使用方法:Cookie c1 = new Cookie ("dd","ddd"); response.addCookie(c1);Cookie c = request.getCookies();for (int i=0;i<c.lengh;i+)%><h3><%=ci.getName()%>-><%=ci.getValue()%></h3><%>注意:发现浏览器关闭后,不能取得cookie内容,原因为其内容仅保存在浏览器中,并没有保存在本地,保存本地,其保存时间必需得到设置。cl.setMaxAge(22);/插入此代码即可out.println()out.println()的换行去哪里了呢?这个换行只是针对于源文件中的换行,但是此换行会被HTML忽略掉,所以如果需要换行,可以直接编写html语句。两种include指令 include指令和<jsp:include>指令语法格式为: include:<%include file="页面名称"%> <jsp:include>指令有两种格式:语法一: <jsp:include page="页面"/>语法二:<jsp:include page="页面1"> <jsp:param name="参数名称" value="值"/>/想页面1中传递参数,再包含在本页面中 . </jsp:include>四种属性每种属性都有三种操作方法:1.设置属性setAttribute(String name,Object value) 取得属性getAttribute (String name) 删除属性(removeAttribute)2.属性范围 pageContext 范围仅本页面 范例:pageContext.setAttribute("name","mldn");/设置属性 String re = (String)pageContext.getAttribute("name");/取得属性 requset 属性范围表示在一次服务器跳转中有效,只要是服务器跳转,则设置的request属性可以一直传递下去,超链接则不行。 范例:request.setAttribute("name","dd"); String ddd = (Sring)request.getAttribute("name"); session 属性范围仅为一个客户,两种跳转都可以 范例:seesion.setAttriute("name","dddd"); String dddd = (String)seesion.getAttribute("ddd") application 范围是在服务器上面设置一个属性,所以一旦设置后任何用户都可以浏览到此属性。如果在服务器上设置过多的Application属性,则会影响到服务器的饿性能。 乱码转换:产生原因:所有静态web的执行流程,是先从服务器上取得一个页面,之后通过把内同提交给服务器,之后服务器在提交的内容返回给客户进行显示。设置page指令后,本页面输入的中文会得到正确的显示,但是接受到的从其他页面的参数却还是乱码,解决方法有两个:第一个直接把接受到的内容用服务器返回给客户的进行显示,即加上str=new String(str.getBytes("ISO8859-1");/转码 第二种方法为:前面加上 request.getCharacterEnocoding("gbk");/按中文接受。两种方法的区别为:第一种是接受了再转换,第二种是转换了再接受。接收多个同名参数在表单中,存在复选框,接收方法如下:<input type = "checkbox" name= "inst" value="a">a<input type = "checkbox" name= "inst" value="b">b<input type = "checkbox" name= "inst" value="c">c若String inst = request.getParameter("inst");接收内容只为选项最前面一个,解决方法如下:String inst = request.getParameteValues("inst");/接收表单参数<% for(int i=0;i<inst.length;i+)%> <%=insti%>、<%>配置tomcat虚拟目录。1.文件目录结果必须为:WEB TOOT/WEB-INF/WEB.xml。WEB.xml文件有格式要求。可以拷贝D:Tomcat 6.0webappsROOTWEB-INF里面的文件,但是注释内容去掉。2.修改serve.xml 正确位置加上:<Context path="/demo" docBase="D:webdemo"/>3.conf/web.xmllistings下面false改为true,项目完成记得改过来。登录代码<%