文章大纲
加载中...

待办清单项目3:创建Service层和Controller层代码

4/17/2025 85 阅读
待办清单项目3:创建Service层和Controller层代码

创建Service层代码

  1. 首先创建Service层的接口,在com包上单击鼠标右键,选择新建软件包,取名为service

  1. service软包上单击鼠标右键,选择新建Java类,然后在弹出的对话框中设置名字为SysUserService,然后点一下接口,最后敲一下回车键

    1. 类似的,创建一个SysTodoService接口文件,如下图所示

  2. 接下来创建服务层的实现代码,首先在service包上单击右键,再新建一个软件包

  1. 取名为impl

  1. 在刚创建的impl包上单击鼠标右键,新建Java类

  1. 创建如下图所示的两个类SysUserServiceImplSysTodoServiceImpl

SysUserServiceImpl的代码如下:

package com.youngshu.todolist.service.impl;
import com.youngshu.todolist.service.SysUserService;

/**
 * 实现用户服务接口
 */
public class SysUserServiceImpl implements SysUserService {
    // TODO: 实现用户服务接口
}

SysTodoServiceImpl的代码如下:

package com.youngshu.todolist.service.impl;
import com.youngshu.todolist.service.SysTodoService;
/**
 * 实现待办事项接口
 */
public class SysTodoServiceImpl implements SysTodoService {
    // TODO: 待办事项接口实现
}

创建Controller层代码

  1. 在com包上单击右键,新建软件包,取名为controller

  1. 在controller包上新建Java类,取名为SysUserController

  1. 类似的再创建一个SysTodoController和一个BaseController

  1. BaseController的代码如下:
package com.youngshu.todolist.controller;

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

import java.io.IOException;
import java.lang.reflect.Method;

public class BaseController extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //判断此次请求时 增?删?改?查?
        String requestURI = req.getRequestURI(); // 获取请求路径
        String[] split = requestURI.split("/"); // 切割请求路径
        String methodName = split[split.length - 1]; // 获取请求方法名
        // 使用反射 通过方法名获取下面的方法
        Class aClass = this.getClass();
        // 获取方法
        try {
            Method declaredMethod = aClass.getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
            //暴力 破解方法的访问修饰符的限制
            declaredMethod.setAccessible(true);
            // 执行方法
            declaredMethod.invoke(this, req, resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

SysUserController的代码如下:

package com.youngshu.todolist.controller;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

// 该类处理用户相关的请求
@WebServlet("/user/*")
public class SysUserController extends BaseController{
    // 添加用户的处理方法
    protected void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("add user");
    }
    // 删除用户的处理方法
    protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("delete user");
    }
    // 编辑用户的处理方法
    protected void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("edit user");
    }
    // 列出用户的处理方法
    protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("list user");
    }
}

SysTodoController的代码如下:

package com.youngshu.todolist.controller;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

// 处理与待办事项相关的HTTP请求
@WebServlet("/todo/*")
public class SysTodoController extends BaseController {
    // 添加新的待办事项
    protected void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("add todo");
    }
    // 删除指定的待办事项
    protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("delete todo");
    }
    // 编辑指定的待办事项
    protected void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("edit todo");
    }
    // 列出所有的待办事项
    protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("list todo");
    }
}


测试Controller代码

  1. 打开Tomcat服务器的编辑配置,然后点击【部署】,再点击加号里面的工件,选择TodoList:war exploded,然后在应用程序上下文里面写上/TodoList

  1. 点击【服务器】,然后把URL改成下面这样,再点确定

  1. 点击调试按钮开始调试项目

  1. 在弹出的浏览器地址栏输入http://localhost:8080/TodoList/user/add 并回车,可以看到软件后台输出了add user字样,说明SysUserController成功的解析了浏览器的访问路径,并运行了添加用户的处理方法

  1. 类似的,请测试一下SysUserController里面的其他方法是否可以被执行,并测试一下SysTodoController里面的方法是否同样可以成功执行。

评论 (0)

暂无评论,来发表第一条评论吧!