我见过几次代码,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/