javaweb总结4-servlet基础

正如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标注的所有类型对象。

posted @ 2022-12-22 14:51  小彭先森  阅读(16)  评论(0编辑  收藏  举报