Java servlet中的静态类用法

Java servlet中的静态类用法,java,jsp,servlets,model-view-controller,Java,Jsp,Servlets,Model View Controller,我见过几次代码,Servlet内部是一个内部类,用于存储parametrs的值并进行各种验证等。这样做是否被认为是一种好的实践?在我看来,你有时会对实体类产生怀疑。业务逻辑是否应该与serlvet分离? 这种用法的一个例子是: private static class RequestShiftPreferences { private final String numbOfWorkingHoursPerWeek; private final String numbOfDays

我见过几次代码,Servlet内部是一个内部类,用于存储parametrs的值并进行各种验证等。这样做是否被认为是一种好的实践?在我看来,你有时会对实体类产生怀疑。业务逻辑是否应该与serlvet分离? 这种用法的一个例子是:

 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"));
    }

演示的用法用于创建保存请求所有值的java对象。因此,在某种程度上,它是一个模型。不是业务逻辑

如果静态类中的代码没有重复,并且只在servlet中使用,那么私有静态类是封装和隐藏其他类的好方法。 如果你始终如一地使用这种写作风格,阅读起来也会很容易


基本上,将私有静态类添加到servlet具有在任何其他类中使用私有静态类的所有优点和缺点。

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

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