Java环境搭建与Tomcat部署项目实战(附安装包)

1、JDK的安装与配置

JDK (Java SE Development Kit) 就是java开发包的意思,当然里面也包括了 JRE (Java Runtime Environment)Java运行环境

去Oracle官网去下载JDK 地址:Java Downloads | Oracle

进入选右侧的J2SE然后点击DOWNLOAD 选择下面的JDK下载

进入后选择对应的平台下载

JDK1.8下载:

选择windows x64 点击右边的下载下载对应版本的jdk1.8。

安装JDK:

在D盘先新建2个文件夹作为JDK与JRE的下载路径,不要用默认的下载路径。

安装更改默认的安装路径:

为:

之后安装JDK,JDK安装之后要安装JRE,选择刚新建的JRE文件夹作为JRE安装目录,之后安装JRE:

配置环境变量:

选择计算机,右击选择属性,之后进入选择高级系统配置。

之后点击环境变量:

在系统变量中点击新建:

首先第一个,配置 JAVA_HOME 值是 D:\jdk1.8 也就是jdk的安装目录:

接下来是 classpath 类加载路径,值是:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

注意前面的点 .;    

. 点代表所有 ,复制上面的粘贴即可

最后一个是 path变量修改(主要是告诉操作系统某些路径下有一些命令);这个path变量已经存在,我们要在这个值的最前面加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 

测试JDK是否安装成功:

cmd 下输入java 运行的命令。

cmd 下输入javac 编译的命令:

输入java -version 版本命令:

2、tomcat的安装与配置

Tomcat8的下载:

Apache Download Mirrors

Tomcat配置:

解压tomcat到当前的文件。

TOMCAT环境变量配置:

TOMCAT_HOME : C:\Users\Administrator\Desktop\apache-tomcat-8.0.50

Path : ;%TOMCAT_HOME%\bin

以上即可,不影响tomcat的使用

运行Tomcat8,“开始”->“运行”->输入cmd,在命令提示符中输入 startup.bat,之后会弹出tomcat命令框,输出启动日志;打开浏览器输入http://localhost:8080/ ,如果进入tomcat欢迎界面,那么恭喜你,配置成功。

详细的配置也可以配置为:

(1)变量名: CATALINA_BASE     变量值: D:\apache-tomcat-7.0.63(Tomcat解压到的目录)
(2)变量名: CATALINA_HOME     变量值:D:\apache-tomcat-7.0.63
(3)变量名: CATALINA_TMPDIR     变量值:D:\apache-tomcat-7.0.63\temp

(4)变量名: Path    变量值:D:\apache-tomcat-7.0.63\bin

不配置也可以。

3、mysql的安装与配置

zip格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置。

解压之后可以将该文件夹改名,放到合适的位置,放到E:\install\mysql-5.6.26-winx64\路径中。当然你也可以放到自己想放的任意位置。

完成上述步骤之后,很多用户开始使用MySQL,但会出现图示的错误。这是因为没有配置环境变量所致。配置环境变量很简单:

我的电脑->属性->高级->环境变量

选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如: E:\install\mysql-5.6.26-winx64\bin )

PATH=.......; E:\install\mysql-5.6.26-winx64\bin

 (注意是追加,不是覆盖)

;E:\install\mysql-5.6.26-winx64\bin

配置完环境变量之后先别忙着启动mysql。

以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够):

输入:cd E:\install\mysql-5.6.26-winx64\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)。

输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!)。

安装成功:

安装成功后就要启动服务了,继续在cmd中输入:net start mysql(如图),服务启动成功!

此时很多人会出现错误,请看注意:

如果出现“错误2 系统找不到文件”,检查一下是否修改过配置文件或者是否进入在bin目录下操作,如果配置文件修改正确并且进入了bin文件夹,需要先停止服务,net stop mysql。再删除mysql(输入 mysqld -remove)再重新安装(输入 mysqld -install);

重新安装好之后,一定要再重新启动mysql要不会连接不上,进入bin目录。

输入net start mysql:

服务启动成功之后,就可以登录了。

第一次登陆的时候要重置密码,否则登陆不进去。

先退回上一级目录进入data目录:

cd E:\install\mysql-5.6.26-winx64\data

输入mysql -uroot --skip-password 跳过密码登陆:

进入mysql之后修改root的密码为root6 (密码自己设置)

set password for root@localhost = password('root6');

然后退出exit;

登陆mysql:

mysql -uroot -p

输入刚才设置的密码即可登陆成功。

命令提示符的备份:

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>e:

E:\>cd install

E:\install>cd mysql-5.6.26-winx64

E:\install\mysql-5.6.26-winx64>cd data

E:\install\mysql-5.6.26-winx64\data>mysql -uroot --skip-password
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'root';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'iden
ified by 'root'' at line 1
mysql> set password for root@localhost = password('root');
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

E:\install\mysql-5.6.26-winx64\data>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit;

4、mysql客户端sqlyong的安装

sqlyog安装,运行程序:

选择下一步进行安装:

选择安装位置点击安装:

安装后即可运行。

在安装数据库后,第一次运行SQLyog出现的这种情况:

下面是解决方法:

在cmd下输入

net stop mysql

第一步:停止服务

第二步:进入mysql安装的bin目录,再重启服务。

根据用户名和密码登陆:

第三步:然后再给root用户授权:

grant all on *.* to 'root'@'localhost' identified by '123456';

第四步:刷新一下即可:

flush privileges;

再重新登录sqlyog。

输入mysql的用户名和自己设置的密码

端口号默认是3306

sql的主机地址为localhost

即可登陆:

5、创建数据库与数据库备份

安装sqlyog之后,需要自己创建一个数据库。

选择最上面点击创建数据库:

创建一个prodatashow的数据库:

prodatashow数据库就创建好了:

mysql数据库的备份:

1)导出mysql数据库

选择要导出的数据:

第一步:cd进入到 MySQL中的bin文件夹的目录

如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin

第二步:导出数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名

如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码)(如果导出单张表的话在数据库名后面输入表名即可)

2)在自己的数据库中导入数据库文件

1,将要导入的.sql文件移至bin文件下,这样的路径比较方便

2,同上面导出的第1步,进入bin目录

3,进入MySQL:mysql -u 用户名 -p

输入密码进入

4,创建一个新的数据库,已经建好的prodatashow数据库

5,输入:mysql>use 目标数据库名

如我输入的命令行:mysql>use prodatashow;

6,导入文件:mysql>source 导入的文件名;

如我输入的命令行:mysql>source news.sql;

6、tomcat部署项目

将projectName.war包,复制到Tomcat的webapp下。这样当配置好后的访问路径便为:http://localhost:8080/projectName/login.jsp

在访问之前,需要修改tomcat服务器的配置文件,打开:

tomcat解压目录\conf\context.xml。将运行该web项目时,需要配置的数据库连接字符串增加到该xml文件中。

增加后的context.xml为:

<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
--
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->

(这里填写本Web项目运行时,需要连接的数据库配置。)
</Context>

连接串设置完毕后,便可以基于Tomcat服务器来访问web项目了。

首先运行Tomcat的bin目录下的startup.bat,当Tomcat启动完毕后,

在浏览器输入:localhost:8080/projectName/login.jsp时,如果出现该Web项目的login界面时,则表明war包已成功地部署到tomcat服务器上,并可成功访问了。

7、Tomcat数据库连接池的配置方法

数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标,数据库连接池正是针对这个问题提出的.

数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这样可以明显提高对数据库操作的性能.

数据库连接池在初始化的时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的,无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中.

数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:

1.最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费.

2.最大连接数是连接池申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待对列中,这会影响之后的数据库操作

如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接,不过,这些小于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时被释放.

实例使用的Tomcat版本为6.0。

方法一: 在Tomcat的conf/context.xml中配置

在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下:

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

配置连接池:

<?xml version='1.0' encoding='utf-8'?>

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <!--配置oracle数据库的连接池-->
    <Resource name="jdbc/oracleds"
        author="Container"
        type="javax.sql.DataSource"
        maxActive="100"
        maxIdle="30"
        maxWait="10000"
        username="scott"
        password="tiger"
        driverClassName="oracle.jdbc.dirver.OracleDriver"
        url="jdbc:oracle:thin:@127.0.0.1:1521:ora9" />

    <!--配置mysql数据库的连接池, 
        需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下        
        maxIdle 连接池中最多可空闲maxIdle个连接 
        minIdle 连接池中最少空闲maxIdle个连接 
        initialSize 初始化连接数目 
        maxWait 连接池中连接用完时,新的请求等待时间,毫秒 
        username 数据库用户名
        password 数据库密码
        -->
    <Resource name="jdbc/mysqlds" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="root" 
        password="root" 
        maxIdle="30" 
        maxWait="10000" 
        maxActive="100"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://127.0.0.1:3306/db_blog" />

</Context>

配置好后需要注意的两个步骤

1.将对应数据库的驱动类放到tomcat的lib目录下

2.重新启动tomcat服务器,让配置生效

在web应用程序的web.xml中设置数据源参考,如下:

在<web-app></web-app>节点中加入下面内容:

 <resource-ref>

      <description>mysql数据库连接池</description>
      <!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 -->
      <res-ref-name>jdbc/mysqlds</res-ref-name>
      <!-- 资源类型 -->
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

错误解决:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at com.iblog.util.DBPoolUtil.<clinit>(DBPoolUtil.java:34)

解决方案:

上面的异常信息是配置文件中JNDI没有初始化造成的

如果下面的问题都不存在

1.要去检查下配置文件中连接数据库的URL参数是否正确2.以及是否导入了正常的包3.检查在Tomcat中conf/server.xml文件,检查是否设置useNaming="false",如果是,去掉

2.那就是通过main方法测试的,这个数据源不支持这样的测试方法,程序要运行在Tomcat中才能找到相应的数据源.[我在测试时犯这样的错导致上面错误出现]

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>     

<%@ page import="java.sql.*" %>     
<%@ page import="javax.naming.*" %>     
<%@ page import="javax.sql.DataSource" %>
<html>     
<head>     
<title>Tomcat6.0 JNDI!</title>    
</head>    
  <body>      
   Tomcat连接池测试,获取数据源 <br>     
    <%     
        try {      
            //初始化查找命名空间
            Context ctx = new InitialContext();  
            //参数java:/comp/env为固定路径   
            Context envContext = (Context)ctx.lookup("java:/comp/env"); 
            //参数jdbc/mysqlds为数据源和JNDI绑定的名字
            DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlds"); 
            Connection conn = ds.getConnection();     
            conn.close();     
            out.println("<span style='color:red;'>JNDI测试成功<span>");     
        } catch (NamingException e) {     
            e.printStackTrace();     
        } catch (SQLException e) {     
            e.printStackTrace();     
        }     
    %>     
  </body>     
</html>   

方法二: 在Tomcat的conf/server.xml中配置

打开tomcat的conf/server.xml文件,找到<GlobalNamingResources></GlobalNamingResources>节点,默认的内容如下:

 <GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

在该节点中加入相关的池配置信息,如下:

   <GlobalNamingResources>

             <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

             <!--配置mysql数据库的连接池, 
                需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下        
               -->
             <Resource name="jdbc/mysqlds" 
              auth="Container" 
              type="javax.sql.DataSource" 
              username="root" 
              password="root" 
              maxIdle="30" 
              maxWait="10000" 
              maxActive="100"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/db_blog" />
  </GlobalNamingResources>

在tomcat的conf/context.xml文件中的<Context></Context>节点中加入如下内容:

<ResourceLink name="jdbc/mysqlds" global="jdbc/mysqlds" type="javax.sql.DataSource"/>

然后在web项目中的WEB-INF目录下的web.xml中配置:

 <resource-ref>

      <description>mysql数据库连接池</description>
      <!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 -->
      <res-ref-name>jdbc/mysqlds</res-ref-name>
      <!-- 资源类型 -->
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

同样配置好后,需要重新启动服务器,让配置生效.

方法三: 在Tomcat的conf/server.xml中配置虚拟目录时配置 

在配置虚拟目录时,也就是在配置conf下面的server.xml时,在context标签内添加池配置.

在说该方法之前,先说一下,如何用tomcat配置虚拟目录

在tomcat\conf下server.xml中找到

​<Host name="localhost" appBase="webapPS" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host>

在其中添加:

<Context path="/website" docBase="F:/myweb" reloadable="true"></Context>

注意:

docBase要改成你的项目目录。

path为虚拟路径,访问时的路径,注意:一定要加“/” debug建议设置为0

reloadable设置为true。  

这样重新启动tomcat

实例中如下配置

​<Context path="/website" docBase="D:/program files/Tomcat/apache-tomcat-6.0.33/webapps/iblog.war" reloadable="true"> </Context>

接下来添加池配置,如下:

<!--配置虚拟目录-->

<Context path="/website" docBase="D:/program files/Tomcat/apache-tomcat-6.0.33/webapps/iblog.war" reloadable="true">
            <Resource name="jdbc/mysqlds" 
            auth="Container" 
            type="javax.sql.DataSource" 
            username="root" 
            password="root" 
            maxIdle="30" 
            maxWait="10000" 
            maxActive="100"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/db_blog"
            />
</Context>

启动服务器,测试,注意因为我们配置了path值为”/website”,所以访问的路径应该为website。

方法四:在Web项目中的META-INF目录下新建一个文件context.xml,写入配置

注意:是META-INF目录下,不是WEB-INF目录下:

<?xml version='1.0' encoding='utf-8'?>

<Context>
    <Resource name="jdbc/mysqlds" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="root" 
        password="root" 
        maxIdle="30" 
        maxWait="10000" 
        maxActive="100"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://127.0.0.1:3306/db_blog"
        logAbandoned="true" />
</Context>

8、tomcat配置多个项目通过IP加端口号访问

一个tomcat部署多个项目并通过不同的端口访问

第一步:修改 $TOMCAT_HOME\conf\server.xml文件。

  • 复制Service节点,去掉<Connector port="8009"...这个节点
  • 新增Service节点的name属性依次修改为Catalina1、Catalina2……
  • 新增Service节点的Connector节点port属性依次修改为8001、8002……(根据机器配置未占用端口,这里按顺序为方便)
  • 新增Service节点的Host节点appBase属性依次修改为webapps1、webapps2……

下面是新增两个Service节点的配置:

  <Connector port="8081" maxHttpHeaderSize="8192"  
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
               enableLookups="false" redirectPort="8443" acceptCount="100"  
               connectionTimeout="20000" disableUploadTimeout="true" />  
  
    <Engine name="Catalina1" defaultHost="localhost">  
  
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
             resourceName="UserDatabase"/>  
         
      <Host name="localhost" appBase="webapps1"  
       unpackWARs="true" autoDeploy="true"  
       xmlValidation="false" xmlNamespaceAware="false">     
<Context path="" docBase="/user/local/Tomcat7/webapps1/Menu" debug="0" reloadable="true" />  
            
      </Host>  
  
    </Engine>  
  
  
  </Service>

  <Service name="Catalina2">  
      
    <Connector port="8082" maxHttpHeaderSize="8192"  
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
               enableLookups="false" redirectPort="8443" acceptCount="100"  
               connectionTimeout="20000" disableUploadTimeout="true" />  
  
    <Engine name="Catalina2" defaultHost="localhost">    
  
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
             resourceName="UserDatabase"/>

      <Host name="localhost" appBase="webapps2"
       unpackWARs="true" autoDeploy="true"  
       xmlValidation="false" xmlNamespaceAware="false"> 
        <Context path="" docBase="/user/local/Tomcat7/webapps2/Menu" debug="0" reloadable="true" />  

      </Host>  

    </Engine>    
    
  </Service>

黄色字,表示项目访问路径是ip加端口号。

第二步:在$TOMCAT_HOME目录下新建文件夹webapps1、webapps2……(目录里包含ROOT子目录),里面分别放不同项目(测试只就简单复制$TOMCAT_HOME\webapps\ROOT目录)

第三步:复制$TOMCAT_HOME\confi目录下的Catalina生成多个副本,并依次命名为Catalina1、Catalina2……

第四步:启动Tomcat测试

第五步:浏览器中一次访问不同端口

为了证明是三个不同的项目,我修改了标题分别一第一个、第二个、第三个。


Java环境搭建安装包:

链接:Java环境搭建_免费高速下载|百度网盘-分享无限制 (baidu.com)

提取码:dkls 
 

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/143427614