正如ASP.NET的核心是IHttpHandler一样,Java Web的核心是Servlet接口,位于javax.servlet命名空间中。Filter的概念可以参考ASP.NET的HttpModule,Servlet中的各种Listener可以参考ASP.NET HttpApplicaiton中类似的event。无论是Java还是.NET的Web技术,都是基于HTTP协议的具体实现。Java Web和ASP.NET中的一些核心项对应如下:
Java 参考3 | .NET | 备注 | |
Core | javax.servlet.Servlet | System.Web.IHttpHandler | |
HTTP Request | javax.servlet.ServletRequest | System.Web.HttpRequest | |
HTTP Response | javax.servlet.ServletResponse | System.web.HttpResponse | |
Cookie | javax.servlet.http.Cookie | System.Web.HttpCookie | |
Session | javax.servlet.http.HttpSession | System.Web.HttpSessionState | |
Application | javax.servlet.ServletContext | System.Web.HttpApplication | |
Begin Request | javax.servlet.Servlet.RequestDispatcher | System.Web.HttpApplication.BeginRequest | event |
Begin\End Request | javax.servlet.Servlet.ServletRequestListener | System.Web.HttpApplication.BeginRequest\EndRequest | event |
Filter | javax.servlet.Filter | System.Web.IHttpModule | |
Application Event | javax.servlet.ServletContextListener | System.Web.HttpApplication.Application_Start\Application_End | method |
Servlet和ASP.NET的简化示意图:
用于简化web.xml配置的Servlet的注解(3.0开始支持,在ASP.NET中没有对应项):
(1)WebServlet:作用在javax.servlet.http.HttpServlet的实现类上。
(2)WebFilter:作用在javax.servlet.Filter的实现类上。
(3)WebListener:作用在Listener的实现类上(javax.servlet.ServletContextListener、javax.servlet.ServletContextAttributeListener、javax.servlet.ServletRequestListener、javax.servlet.ServletRequestAttributeListener、javax.servlet.http.HttpSessionListener、javax.servlet.http.HttpSessionAttributeListener)。
(4)WebInitParam:结合WebServlet和WebFilter注解用来配置属性。
(5)MultipartConfig:作用在javax.servlet.http.HttpServlet的实现类上。标注请求是mime/multipart类型。
用于Servlet容器初始化的ServletContainerInitializer(可实现无web.xml,3.0开始支持,可类比ASP.NET的Application_Start方法):
(1)Servlet容器启动时查找ServletContainerInitializer的实例。
(2)ServletContainerInitializer实例使用HandlesTypes标注一个或多个类型,Servlet容器将在启动时扫描classpath,获取这些类型的实例。
(3)Servlet容器在启动时调用ServletContainerInitializer实现类的onStartup方法,该方法可以获取HandlesTypes标注的所有类型对象。
标签:总结,Web,javaweb,Servlet,System,NET,servlet,javax From: https://www.cnblogs.com/pengsuoqun123/p/16998720.html