2024/2/6日 日志 期末考试案例回顾与分析---》综合案例(10)

CSS
login.css

点击查看代码
* {
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
    width: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
    background: url("../imgs/flower.png")no-repeat 0px 0px;
    background-repeat: no-repeat;
    background-attachment: fixed;

    background-size: 100% 100%;
    -moz-background-size: 100% 100%;
}

body {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

#loginDiv {
    width: 37%;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 380px;
    background-color: rgba(75, 81, 95, 0.3);
    box-shadow: 7px 7px 17px rgba(52, 56, 66, 0.5);
    border-radius: 5px;
}

#name_trip {
    margin-left: 50px;
    color: red;
}

p {
    margin-top: 30px;
    margin-left: 20px;
    color: azure;
}


#remember{
    margin-left: 15px;
    border-radius: 5px;
    border-style: hidden;
    background-color: rgba(216, 191, 216, 0.5);
    outline: none;
    padding-left: 10px;
    height: 20px;
    width: 20px;
}
#username{
    width: 200px;
    margin-left: 15px;
    border-radius: 5px;
    border-style: hidden;
    height: 30px;
    background-color: rgba(216, 191, 216, 0.5);
    outline: none;
    color: #f0edf3;
    padding-left: 10px;
}
#password{
    width: 202px;
    margin-left: 15px;
    border-radius: 5px;
    border-style: hidden;
    height: 30px;
    background-color: rgba(216, 191, 216, 0.5);
    outline: none;
    color: #f0edf3;
    padding-left: 10px;
}
.button {
    border-color: cornsilk;
    background-color: rgba(100, 149, 237, .7);
    color: aliceblue;
    border-style: hidden;
    border-radius: 5px;
    width: 100px;
    height: 31px;
    font-size: 16px;
}

#subDiv {
    text-align: center;
    margin-top: 30px;
}
#loginMsg{
    text-align: center;
    color: aliceblue;
}
#errorMsg{
    text-align: center;
    color:red;
}
点击查看代码
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* 添加此行以更好地处理盒模型 */
}

body {
    background: url("../imgs/flower.png")no-repeat 0px 0px;
    background-repeat: no-repeat;
    background-attachment: fixed;
    text-align: center;
    font-family: Arial, sans-serif; /* 添加字体 */
}

.form-div {
    background-color: rgba(255, 255, 255, 0.9); /* 增加背景的不透明度 */
    border-radius: 10px;
    border: 1px solid #aaa;
    width: 424px;
    margin: 150px auto; /* 使用 auto 居中 */
    padding: 30px 20px; /* 为顶部和底部增加内边距 */
    box-shadow: inset 0px 0px 10px rgba(255, 255, 255, 0.5), 0px 0px 15px rgba(75, 75, 75, 0.3);
    text-align: left;
}

h1 {
    margin-bottom: 20px; /* 为标题增加下边距 */
    color: #333; /* 增加标题颜色 */
}

table {
    width: 100%; /* 表格宽度为100% */
    margin: 20px 0; /* 为表格增加上下边距 */
}

td {
    padding: 15px; /* 增加单元格内边距 */
}

.inputs {
    vertical-align: top;
}

input[type="text"], input[type="password"], input[type="email"] {
    width: calc(100% - 22px); /* 计算宽度以适应内边距 */
    padding: 10px;
    border-radius: 8px;
    box-shadow: inset 0 2px 5px #eee;
    border: 1px solid #D4D4D4;
    color: #333;
    margin-top: 5px;
}

input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus {
    border: 1px solid #50afeb;
    outline: none;
}

input[type="button"], input[type="submit"] {
    padding: 10px 15px;
    background-color: #3c6db0;
    border-radius: 5px;
    border: none;
    color: #FFF;
    cursor: pointer; /* 更改鼠标指针 */
    transition: background-color 0.3s; /* 添加过渡效果 */
}

input[type="button"]:hover, input[type="submit"]:hover {
    background-color: #5a88c8;
}

.err_msg {
    color: red;
    margin-top: 5px; /* 增加顶部间距 */
}

.footer {
    color: rgba(64, 64, 64, 1.00);
    font-size: 12px;
    margin-top: 30px;
}

.buttons {
    text-align: right; /* 右对齐按钮 */
}

#checkCodeImg {
    vertical-align: middle; /* 垂直对齐 */
    cursor: pointer;
    margin-left: 10px; /* 为验证码图片和输入框之间添加间距 */
}

#changeImg {
    color: aqua;
    cursor: pointer; /* 更改鼠标指针 */
    margin-left: 5px; /* 为更换验证码链接和验证码图片之间添加间距 */
    vertical-align: middle; /* 确保更换验证码链接在垂直方向上居中 */
}
table {
    width: 100%;
    margin: 20px 0;
    border-spacing: 0; /* 去除表格单元格之间的间隙 */
}
td:first-child {
    width: 90px; /* 为标签列设置固定宽度 */
    text-align: right; /* 标签右对齐 */
    padding-right: 10px; /* 为标签和输入框之间添加间距 */
}
tr {
    display: flex;
    justify-content: space-between; /* 使td标签分散对齐 */
    align-items: center; /* 使td标签在交叉轴上居中对齐 */
}
.inputs {
    flex-grow: 1; /* 使输入框区域占据剩余空间 */
    text-align: left; /* 输入框左对齐 */
}


styles.css
点击查看代码
/* Reset some basic styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    background-color: #f4f4f4;
    color: #333;
    padding: 20px;
    text-align: center;
    background-image: url("../imgs/flower.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* Links styles */
a {
    text-decoration: none;
    color: #3c6db0;
    transition: color 0.3s;
}

a:hover {
    color: #5a88c8;
}

/* Headings */
h1 {
    margin-bottom: 20px;
}

/* Table styles */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

table, th, td {
    border: 1px solid #ddd;
}

th, td {
    padding: 8px;
    text-align: left;
}

th {
    background-color: #f2f2f2;
}

/* Form styles */
form {
    max-width: 600px;
    margin: 20px auto;
    padding: 20px;
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    text-align: left;
}

input[type="text"], input[type="password"], input[type="email"], input[type="date"], select, textarea {
    width: 100%;
    padding: 10px;
    margin: 8px 0;
    border: 1px solid #ccc;
    border-radius: 4px;
}

input[type="submit"], input[type="button"] {
    background-color: #5cb85c;
    color: white;
    border: none;
    padding: 10px 15px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s;
}

input[type="submit"]:hover, input[type="button"]:hover {
    background-color: #4cae4c;
}

/* Error message styles */
.err_msg {
    color: red;
    padding-right: 170px;
}

/* Responsive design */
@media (max-width: 600px) {
    form {
        width: auto;
    }
}
/* Navigation bar styles */
nav {
    background: none; /* 移除背景颜色 */
    padding: 10px 0;
    text-align: center;
}

nav ul {
    list-style: none;
    display: inline-block;
    margin: 0;
    padding: 0;
    background: rgba(255, 255, 255, 0.2); /* 半透明背景 */
    border-radius: 5px; /* 圆角边框 */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); /* 轻微的阴影 */
}

nav ul li {
    display: inline-block; /* 使用inline-block以保持布局 */
    margin: 0 5px; /* 为按钮添加间隔 */
}

nav ul li a {
    color: #fff;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 5px;
    transition: background 0.3s, transform 0.3s;
    display: inline-block;
    background: rgba(0, 0, 0, 0.5); /* 半透明背景 */
}

nav ul li a:hover {
    background: rgba(0, 0, 0, 0.7); /* 鼠标悬停时更深的背景 */
    transform: translateY(-2px); /* 鼠标悬停时按钮上移 */
}

nav ul li a:active {
    background: rgba(0, 0, 0, 0.9); /* 点击时更深的背景 */
    transform: translateY(2px); /* 点击时按钮下移 */
}
/* 透明框框的基本样式 */
.transparent-box {
    background-color: rgba(255, 255, 255, 0.2); /* 半透明背景 */
    border: 2px solid transparent; /* 透明边框 */
    border-radius: 10px; /* 圆角边框 */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); /* 轻微的阴影,增加立体感 */
    padding: 20px; /* 内边距 */
    margin: 20px auto; /* 外边距,自动居中 */
    max-width: 600px; /* 最大宽度 */
    transition: box-shadow 0.3s; /* 阴影过渡效果 */
}

/* 鼠标悬停时的效果 */
.transparent-box:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); /* 鼠标悬停时阴影更明显 */
}

/* 输入框和按钮的样式 */
.transparent-box input[type="text"],
.transparent-box input[type="password"],
.transparent-box input[type="email"],
.transparent-box input[type="date"],
.transparent-box select,
.transparent-box textarea,
.transparent-box input[type="submit"] {
    width: 100%; /* 宽度100% */
    padding: 10px; /* 内边距 */
    margin-top: 5px; /* 上边距 */
    border: 1px solid #ccc; /* 边框颜色 */
    border-radius: 5px; /* 圆角边框 */
    box-sizing: border-box; /* 边框盒模型 */
}

/* 提交按钮的样式 */
.transparent-box input[type="submit"] {
    background-color: #5cb85c; /* 背景颜色 */
    color: white; /* 文字颜色 */
    border: none; /* 无边框 */
    cursor: pointer; /* 鼠标手型 */
    transition: background-color 0.3s; /* 背景色过渡 */
}

.transparent-box input[type="submit"]:hover {
    background-color: #4cae4c; /* 鼠标悬停时背景色变深 */
}
.row-unapproved {
    background-color: #ffffcc; /* 未审批行的背景色 */
}

.row-approved {
    background-color: #ccffcc; /* 已审批行的背景色 */
}
imgs ![](https://img2024.cnblogs.com/blog/3478956/202502/3478956-20250218090255865-1839213607.jpg) ![](https://img2024.cnblogs.com/blog/3478956/202502/3478956-20250218090303537-1872452379.jpg) ![](https://img2024.cnblogs.com/blog/3478956/202502/3478956-20250218090326434-1312686168.png) ![](https://img2024.cnblogs.com/blog/3478956/202502/3478956-20250218090336327-1227658669.jpg)

jsp
DRdetails.jsp

点击查看代码
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
    <title>日报详细信息</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
<%
    // 从请求参数中获取日报ID
    String idParam = request.getParameter("id");
    // 从会话中获取当前用户
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    // 使用StudentService获取日报详细信息
    StudentService service = new StudentService();
    DailyReport dailyReport = service.getDailyReportById(Integer.parseInt(idParam));
    // 检查日报是否存在以及是否属于当前用户
    if (dailyReport == null || !dailyReport.getStuno().equals(Integer.parseInt(currentUser.getUsername()))) {
        // 如果日报不存在或不属于当前用户,重定向到日报列表页面
        response.sendRedirect("searchPersonalDR.jsp");
        return;
    }
%>
<h1>日报详细信息</h1>
<div>
    <div class="transparent-box">
    <strong>发表时间:</strong> <%= dailyReport.getPublishDate() %><br>
    <strong>所花时间:</strong> <%= dailyReport.getSpentTime() %> 小时<br>
    <strong>代码量:</strong> <%= dailyReport.getCodeamount() %> 行<br>
    <strong>博客量:</strong> <%= dailyReport.getBlogsnumber() %> 篇<br>
    <strong>了解到的知识点:</strong> <%= dailyReport.getKnowledgePoints() %><br>
    <strong>日报状态:</strong> <%= dailyReport.getState() %><br>
    <% if (dailyReport.getState().equalsIgnoreCase("待审批") || dailyReport.getState().equalsIgnoreCase("退回")) { %>
    <strong>日报评语:</strong> <%= dailyReport.getStateReason() %><br>
    <% } %>
    </div>
</div>
<div class="transparent-box">
    <a href="personalHome.jsp">返回</a>
</div>
</body>
</html>
DRList.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.Moonbeams.pojo.UserInfo" %>
<%@ page isELIgnored="false" %>

<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<DailyReport> dailyReports = new ArrayList<DailyReport>();
    if(currentUser.getIdentify().equals("学生")) {
        dailyReports = service.getAllDailyReportByStuno(Integer.parseInt(currentUser.getUsername()));
    }else if(currentUser.getIdentify().equalsIgnoreCase("教师")){
        dailyReports = service.getAllDailyReport();
    }
%>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <meta charset="UTF-8">
    <title>日报列表</title>
</head>
<body>
<h1>日报列表</h1>
<table id="dailyReportsTable" border="1">
    <tr>
        <th>发表时间</th>
        <th>所花时间</th>
        <th>代码量(行)</th>
        <th>博客量(篇)</th>
        <th>了解到的知识点</th>
        <%if(currentUser.getIdentify().equalsIgnoreCase("学生")){%>
        <th>日报状态</th>
        <th>日报评分</th>
        <th>日报评语/审批理由</th>
        <%}%>
    </tr>
    <%
        if (dailyReports != null) {
            for (DailyReport dailyReport : dailyReports) {
                String rowClass = "row"; // Add this line
                if ("空".equals(dailyReport.getStateReason())||dailyReport.getDailyScore() == 0) {
                    rowClass = "row-unapproved"; // Add this line
                }
    %>
        <tr class="<%= rowClass %>">
<%--    <tr>--%>
        <td><%= dailyReport.getPublishDate() %></td>
        <td><%= dailyReport.getSpentTime() %></td>
        <td><%= dailyReport.getCodeamount() %></td>
        <td><%= dailyReport.getBlogsnumber() %></td>
        <td><%= dailyReport.getKnowledgePoints() %></td>
    <%if(currentUser.getIdentify().equalsIgnoreCase("学生")){%>
    <td><%= dailyReport.getState() %></td>
    <td><%= dailyReport.getDailyScore() %></td>
    <td><%= dailyReport.getStateReason() %></td>
    <%}%>
        <td>
            <%if(currentUser.getIdentify().equalsIgnoreCase("学生")){%>

            <%if(dailyReport.getState().equalsIgnoreCase("待审批")||"退回".equals(dailyReport.getState())){%>
            <form action="modifyDR.jsp" method="post">
                <input type="hidden" name="id" value="<%= dailyReport.getId() %>">
                <input type="submit" value="修改">
            </form>
            <form action="studentServlet" method="post">
                <input type="hidden" name="action" value="deleteDR">
                <input type="hidden" name="id" value="<%= dailyReport.getId() %>">
                <input type="submit" value="删除">
            </form>
            <%}
            }else if(currentUser.getIdentify().equalsIgnoreCase("教师")){%>
            <form action="teacherServlet" method="post">
                <input type="hidden" name="action" value="scoreDR">
                <input type="hidden" name="id" value="<%= dailyReport.getId() %>">
                <label>
                    <input type="text" name="score" placeholder="得分">
                </label>
                <label>
                    <input type="text" name="reason" placeholder="评语">
                </label>
                <input type="submit" value="评分">
            </form>
            <%}%>
        </td>
    </tr>
    <%  }
    }
    %>
</table>
<br>
<div class="transparent-box">
    <a href="insertDR.jsp">新增日报</a>
</div>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
DRStateR.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.Moonbeams.pojo.UserInfo" %>
<%@ page isELIgnored="false" %>

<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<DailyReport> dailyReports = new ArrayList<DailyReport>();
    List<DailyReport> dailyReportss = new ArrayList<DailyReport>();
        UserInfo userInfo1 = service.selectUserInfoById(Integer.parseInt(currentUser.getUsername()));
        List<UserInfo> userInfos = service.selectUserInfoBygroupno(userInfo1.getGroupno());

        for(UserInfo userInfo : userInfos) {
            dailyReportss.addAll(service.getAllDailyReportByStuno(userInfo.getUserID()));
        }
        dailyReports = dailyReportss;
%>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <meta charset="UTF-8">
    <title>日报列表</title>
</head>
<body>
<h1>日报列表</h1>
<table id="dailyReportsTable" border="1">
    <tr>
        <th>发表时间</th>
        <th>所花时间</th>
        <th>代码量(行)</th>
        <th>博客量(篇)</th>
        <th>了解到的知识点</th>

    </tr>
    <%
        if (dailyReports != null) {
            for (DailyReport dailyReport : dailyReports) {
                String rowClass = "row"; // Add this line
                if ("待审批".equals(dailyReport.getState())||"退回".equals(dailyReport.getState())) {
                    rowClass = "row-unapproved"; // Add this line
                }
    %>
    <tr class="<%= rowClass %>">
        <%--    <tr>--%>
        <td><%= dailyReport.getPublishDate() %></td>
        <td><%= dailyReport.getSpentTime() %></td>
        <td><%= dailyReport.getCodeamount() %></td>
        <td><%= dailyReport.getBlogsnumber() %></td>
        <td><%= dailyReport.getKnowledgePoints() %></td>
        <td>
            <%if(dailyReport.getState().equalsIgnoreCase("待审批")){%>
            <form action="studentServlet" method="post">
                <input type="hidden" name="action" value="ReState">
                <input type="hidden" name="id" value="<%= dailyReport.getId() %>">
                <input type="text" name="reason" placeholder="审批理由">
                <input type="submit" value="通过">
            </form>
            <form action="studentServlet" method="post">
                <input type="hidden" name="action" value="ReState2">
                <input type="hidden" name="id" value="<%= dailyReport.getId() %>">
                <input type="text" name="reason" placeholder="审批理由">
                <input type="submit" value="退回">
            </form>
            <%}%>
        </td>
    </tr>
    <%  }
    }
    %>
</table>
<br>
<div class="transparent-box">
    <a href="insertDR.jsp">新增日报</a>
</div>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
error.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
    <meta charset="UTF-8">
    <title>错误</title>
</head>
<body>
<h1>错误</h1>
<%
    String errorMessage = (String) request.getAttribute("error");
    String redirectUrl = "personalHome.jsp"; // 默认
    if (errorMessage != null) {
%>
<p><%= errorMessage %></p>
<%
} else {
%>
<p>发生了一些错误,请重试。</p>
<%

%>
<%
    // 获取返回的URL标识符
    String returnUrl = (String) request.getAttribute("returnUrl");
    redirectUrl = "https://www.bilibili.com/video/BV1Qf4y1T7Hx/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click"; // 默认

    // 根据returnUrl的值判断应该重定向到哪个页面
    if ("".equals(returnUrl)) {
        redirectUrl = ".jsp";
    } else if ("".equals(returnUrl)) {
        redirectUrl = ".jsp";
    }
    }%>

<div class="transparent-box">
    <a href="<%= redirectUrl %>">返回</a>
</div>
</body>
</html>
IMList.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.Moonbeams.pojo.InternalMessage" %>
<%@ page isELIgnored="false" %>

<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<InternalMessage> internalMessages = service.getAllInternalMessages();
%>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <meta charset="UTF-8">
    <title>站内消息列表</title>
</head>
<body>
<h1>站内消息列表</h1>
<table id="dailyReportsTable" border="1">
    <tr>
        <th>站内编号</th>
        <th>消息类别</th>
        <th>发送人姓名</th>
        <th>发送人编码</th>
        <th>接收人姓名</th>
        <th>接收人编码</th>
        <th>消息内容</th>
        <th>状态</th>
    </tr>
    <%
        if (internalMessages != null) {
            for (InternalMessage internalMessage : internalMessages) {
                String rowClass = "row"; // Add this line
                if ("未读".equals(internalMessage.getState())) {
                    rowClass = "row-unapproved"; // Add this line
                }
    %>
    <tr class="<%= rowClass %>">
        <%--    <tr>--%>
        <td><%= internalMessage.getId() %></td>
            <td><%= internalMessage.getId() %></td>
            <td><%= internalMessage.getCategory() %></td>
            <td><%= internalMessage.getSenderName() %></td>
            <td><%= internalMessage.getSenderNo() %></td>
            <td><%= internalMessage.getReceiverName() %></td>
            <td><%= internalMessage.getSenderNo() %></td>
            <td><%= internalMessage.getState() %></td>
        <td>
            <%if(internalMessage.getState().equalsIgnoreCase("未读")){%>
            <form action="studentServlet" method="post">
                <input type="hidden" name="action" value="IMread">
                <input type="hidden" name="id" value="<%= internalMessage.getId() %>">
                <input type="submit" value="查看">
            </form>
            <%}%>
        </td>
    </tr>
    <%  }
    }
    %>
</table>
<br>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
index.jsp
点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
    <title>每日总结管理系统</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>每日总结管理系统</h1>
<h2>欢迎使用每日总结管理系统!(*^▽^*)</h2>
<nav>
    <ul>
        <li><a href="login.jsp">登录</a></li>
        <li><a href="register.jsp">注册</a></li>
    </ul>
</nav>
</body>
</html>
insertDR.jsp
点击查看代码
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<DailyReport> dailyReports = service.getAllDailyReport();
    Integer id = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String today = sdf.format(new Date());
    if(dailyReports != null && !dailyReports.isEmpty()) {
        id = dailyReports.get(dailyReports.size()-1).getId() + 1;
    }else{
        id = 2024001;
    }
%>
<html>
<head>
    <title>新增日报信息</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>

<script>
    function submitDailyReport() {
        var spentTime = $('#spentTime').val();
        var codeAmount = $('#codeamount').val();
        var blogsNumber = $('#blogsNumber').val();
        var knowledgePoints = $('#knowledgePoints').val();
        var publishDate = $('#publishDate').val();

        // 检查必填字段是否为空
        if (!spentTime || !codeAmount || !blogsNumber || !knowledgePoints) {
            alert('请填写所有必填字段!');
            return; // 退出函数,阻止提交
        }


        // 发送 AJAX 请求检查是否已提交日报
        $.ajax({
            url: 'studentServlet', // 替换为你的Servlet路径
            method: 'POST',
            data: {
                action: 'checkDailyReport',
                publishDate: publishDate,
            },
            success: function(response) {
                if (response === 'true') {
                    alert('今日已发表,不允许重复发表!');
                } else {
                    // 如果没有发表,提交表单
                    $('#dailyReportForm').submit();
                }
            },
            error: function() {
                alert('检查日报是否已发表时发生错误,请重试。');
            }
        });
    }
</script>
<body>
<h1>新增日报信息</h1>
<form id="dailyReportForm" action="studentServlet" method="post">
    <input type="hidden" name="action" value="addDR">
    <input type="hidden" id="id" name="id" value="<%= id %>">
    <label for="publishDate">发表时间:</label><input type="date" id="publishDate" name="publishDate" value="<%= today %>" readonly><br><br>

    <label for="spentTime">所花时间(小时):</label>
    <input type="text" id="spentTime" name="spentTime" required><br><br>
    <label for="codeamount">代码量(行):</label>
    <input type="number" id="codeamount" name="codeamount" required><br><br>
    <label for="blogsNumber">博客量(篇):</label>
    <input type="number" id="blogsNumber" name="blogsNumber" required><br><br>

    <label for="knowledgePoints">了解到的知识点:</label>
    <input type="text" id="knowledgePoints" name="knowledgePoints" required><br><br>

    <input type="button" value="提交" onclick="submitDailyReport()">
</form>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
insertIM.jsp
点击查看代码
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.pojo.InternalMessage" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<InternalMessage> internalMessages = service.getAllInternalMessages();
    Integer id = null;
    if(internalMessages != null && !internalMessages.isEmpty()) {
        id = internalMessages.get(internalMessages.size()-1).getId() + 1;
    }else{
        id = 202401;
    }
%>
<html>
<head>
    <title>发送消息</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>发送消息</h1>
<%if(currentUser.getIdentify().equalsIgnoreCase("小组长")){%>
<form action="studentServlet" method="post">
    <%}else if(currentUser.getIdentify().equalsIgnoreCase("教师")){%>
        <form  action="teacherServlet" method="post">
    <%}%>
    <input type="hidden" name="action" value="addIM">
    <input type="hidden" id="id" name="id" value="<%= id %>">
    <label for="category">消息类别:</label><input type="text" id="category" name="category"required><br><br>
    <label for="content">消息内容:</label>
    <input type="text" id="content" name="content" required><br><br>
    <label for="receiverNo">接收人编码:</label>
    <input type="text" id="receiverNo" name="receiverNo" required><br><br>
    <input type="submit" value="提交">
</form>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
login.jsp
点击查看代码
<%--
  Created by IntelliJ IDEA.
  User: 20713
  Date: 2024/11/10
  Time: 22:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>login</title>
  <link rel="stylesheet" type="text/css" href="css/login.css"> <!-- 可选的样式文件 -->
</head>

<body>
<div id="loginDiv" style="height: 350px">
  <form action="loginServlet" id="form">
    <h1 id="loginMsg">登 录</h1>
    <div id="errorMsg">${login_msg} ${register_msg}</div>
    <p>Username:<input id="username" name="username" value= "${cookie.username.value}" type="text"></p>
    <p>Password:<input id="password" name="password" value="${cookie.password.value}" type="password"></p>
    <p>Remember:<input id="remember" name="remember" value="1" type="checkbox"></p>
    <div id="subDiv">
      <input type="submit" class="button" value="login up">
      <input type="reset" class="button" value="reset">&nbsp;&nbsp;&nbsp;
      <a href="register.jsp">没有账号?</a>
    </div>
  </form>
</div>

</body>
</html>

logout.jsp

点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    session.invalidate(); // 清除 session
    response.sendRedirect("login.jsp"); // 重定向到登录页面
%>

modifyDR.jsp
点击查看代码
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.pojo.UserInfo" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();

    DailyReport dailyReport = service.getDailyReportById(Integer.parseInt(request.getParameter("id")));
%>
<html>

<head>
    <title>修改日报信息</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>修改日报信息</h1>
<form action="studentServlet" method="post">
    <input type="hidden" name="action" value="modifyDR">
    <input type="hidden" id="id" name="id" value="<%= dailyReport.getId() %>">
    <label for="publishDate">发表时间:</label><input type="date" id="publishDate" name="publishDate" value="<%= dailyReport.getPublishDate() %>" readonly><br><br>

    <label for="spentTime">所花时间(小时):</label>
    <input type="text" id="spentTime" name="spentTime" value="<%= dailyReport.getSpentTime()%>" required><br><br>
    <label for="codeamount">代码量(行):</label>
    <input type="number" id="codeamount" name="codeamount" value="<%= dailyReport.getCodeamount()%>" required><br><br>
    <label for="blogsNumber">博客量(篇):</label>
    <input type="number" id="blogsNumber" name="blogsNumber" value="<%=dailyReport.getBlogsnumber()%>" required><br><br>

    <label for="knowledgePoints">了解到的知识点:</label>
    <input type="text" id="knowledgePoints" name="knowledgePoints" value="<%= dailyReport.getKnowledgePoints()%>" required><br><br>

    <input type="submit" value="提交">
</form>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
personalHome.jsp
点击查看代码
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    String currentUsername = currentUser.getUsername();
%>


<html>
<head>
    <title>每日总结管理系统-->主页</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>每日总结管理系统</h1>
<h2>
    <%if(currentUser.getIdentify().equalsIgnoreCase("学生")){%>
    <%=currentUsername%>,学生,你好!</h2>
<nav>
    <ul>
        <li><a href="insertDR.jsp">写日报</a></li>
        <li><a href="DRList.jsp">修改日报</a></li>
        <li><a href="DRList.jsp">删除日报</a></li>
        <li><a href="DRList.jsp"> 浏览日报</a></li>
        <li><a href="searchPersonalDR.jsp">查询个人日报</a></li>
        <li><a href="IMList.jsp">查看站内消息</a></li>
    </ul>
</nav>
<%}else if(currentUser.getIdentify().equalsIgnoreCase("小组长")){%>
<h2>
    <%=currentUsername%>,小组长,你好!</h2>
<nav>
    <ul>
        <li><a href="DRStateR.jsp">日报形式审核</a></li>
        <li><a href="statisticsDR.jsp">当天发表情况统计</a></li>
        <li><a href="insertIM.jsp">发送消息</a></li>
        <li><a href="searchPersonalDR.jsp">查询日报</a></li>
    </ul>
</nav>
<%}else if(currentUser.getIdentify().equalsIgnoreCase("教师")){%>
<h2>
    <%=currentUsername%>,教师,你好!</h2>
<nav>
    <ul>
        <li><a href="DRList.jsp">日报评分</a></li>
        <li><a href="statisticsDR.jsp">发布统计查询</a></li>
        <li><a href="insertIM.jsp">发送消息</a></li>
        <li><a href="searchPersonalDR.jsp">查询日报</a></li>
        <li><a href="studentList.jsp">任命小组长</a></li>
    </ul>
</nav>
<%}%>
<nav>
    <ul>
        <li><a href="login.jsp">重新登录</a></li>
    </ul>
</nav>
</body>
</html>
register.jsp
点击查看代码
<%@ page import="com.Moonbeams.pojo.User" %><%--
  Created by IntelliJ IDEA.
  User: 20713
  Date: 2024/11/11
  Time: 21:03
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>欢迎注册</title>
  <link rel="stylesheet" type="text/css" href="css/register.css"> <!-- 可选的样式文件 -->
</head>
<body>

<div class="form-div">
  <div class="reg-content">
    <h1>欢迎注册</h1>
    <span>已有帐号?</span> <a href="login.jsp">登录</a>
  </div>
  <form id="reg-form" action="registerServlet" method="post">

    <table>
      <tr>
        <td>用户名</td>
        <td class="inputs">
          <input required name="username" type="text" id="username">
          <br>
          <span id="username_err" class="err_msg" >${register_msg}</span>
        </td>

      </tr>

      <tr>
        <td>密码</td>
        <td class="inputs">
          <input required name="password" type="password" id="password">
          <br>
          <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
        </td>
      </tr>
      <tr>
        <td>姓名</td>
        <td class="inputs">
          <input required name="name" type="text" id="name">
          <br>
          <span id="name_err" class="err_msg" style="display: none">姓名填写有误</span>
        </td>
      </tr>

      <tr>
        <td>身份</td>
        <td class="inputs">
          <input required name="identify" type="text" id="identify">
          <br>
          <span id="identify_err" class="err_msg" style="display: none">身份填写有误</span>
        </td>
      </tr>

      <tr>
        <td>验证码</td>
        <td class="inputs">
          <input name="checkCode" type="text" id="checkCode">
          <img id ="checkCodeImg" src="/finalTest/checkCodeServlet">
          <a href="#" id="changeImg">看不清?</a>
        </td>
      </tr>

    </table>

    <div class="buttons">
      <input value="注 册" type="submit" id="reg_btn">
    </div>
    <br class="clear">
  </form>

</div>
<script>
    document.getElementById("changeImg").onclick = function (){
      document.getElementById("checkCodeImg").src = "/finalTest/checkCodeServlet?"+new Date().getMilliseconds();
    }
    document.getElementById("checkCodeImg").onclick = function (){
      document.getElementById("checkCodeImg").src = "/finalTest/checkCodeServlet?"+new Date().getMilliseconds();
    }


</script>
</body>
</html>
searchPersonalDR.jsp
点击查看代码
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
%>
<html>
<head>
    <title>查询个人日报</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<h1>查询个人日报</h1>
<form action="" method="post">
    <label for="publishDate">发表日期:</label>
    <input type="date" id="publishDate" name="publishDate"><br><br>
    <label for="knowledgePoints">知识点:</label>
    <input type="text" id="knowledgePoints" name="knowledgePoints"><br><br>
    <input type="submit" value="查询">
</form>

<%
    String publishDate = request.getParameter("publishDate");
    String knowledgePoints = request.getParameter("knowledgePoints");
    List<DailyReport> dailyReports = new ArrayList<DailyReport>();
    if(currentUser.getIdentify().equals("学生")) {
        dailyReports = service.searchDR(Integer.parseInt(currentUser.getUsername()), publishDate, knowledgePoints);
    }else{
        dailyReports = service.searchDR2(publishDate, knowledgePoints);
    }
%>

<h2>查询结果</h2>
<table border="1">
    <tr>
        <th>发表时间</th>
        <th>所花时间</th>
        <th>代码量(行)</th>
        <th>博客量(篇)</th>
    </tr>
    <% if (dailyReports != null) {
        for (DailyReport report : dailyReports) { %>
    <tr>
        <td><%= report.getPublishDate() %></td>
        <td><%= report.getSpentTime() %></td>
        <td><%= report.getCodeamount() %></td>
        <td><%= report.getBlogsnumber() %></td>
        <td>
            <a href="DRdetails.jsp?id=<%= report.getId() %>">查看详细信息</a>
        </td>
    </tr>
    <% }
    } %>
</table>

<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
statisticsDR.jsp
点击查看代码
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.stream.Collectors" %>
<%@ page import="java.util.Map" %>
<%@ page import="com.Moonbeams.pojo.UserInfo" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.Moonbeams.service.TeacherService" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collections" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
    <title>日报发表情况统计</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    TeacherService service2 = new TeacherService();
    List<UserInfo> students =service.selectAllUserInfos();
    List<DailyReport> dailyReports;
%>
<%
    if(currentUser.getIdentify().equals("小组长")){
    dailyReports = service.getSubmittedReportsToday();
%>
<h1>当天发表情况统计</h1>
<table border="1">
    <tr>
        <th>序号</th>
        <th>学号</th>
        <th>姓名</th>
        <th>是否提交</th>
    </tr>
    <% int index = 1;
        boolean submitted = false;
        for (UserInfo member : students) {
            for (DailyReport report : dailyReports) {
                if (report.getStuno().equals(member.getUserID())) {
                    submitted = true;
                    break;
                }
            }
    %>
    <tr>
        <td><%= index++ %></td>
        <td><%= member.getUserID() %></td>
        <td><%= member.getUserName() %></td>
        <td><%= submitted ? "已交" : "未交" %></td>
    </tr>
    <% } %>
</table>
<%}%>
<%if(currentUser.getIdentify().equalsIgnoreCase("教师")){%>

<h1>发表情况统计</h1>
<form action="teacherServlet" method="get">
    <input type="hidden" name="action" value="statistics">
    <label for="startDate">开始日期:</label>
    <input type="date" id="startDate" name="startDate" required><br><br>
    <label for="endDate">结束日期:</label>
    <input type="date" id="endDate" name="endDate" required><br><br>
    <input type="submit" value="统计">
</form>

<%
    String startDate = request.getParameter("startDate");
    String endDate = request.getParameter("endDate");
    if (startDate != null && endDate != null) {
        dailyReports = service2.getSubmittedReportsBetweenDates(startDate, endDate);
%>
<table border="1">
    <tr>
        <th>序号</th>
        <th>学号</th>
        <th>姓名</th>
        <th>提交数量</th>
    </tr>
    <%
        int reportCount = 1;
        Map<Integer, Integer> reportStats = new HashMap<Integer,Integer>();
        for (DailyReport report : dailyReports) {
            Integer userId = report.getStuno();
            reportStats.putIfAbsent(userId, 0);
            reportStats.put(userId, reportStats.get(userId) + 1);
        }
        List<Integer> sortedUsers = new ArrayList<Integer>(reportStats.keySet());
        Collections.sort(sortedUsers);
        for (Integer userId : sortedUsers) {
            UserInfo userInfo = service.selectUserInfoById(userId);
    %>
    <tr>
        <td><%= reportCount++ %></td>
        <td><%= userInfo.getUserID() %></td>
        <td><%= userInfo.getUserName() %></td>
        <td><%= reportStats.get(userId) %></td>
    </tr>
    <% }
    }%>
</table>
<%}%>

<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
studentList.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="com.Moonbeams.pojo.DailyReport" %>
<%@ page import="com.Moonbeams.service.StudentService" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.Moonbeams.pojo.UserInfo" %>
<%@ page isELIgnored="false" %>

<%
    User currentUser = (User) session.getAttribute("user");
    if (currentUser == null) {
        response.sendRedirect("login.jsp");
        return;
    }
    StudentService service = new StudentService();
    List<UserInfo> userInfos = service.selectAllUserInfos();
%>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <meta charset="UTF-8">
    <title>学生列表</title>
</head>
<body>
<h1>学生列表</h1>
<table id="dailyReportsTable" border="1">
    <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>职位</th>
        <th>组号</th>
    </tr>
    <%
        if (userInfos != null) {
            for (UserInfo student : userInfos) {
                if(student.getUserCategory().equalsIgnoreCase("学生")){
//                String rowClass = "row"; // Add this line
//                if ("待审批".equals(dailyReport.getState())||"退回".equals(dailyReport.getState())) {
//                    rowClass = "row-unapproved"; // Add this line
//                }
    %>
<%--    <tr class="<%= rowClass %>">--%>
            <tr>
                <td><%= student.getUserID() %></td>
                <td><%= student.getUserName() %></td>
                <td><%= student.getUserCategory() %></td>
                <td><%= student.getGroupno() %></td>
        <td>
            <form action="teacherServlet" method="post">
                <input type="hidden" name="action" value="resetRole">
                <input type="hidden" name="id" value="<%= student.getUserID() %>">
                <label>
                    <select name = "role">
                        <option value="学生">学生</option>
                        <option value="小组长">学生</option>
                    </select>
                </label>
                <input type="submit" value="设置">
            </form>
            <%}%>
        </td>
    </tr>
    <%  }
    %>
</table>
<br>
<div class="transparent-box">
    <a href="insertDR.jsp">新增日报</a>
</div>
<div class="transparent-box">
    <a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>
posted @   Moonbeamsc  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
返回顶端
点击右上角即可分享
微信分享提示