美文网首页
第六天上午、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