JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能。
本博客内容参考以下博客:
http://blog.csdn.net/gebitan505/article/details/70808730
http://blog.csdn.net/xiaojie119120/article/details/73274759
JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能。
本博客内容参考以下博客:
http://blog.csdn.net/gebitan505/article/details/70808730
http://blog.csdn.net/xiaojie119120/article/details/73274759
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response); redirect方式:response.sendRedirect("/somePage.jsp");
Forward是通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法来实现的,getRequestDispatcher()的参数必须以“/”开始,代表Web应用程序的根目录
当执行forward动作时不能有任何输出到客户端,否则会抛出IllegalStateException异常。
Redirect是利用服务器返回的状态码来实现的,服务器通过HttpServletResponse的setStatus(int status)方法设置状态码,301代表永久重定向,302代表临时性重定向,HttpServletResponse把setStatus()与setHeader()方法封装成另一个方法sendRedirect(String url)。
当使用forward形式跳转时,地址栏会显示跳转前的Servlet访问地址,因为该跳转是在服务器端实现的,对客户端浏览器是透明的。当使用redirect时,跳转是在客户端实现的,实际上请求了两次服务器,第一次获取了重定向的状态码和地址,第二次访问真实的地址。
Servlet的创建:Servlet可以在第一次接收请求时被创建,也可以在在服务器启动时就被创建,这需要在web.xml的< servlet>中添加一条配置信息 < load-on-startup>5< /load-on-startup>,当值为0或者大于0时,表示容器在应用启动时就加载这个servlet,当是一个负数时或者没有指定时,则指示容器在该servlet被请求时才加载。
Servlet的生命周期方法:
Servlet的其他重要方法:
Servlet的配置:
<servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.briup.estore.web.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
filter与servlet在很多的方面极其相似,但是也有不同,例如filter和servlet一样都又三个生命周期方法,同时他们在web.xml中的配置文件也是差不多的、 但是servlet主要负责处理请求,而filter主要负责拦截请求,和放行。
filter四种拦截方式
拦截方式配置:在<filter-mapping>中添加0~n个<dispatcher>子元素,来说明当前访问的拦截方式,默认拦截方式为REQUEST,一般REQUEST和FORWARD用的多一点,INCLUDE和ERROR用的少,示例配置如下:
<filter-mapping> <filter-name>myfilter</filter-name> <url-pattern>/test.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>......</dispatcher> </filter-mapping>
url-mapping的写法,匹配规则有三种:
< url-pattern>的其他写法,如/foo/ ,/.htm ,/foo 都是不对的。
执行filter的顺序 :如果有多个过滤器都匹配该请求,顺序决定于web.xml filter-mapping的顺序,在前面的先执行,后面的后执行
filter在web.xml中的配置如下:
<filter> <filter-name>filterDemo</filter-name> <filter-class>com.sjz.housekeeper.custom.FilterDemo</filter-class> </filter> <filter-mapping> <filter-name>filterDemo</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Listener就是监听器,我们在JavaSE开发或者Android开发时,经常会给按钮加监听器,当点击这个按钮就会触发监听事件,调用onClick方法,本质是方法回调。在JavaWeb的Listener也是这么个原理,但是它监听的内容不同,它可以监听Application、Session、Request对象,当这些对象发生变化就会调用对应的监听方法。
应用域监听:
Ø ServletContext(监听Application)
void contextInitialized(ServletContextEvent sce):创建Servletcontext时
void contextDestroyed(ServletContextEvent sce):销毁Servletcontext时
void attributeAdded(ServletContextAttributeEvent event):添加属性时;
void attributeReplaced(ServletContextAttributeEvent event):替换属性时;
void attributeRemoved(ServletContextAttributeEvent event):移除属性时;
Ø HttpSession(监听Session)
voidsessionCreated(HttpSessionEvent se):创建session时
void sessionDestroyed(HttpSessionEvent se):销毁session时
void attributeAdded(HttpSessionBindingEvent event):添加属性时;
void attributeReplaced(HttpSessionBindingEvent event):替换属性时
void attributeRemoved(HttpSessionBindingEvent event):移除属性时
Ø ServletRequest(监听Request)
voidrequestInitialized(ServletRequestEvent sre):创建request时
void requestDestroyed(ServletRequestEvent sre):销毁request时
void attributeAdded(ServletRequestAttributeEvent srae):添加属性时
void attributeReplaced(ServletRequestAttributeEvent srae):替换属性时
void attributeRemoved(ServletRequestAttributeEvent srae):移除属性时
listener在web.xml中的配置:
<listener> <listener-class>com.sjz.housekeeper.custom.ListenerDemo</listener-class> </listener>
感知Session监听:
listener、filter、servlet的启动顺序为:listener->Filter->servlet,简单记为:理(Listener)发(Filter)师(servlet),执行的顺序不会因为三个标签在配置文件中的先后顺序而改变。
相关推荐
在JavaWeb开发中,"FILTER(过滤器)"和"LISTENER(监听器)"是两个重要的组件,它们极大地增强了应用程序的功能和灵活性。本案例将深入探讨这两个组件的原理、用法及其在实际项目中的应用。 一、FILTER(过滤器) ...
Web服务器中的三大组件,即Servlet、Filter和Listener,是构建动态Web应用程序的关键元素。这些组件都是基于Java的,主要用于增强和扩展Web服务器的功能。 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...
8. **异常处理**:通过`@WebFilter`和`@WebListener`注解,可以创建过滤器和监听器,它们是Servlet应用的重要组件,能够实现全局的日志记录、安全检查等功能。 文件名列表中的"db_database04.sql"可能包含了与...
在JavaWeb中,Servlet和Filter是两个核心组件,而监听器(Listener)则提供了更高级的功能,帮助开发者管理和监控应用状态。这个"JavaWeb Servlet过滤监听应用.zip"文件包含了关于如何在实际项目中运用这些概念的...
Servlet还可以与其他Java Web组件如JSP(JavaServer Pages)、Filter和Listener协同工作,构建更强大的应用程序。 在处理请求时,Servlet可以从HttpServletRequest对象中获取请求参数,例如表单数据。同时,...
Servlet是JavaWeb开发中的核心组件,它是一种服务器端的程序,用于处理来自客户端的请求并生成动态内容。Servlet并不是一个具体的类,而是一个接口,它定义了服务器与Servlet之间的交互方式。任何实现了Servlet接口...
在Java Web开发中,Filter、Listener和Interceptor是三个至关重要的组件,它们各自承担着不同的职责,共同构建了一个灵活且强大的应用程序架构。以下是对这三种组件的详细解释: 1. **Filter(过滤器)**: 过滤器...
10. **过滤器和监听器**:Servlet API中的Filter和Listener,用于在请求处理前/后进行拦截和响应。 11. **异常处理**:如何在Servlet中捕获和处理异常。 12. **安全**:如HTTPS配置,登录验证,权限控制等。 通过这...
4. **JavaWeb**:JavaWeb是指使用Java技术栈开发的Web应用程序,涵盖了Servlet、JSP、JSTL、Filter、Listener等多个组件。在这个系统中,JavaWeb技术被用来构建一个完整的Web应用程序,实现用户与服务器之间的交互。...
在JavaWeb开发中,Filter、Listener和Ajax是三个关键的技术概念,它们各自扮演着不同的角色,共同构建了高效、动态的Web应用程序。 首先,Filter(过滤器)是JavaWeb中的一个重要组件,用于拦截用户请求和服务器...
【JAVAWEB】标签表明项目的核心技术是JavaWeb,它是Java技术在Web应用上的体现,涵盖了Servlet、JSP、Filter、Listener等多个组件。在本项目中,Servlet可能是主要的业务逻辑处理者,负责接收HTTP请求,执行相应的...
JavaWeb 技术中,Filter(过滤器)是三大核心组件之一,与Servlet程序和Listener监听器并列。Filter 是 JavaEE 规范的一部分,它定义了一个接口,允许开发者在请求被处理之前或之后进行拦截,对请求或响应进行预处理...
6. **过滤器与监听器**:JavaWeb中的Filter和Listener是两个重要组件。Filter可以拦截请求,进行预处理或后处理,如登录检查、字符编码转换等。Listener则可以监听特定事件,如Session创建、销毁等,用于实现特定...
Web.xml是JavaWeb开发中的一种配置文件,用于配置Servlet、Filter、Listener等组件。Web.xml的主要应用场景包括: * 配置Servlet:在Web.xml中可以配置Servlet的名称、类名、映射地址等信息。 * 配置Filter:在Web....
Servlet是Java Web开发中的核心组件,它是一种Java类,用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并返回响应。在本教程中,我们将深入探讨Java Web的Servlet技术,基于提供的J2EE 1.5和Java ...
除了在Servlet中,我们还可以在Filter、Listener或其他JavaEE组件中获取到ServletContext。 在实际开发中,结合ServletContext和文件系统操作,可以实现诸如上传下载文件、读取配置文件、日志记录等功能。同时,...
在JavaWeb开发中,常见的技术栈包括Servlet、JSP、JSTL、EL(Expression Language)、Filter、Listener等。此外,可能还会用到MVC(Model-View-Controller)设计模式,以及Spring框架、MyBatis等来简化开发和管理。...
也可能涉及到了过滤器(Filter)和监听器(Listener)的概念,这些是JavaWeb中用于增强应用功能和管理应用状态的重要工具。 5. **JavaWeb开发技术试卷**: 这个文档可能包含了关于JavaWeb开发的一系列问题,覆盖了...
JavaWeb技术是构建互联网应用程序的重要框架,它涵盖了Java语言与Web开发的各种技术,包括Servlet、JSP、JSTL、Filter、Listener等。这个"JavaWeb.zip"压缩包显然包含了与JavaWeb开发相关的实验报告、练习题目和其他...