java - Servlet 内的静态类用法

标签 java jsp servlets model-view-controller

我见过几次代码,Servlet 内部是内部类,用于存储参数值并进行各种验证等。这样做是否被认为是一个好的做法?在我看来,你有时会重复实体类。业务逻辑是否应该与servet分离? 此类用法的示例:

 private static class RequestShiftPreferences {

    private final String numbOfWorkingHoursPerWeek;
    private final String numbOfDaysOFf;
    private final String workTimePreference;

    private RequestShiftPreferences(String numbOfWorkingHoursPerWeek, String numbOfDaysOFf, String workTimePreference) {
        this.numbOfWorkingHoursPerWeek = numbOfWorkingHoursPerWeek;
        this.numbOfDaysOFf = numbOfDaysOFf;
        this.workTimePreference = workTimePreference;
    }

    public static ShiftPreferencesController.RequestShiftPreferences fromRequestParameters(HttpServletRequest request) {
        return new ShiftPreferencesController.RequestShiftPreferences(
                request.getParameter("numbOfWorkingHoursPerWeek"),
                request.getParameter("numbOfDaysOFf"),
                request.getParameter("workTimePreference"));
    }

最佳答案

Servlet 的主要目标是将 HTTP 请求解析为类型参数将业务实体对象序列化为 HTTP 结果。 (其次,它还可能直接或间接执行一些外围任务,例如数据压缩/解压缩、安全性、日志记录等)

在此基础上,我认为没有充分的理由将内部类似 Bean 的类包含到 Servlet 中来存储输入参数,因为它们肯定会复制实体 Bean。而且,由于是私有(private)的,这些内部对象需要转换为实体 bean。

关于java - Servlet 内的静态类用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48696726/

相关文章:

javascript - Java-将javascript连接到servlet

java - java中InputStream Size超过1GB时无法获取。需要更多缓冲区异常。怎么解决?

java - 使用 TestNG DataProvider 跳过某些测试迭代

java - 解码 JSON,其中标签是值

java - HttpServlet - 将上下文添加到 html 页面

jsp - 本地主机上的 Tomcat v9.0 服务器无法在 Eclipse 中启动

java - 选择使用工作区内的资源运行服务器时在 RAD 8 中部署和运行 spring 应用程序时出错

java - 将 JSON 对象从 JSP 转换为 JS 时出现问题

java - addCookie() 在 Tomcat 7 中不起作用

mysql - jsp servlet Mysql数据库连接错误