• JAVA学习日报(快乐作业) 10.27


    每周三写JAVA作业好像已经成了惯例啊,另外今天也会总结昨天上课的课堂测试……当然肯定是改良过的啦。

    好,开始开始!

    课堂测试:(这期课堂测试是在上课之前开始的……)

    完成学生选课系统;

    A类

    1、学生以学号、密码登录,登录成功后跳转到选课界面,选课界面包括课程名称、教师名称、上课地点等信息,点击选课按钮,显示选课成功。 2、后台增加用户信息表、选课表(学号、课程名称、教师名称、上课地点)

    B类

    1、直接在上次界面上添加学号文本框、选课按钮,提交到选课表,后台增加选课表。

    自选其中一个完成

    应对这个题目我写了5个界面,分别是用于登录的index.jsp、作为用户主菜单的Next1.jsp、作为选课界面的Proto.jsp、将信息写入数据库的next.jsp以及查询选课结果的logo.jsp。

    源代码如下:

    index.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>添加课程</title>
    <script type="text/javascript">  
         function checkaccount() {  
             var x=document.getElementById("account").value;
             if(x.length>20) {  
                  alert("用户账户位数不能大于20")
                  document.getElementById("account").value = "";
             }
         }
         function checkpwd() {  
             var x=document.getElementById("password").value;
             if(x.length>20) {  
                  alert("密码最大只有20位")
                  document.getElementById("password").value = "";
             }
         }
         function Checka(){
              var Username = document.getElementById("account").value;
              if (Username == "" || account.value == null ) {
                    alert("用户名不能为空");
                }
         }
         function Checkp(){
              var Username = document.getElementById("password").value;
              if (Username == "" || password.value == null ) {
                    alert("密码不能为空");
                }
         }
    
            </script>
    </head>
    <body style="text-align:center;">
    <br><br><br>
    <form name="form2" action="Next1.jsp" method="post"> 
    学号 <input type="text" name="account" id="account" onblur="checkaccount()"><br><br>
    密码 <input type="password" name="password" id="password" onblur="checkpwd()"><br><br>
    <input type="submit" value="登录">
    </form>
    </body>
    </html>

    Next1.jsp:

    <%@ page language="java" import="java.util.*" import="java.text.*" import ="java.sql.*" pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>上课计划</title>
    </head>
    <body style="text-align:center;">
    <br><br><br>
    <pre>
    <%
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root","260702266");
        Statement state=connect.createStatement();
        int i=0;int result=1;
        try{
        String name=new String(request.getParameter("account").getBytes("ISO-8859-1"),"utf-8");
        String teacher=new String(request.getParameter("password").getBytes("ISO-8859-1"),"utf-8");
        ResultSet rs = state.executeQuery("select count(*) from account where account='"+name+"'and password='"+teacher+"'");
        rs.next();
        result = rs.getInt(1);
        session.setAttribute("account",name);
        }catch(Exception e)
        {}
        if(result!=0){
            out.println("用户"+(String)session.getAttribute("account")+",欢迎使用选课系统");
    %>
    <br>
    <form name="form23" action="Proto.jsp" method="post"> 
    <input type="submit" value="选课!">
    </form>
    <form name="form23" action="logo.jsp" method="post"> 
    <input type="submit" value="查询选课结果">
    </form>
    <%  
        }
        else
        {out.println("用户名或密码错误");}
    %>
    <form name="form3" action="index.jsp" method="post"> 
    <input type="submit" value="重新登录">
    </form>
    </pre>
    </body>
    </html>

    Proto.jsp:

    <%@ page language="java" import="java.util.*" import="java.text.*" import ="java.sql.*" pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>添加处理中……</title>
    </head>
    <body style="text-align:center;">
    <br><br><br>
    <pre>
    <%
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root","260702266");
        Statement state=connect.createStatement();
        int i=0;
    %>
    
    <form name="form3" action="next.jsp" method="post"> 
    <% ResultSet rsp = state.executeQuery("select * from class");
    for (int g=0;rsp.next();g++) {%>
    <input type="radio" name="degree" value="<%=g %>" >  选这个
           <%
               out.println("");
               out.println("课程名称:"+rsp.getString("name"));
               out.println("任课教师:"+rsp.getString("teacher"));
               out.println("上课地点:"+rsp.getString("place")+"
    ");
           %>
    <%} %>
    <input type="submit" value="选完啦!">
    </form>
    </pre>
    </body>
    </html>

    next.jsp:

    <%@ page language="java" import="java.util.*" import="java.text.*" import ="java.sql.*" pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>上课计划</title>
    </head>
    <body style="text-align:center;">
    <br><br><br>
    <pre>
    <%
       Class.forName("com.mysql.cj.jdbc.Driver");
       Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root","260702266");
       Statement state=connect.createStatement();
       ResultSet rs = state.executeQuery("select count(*) from class");
       rs.next();
       int result = rs.getInt(1);
       int one= Integer.parseInt(request.getParameter("degree"));
       String str=(String)session.getAttribute("account");
       switch(one){
       case 0:
           state.executeUpdate("INSERT INTO class2 VALUES ('C++','刘立嘉','一教','"+str+"')");
           break;
       case 1:
           state.executeUpdate("INSERT INTO class2 VALUES ('JAVA','王建民','基教','"+str+"')");
           break;
       case 2:
    
           state.executeUpdate("INSERT INTO class2 VALUES ('数据结构','刘丹','三教','"+str+"')");
           break;
       }
       out.print("选课成功!");
    %>
    <form name="form3" action="Next1.jsp" method="post"> 
    <input type="submit" value="返回主页面">
    </form>
    </pre>
    </body>
    </html>

    logo.jsp:

    <%@ page language="java" import="java.util.*" import="java.text.*" import ="java.sql.*" pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>上课计划</title>
    </head>
    <body style="text-align:center;">
    <br><br><br>
    <pre>
    <%
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root","260702266");
        Statement state=connect.createStatement();
        int i=0;
        String str=(String)session.getAttribute("account");
        ResultSet rs = state.executeQuery("select count(*) from class2 where account='"+str+"'");
        rs.next();
        int result = rs.getInt(1);
        if(result!=0)
        {
            out.println("用户"+str+"的选课记录如下
    ");
            ResultSet rsp = state.executeQuery("select * from class2 where account='"+str+"'");
            for(;rsp.next();)
            {
                out.println(rsp.getString("name"));
                out.println(rsp.getString("teacher"));
                out.println(rsp.getString("place")+"
    ");
            }
        }
        else{
            out.println("您还没有选课记录哦!");
        }
    %>
    <form name="form3" action="Next1.jsp" method="post"> 
    <input type="submit" value="返回主页面">
    </form>
    </pre>
    </body>
    </html>

    运行效果如下:

    登录:

     跳转至主界面:

     选课:

     

     查询已有的选课结果:

    从数据库中查看:

     如果胡乱输入账户密码会提示:

     

    如果选择了重复的课程也会提示:

     

     未来可能还会加点什么退课重选获取选课时间排序之类的,不过那都是后话啦

    动手动脑1、2:(这两个明显一个事我就把它们放一起了)

    Finally这个东西虽说是“必定会执行的语句”,但它本身其实还是try的附属品,如果try根本就没被执行,Finally也会被跳过,而且其执行的先后顺序也和try片段的执行顺序相同

    比如下面的代码:

    package test;
    
    public class EmbededFinally 
    {
        public static void main(String args[]) 
        {        
            int result;   
            try 
            {            
                System.out.println("in Level 1"); 
                 try 
                {                
                    System.out.println("in Level 2");
                     result=100/0;  //Level 2
                     try 
                    {                   
                         System.out.println("in Level 3");                      
                         //result=100/0;  //Level 3                
                    }                 
                    catch (Exception e) 
                    {                    
                        System.out.println("Level 3:" + e.getClass().toString());                
                    }               
                    finally 
                    {
                        System.out.println("In Level 3 finally");
                    }
                    // result=100/0;  //Level 2            
                    }
                catch (Exception e) 
                {
                     System.out.println("Level 2:" + e.getClass().toString());
                 }
                 finally 
                {
                    System.out.println("In Level 2 finally");
                 }
                // result = 100 / 0;  //level 1
            } 
            catch (Exception e) 
            {   
                System.out.println("Level 1:" + e.getClass().toString());
            }
            finally 
            {
                 System.out.println("In Level 1 finally");        
            }    
        }
    }

    运行结果为:

     可以看到,错误于2中出现,3被跳过,因此3的finally也并没有执行,另外,会先运行当前正在运行的try的finally

    好,结束!

  • 相关阅读:
    深入理解JavaScript系列(4):立即调用的函数表达式
    深入理解JavaScript系列(3):全面解析Module模式
    深入理解JavaScript系列(2):揭秘命名函数表达式
    深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
    深入理解JavaScript系列
    大白话讲解Promise(一)
    《你不知道的JavaScript》整理(二)——this
    Mysql日期时间大全
    Mysql的时间和日期
    mysql命令大全用户管理相关命令
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/13917360.html
Copyright © 2020-2023  润新知