Servlet学习总结

什么是Servlet?

Servlet其实就是一个接口,定义的是一套处理网络请求的规范。
该接口有五个方法:
init(ServletConfig):void
getServletConfig():ServletConfig
service(ServletRequest, ServletResponse):void
getServletInfo():String
destroy():void

servlet不会直接和客户端打交道,那请求怎么来到servlet呢?答案是servlet容器(如Tomcat,Jetty)。
tomcat才是与客户端直接打交道的家伙,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。

JSP和Servlet区别与联系

首先给出答案:JSP是Servlet的一种特殊形式,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。那么为什么要这样呢?
Servlet是利用输出流来动态生成HTML页面的,输出流中包括每一个HTML标签和页面内容。
这样,所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,最终导致Servlet的开发效率极为低下。
JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。

1.不同之处在哪?

Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容

2.各自的特点

Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差
JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的
其实,jsp就是在html里面写java代码,servlet就是在java里面写html代码,两者都不可取

3.通过MVC双剑合璧

1)Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)
2)Controller(Servlet)调用核心业务逻辑——Model部分,获得结果
3)Controller(Servlet)将逻辑处理结果交给View(JSP),动态输出HTML内容
4)动态生成的HTML内容返回到浏览器显示
MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不会通过out.append()动态生成HTML代码;JSP中也不会充斥着大量的业务代码。这大大提高了代码的可读性和可维护性。

Tomcat如何找到并实例化Servlet

http://www.itcast.cn/news/20160426/16355457382.shtml

你可能感兴趣的:(Servlet学习总结)