美文网首页
第六天上午、Java的Apache+Tomcat服务器的配置

第六天上午、Java的Apache+Tomcat服务器的配置

作者: 别学编程 | 来源:发表于2020-08-10 11:08 被阅读0次

代码完善

首先回顾上次的任务,就是要求写出另外三个功能的代码,另外三个功能的代码没什么新的东西,也跟以前的一样,所以这个直接看代码就行了,
UserView.java

package Demo2;
import java.util.Scanner;
public class UserView
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账号:");
        String account = sc.next();
        System.out.println("请输入密码:");
        String password = sc.next();
        //调用用户名密码检测
        boolean b = UserDao.login(account, password);
        if(b)
        {
            System.out.println("登录成功");
            OrdersView.ordersMenu();
        }
        else
        {
            sc.close();
            System.out.println("登录不成功");
        }
    }
}

UserDao.java

package Demo2;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDao
{
    //返回true为正确,false为错误
    public static boolean login(String account,String password)
    {
        boolean b = false;
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
            PreparedStatement ps = conn.prepareStatement("select * from tb_user where user_account=? and password=?");
            ps.setString(1, account);
            ps.setString(2, password);
            ResultSet rs = ps.executeQuery();
            if(rs.next())
                b = true;

            rs.close();
            ps.close();
            conn.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //查询数据库是否有这个用户
//      if(account.equals("123") && password.equals("qwe"))
//          return true;
//      else
//          return false;
        return b;
    }
}

OrsersView.java

package Demo2;

import java.util.List;
import java.util.Scanner;
public class OrdersView
{
    public static void ordersMenu()
    {
        while(true)
        {
            System.out.println("1--订单的显示");
            System.out.println("2--销售额的统计");
            System.out.println("3--销售记录的统计");
            System.out.println("4--商品销售占比统计");
            System.out.println("其他--退出");
            //用户输入选项
            System.out.println("请输入选项:");
            Scanner sc = new Scanner(System.in);
            int input = sc.nextInt();
            //sc.close();
            switch(input)
            {
                case 1:
                    List<List<Object>> orders = OrdersDao.getOrders();
                    System.out.println("序号\t订单编号\t\t\t\t所属账户\t\t生成时间\t\t\t\t\t\t商品信息");
                    for(int i = 0; i < orders.size();i++)
                        System.out.println(orders.get(i)); break;
                case 2:
                    List<List<Object>> sales = OrdersDao.getSales();
                    System.out.println("月份\t销售额");
                    for(int i = 0; i < sales.size();i++)
                        System.out.println(sales.get(i)); break;
                case 3:
                    List<List<Object>> salesCount = OrdersDao.getSalesCount();
                    System.out.println("月份\t销售数量");
                    for(int i = 0; i < salesCount.size();i++)
                        System.out.println(salesCount.get(i)); break;
                case 4:
                    List<List<Object>> salesRate = OrdersDao.getSalesRate();
                    System.out.println("品牌\t销售数量\t销售额");
                    for(int i = 0; i < salesRate.size();i++)
                        System.out.println(salesRate.get(i)); break;
                default: sc.close(); System.out.println("输入的指令不对药~~~"); return;
            }
        }
    }
}

OrdersDao.java

package Demo2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Calendar;
public class OrdersDao
{
    public static List<List<Object>> getSalesRate()
    {
        List<List<Object>> table = new ArrayList<List<Object>>();
        try
        {
            int year = getYear();
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
            PreparedStatement ps = conn.prepareStatement("select p.pro_brand,sum(op.pro_count),sum(op.pro_count*p.pro_price) "
                    + " from tb_orders o,tb_orders_product op,tb_product p "
                    + " where o.o_code=op.o_code "
                    + " and op.pro_id = p.pro_id "
                    + " and substr(o.create_date,1,4) = "+year
                    + " group by p.pro_brand ");
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                List<Object> row = new ArrayList<Object>();
                row.add(rs.getString(1));
                row.add(rs.getInt(2)+"单");
                row.add(rs.getInt(3)+"元");
                table.add(row);
            }
            rs.close();
            ps.close();
            conn.close();
            //sc.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败或数据库查询失败");
        }
        return table;
    }
    public static List<List<Object>> getSalesCount()
    {
        List<List<Object>> table = new ArrayList<List<Object>>();
        try
        {
            int year = getYear();
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
            PreparedStatement ps = conn.prepareStatement("select substr(create_date,6,2) 月份,count(1) 数量 from tb_orders"
                    + " where substr(create_date,1,4) = "+year
                    + " group by substr(create_date,6,2) "
                    + " order by substr(create_date,6,2)");
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                List<Object> row = new ArrayList<Object>();
                row.add(rs.getInt(1)+"月");
                row.add(rs.getInt(2)+"单");
                table.add(row);
            }
            rs.close();
            ps.close();
            conn.close();
            //sc.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败或数据库查询失败");
        }
        return table;
    }
    public static List<List<Object>> getSales()
    {
        List<List<Object>> table = new ArrayList<List<Object>>();
        try
        {
            int year = getYear();
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
            PreparedStatement ps = conn.prepareStatement("select substr(create_date,6,2),sum(o_total) "
                    + " from tb_orders "
                    + " where to_number(substr(create_date,1,4)) = "+year
                    + " group by substr(create_date,6,2) "
                    + " order by substr(create_date,6,2) ");
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                List<Object> row = new ArrayList<Object>();
                row.add(rs.getInt(1)+"月");
                row.add(rs.getInt(2)+"元");
                table.add(row);
            }
            rs.close();
            ps.close();
            conn.close();
            //sc.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败或数据库查询失败");
        }
        return table;
    }
    public static List<List<Object>> getOrders()
    {
        //调用sql语句,获取所有订单信息
//      String[] arr = {"第一张订单","第二张订单","第三张订单","第四张订单","第五张订单"};
//      return arr;
        List<List<Object>> table = new ArrayList<List<Object>>();
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2、获取连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
            //3、预执行
            PreparedStatement ps = conn.prepareStatement("select rownum ,o.o_code,o.o_user_account,o.create_date,"
                    + "p.pro_name,p.pro_price,op.pro_count,o.o_total "
                    + "from tb_orders o,tb_orders_product op,tb_product p "
                    + "where o.o_code=op.o_code and op.pro_id = p.pro_id");
            //4、执行
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                List<Object> row = new ArrayList<Object>();
                row.add(rs.getInt(1));
                row.add(rs.getString(2));
                row.add(rs.getString(3));
                row.add(rs.getString(4));
                row.add(rs.getString(5));
                row.add(rs.getInt(6));
                row.add(rs.getInt(7));
                row.add(rs.getInt(8));
                table.add(row);
            }
            //5、释放
            rs.close();
            ps.close();
            conn.close();
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败或数据库查询失败");
        }
    return table;
    }
    public static int getYear()
    {
        Calendar cal = Calendar.getInstance();
        int currentYear = cal.get(Calendar.YEAR);
        boolean cuye;
        int year;
        System.out.println("请输入近十年的年份:");
        do
        {
            Scanner sc = new Scanner(System.in);
            year = sc.nextInt();
            if(currentYear-5 < year && year < currentYear+5)
                break;
            else
            {
                cuye = true;
                System.out.println("输入的年份不对,重新输入:");
            }
        }while(cuye);
        return year;
    }
}

配置Apache+Tomcat服务器

接下来就是配置Apache+Tomcat服务器了,这个步骤有很多,要一步一步来
一、先把Apache+Tomcat软件准备好


apache-tomcat软件

二、解压文件
然后把他放到程序安装文件夹里面,我是放在了D盘下


解压
三、修改conf目录下的server.xml文件,按Ctrl+F查找“Connector port="8080" protocol="HTTP/1.1”,把8080端口修改为80端口
修改server.xml文件 修改8080
修改之后

四、然后打开bin目录,双击startup.bat文件,这时候会出现DOS窗口,一堆英文字母正在跑,并且窗口不会自动消失,证明服务器启动成功,不要关闭黑窗口,接下来就可以再浏览器中输入“127.0.0.1:80”或者“localhost:80”,就可以打开这样的一个页面。就证明启动成功了。如果出现黑窗口一闪而过,请看第五步。


startup.bat
黑窗口不会自动关闭 启动成功

五、事先装好JAVA并且知道JAVA的安装路径,然后右击我的电脑-属性-高级系统设置-环境变量,然后按下图步骤操作。


JAVA_HOME的配置

六、这时候我们可以关闭startup.bat黑窗口了。去Eclipse里面配置Apache+Tomcat。双击打开Eclipse,再左边右击New-Other,搜索Web选择Dynamic Web Project。


选择动态网站
七、选择我们的Apache+Tomcat8.5版本,点击Next,这时候我们的Runtime是空的,我们需要新建一个Runtime,单击New Runtime。
选择版本
空的Rubtime

八、选择Tomcat的解压目录,要记得那个路径,然后点击Browse,选择Tomcat的路径。单击Finish。


选择Tomcat目录

九、完成之后直接单击Finish,就可以在左边看到创建成功的项目,我们的html主要放在WebContent文件夹下面。


单击Finish
创建成功

十、然后再新建一个服务器,再左边空白处,右击New-Other,搜索server,点击它选择Next。


新建
搜索server

十一、我们安装的Apache+Tomcat是8.5版本所以选择8.5版本。单击Next


选择Tomcat8.5版本
十二、单击Demo01选择Add添加过去,单击Finish即可。可以看到我们的服务器已经创建成功
添加项目
Tomcat服务器

十二、选择Demo01下的WebContent文件夹,右击New-HTML File,为HTML文件命名。单击Finish就创建成功了。


新建HTML File
为HTML文件命名
十二、输入以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<!-- 表单元素 --注释快捷方式Ctrl+Shift+/,取消为Ctrl+Shift+\-->
<form action = "LoginServLet">
<!-- 文本框 -->
账号:<input type = "text" name = "account"/><br/>
<!-- 密码框 -->
密码:<input type = "password" name = "password"/><br/>
<!-- 提交按钮 -->
<input type = "submit" value = "登录"/>
</form>
</body>
</html>

十三、在菜单栏选择Window-Show View-Servers,即可显示下面的窗口。

显示服务器
十四、在服务器上右击,选择start,在Console下出现红字即运行成功。
启动服务器
运行成功
十五、在浏览器输入http://127.0.0.1:80/项目名称/文件名.html。在这里我们的应该是http://127.0.0.1/Demo01/login.html,输入就可以看到我们写的HTML代码的运行效果图了。
运行效果图
好了,今天上午的课程到此结束。

相关文章

网友评论

      本文标题:第六天上午、Java的Apache+Tomcat服务器的配置

      本文链接:https://www.haomeiwen.com/subject/bueddktx.html