※ 引述《aoisama (普通人)》之铭言:
[...]
: JSP + servlet 是旧技术现在没在用了但这是基础还是要学?
servlet 应该理解为 web 技术的核心,
在 java web 领域它等同于 CGI 的角色,
制定一个通用的 api 来帮助开发处理 http protocol 的沟通
有了 servlet api 与支援此 api 的 server (container)
我们才能以 java 语言层次来处理与 http 沟通的问题。
它只是出现的时间比较早,在时序上可称为旧,
但不等于不需要它。其他的 framework 都是在将问题转换
多数的目标是在提升“抽象层次”。
servlet 相对于 cgi 也是在提升抽象层次,
让我们不用以“字串”的 parse 与 print
来处理所有 http protocol 的所有细节。
其他的 web framework 之于 servlet 或 filter
也是相对地提升抽象层次,像是把 http request 对应至 POJO
而 http response 不再直接由开发者处理,
会对应成 action 或 route 等不同的“概念”,
指定要回传某一个页面的内容
由于 jsp 越加越多功能,没有适当“拒绝与自制”力的开发人员
就成了滥用它的帮凶,各 web framework 也思考不同的做法
不过也没有完全舍弃 jsp,但强烈鼓励把它单纯当 template engine 使用
不要在上面放 business logic 或直达 dao 层的操作
在“单纯”的 java web 世界,servlet/jsp 是核心
在“单蠢”的 java web 世界,servlet/jsp 是遗迹
别把简单地事弄得很愚蠢就对了 :)
另外,推荐阅读
抽象渗漏法则
http://bit.ly/1pYjzUJ