以下是一个简单的Servlet示例,用于在页面中打印出本月的日历:

import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CalendarServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // 获取当前日期
        LocalDate currentDate = LocalDate.now();

        // 获取本月第一天的日期
        LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);

        // 获取本月最后一天的日期
        LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());

        // 获取本月第一天是星期几
        int firstDayOfWeek = firstDayOfMonth.getDayOfWeek().getValue();

        // 打印页面头部
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Calendar</title>");
        out.println("</head>");
        out.println("<body>");

        // 打印页面标题
        out.println("<h1>" + currentDate.format(DateTimeFormatter.ofPattern("MMMM yyyy")) + "</h1>");

        // 打印日历表格
        out.println("<table>");

        // 打印星期几的标题行
        out.println("<tr>");
        out.println("<th>Sun</th>");
        out.println("<th>Mon</th>");
        out.println("<th>Tue</th>");
        out.println("<th>Wed</th>");
        out.println("<th>Thu</th>");
        out.println("<th>Fri</th>");
        out.println("<th>Sat</th>");
        out.println("</tr>");

        // 打印日期行
        out.println("<tr>");

        // 打印本月之前的空白格
        for (int i = 1; i < firstDayOfWeek; i++) {
            out.println("<td></td>");
        }

        // 打印本月的日期
        for (int i = 1; i <= lastDayOfMonth.getDayOfMonth(); i++) {
            out.println("<td>" + i + "</td>");

            // 如果是星期六,则换行
            if (firstDayOfWeek % 7 == 6) {
                out.println("</tr>");
                out.println("<tr>");
            }

            // 每打印一个日期,星期几加一
            firstDayOfWeek++;
        }

        // 打印本月之后的空白格
        while (firstDayOfWeek % 7 != 0) {
            out.println("<td></td>");
            firstDayOfWeek++;
        }

        out.println("</tr>");
        out.println("</table>");

        // 打印页面尾部
        out.println("</body>");
        out.println("</html>");
    }
}

将上述代码保存为名为CalendarServlet.java的文件,并将其放置在一个合适的Java Web项目中的src目录下的正确包路径中。

然后,您可以在Web应用程序的web.xml文件中添加以下配置以映射该Servlet:

<servlet>
    <servlet-name>CalendarServlet</servlet-name>
    <servlet-class>包路径.CalendarServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>CalendarServlet</servlet-name>
    <url-pattern>/calendar</url-pattern>
</servlet-mapping>

现在,当您访问http://localhost:8080/your-web-app-context/calendar时,您将看到一个打印出本月日历的页面


原文地址: https://www.cveoy.top/t/topic/iwFM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录