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),执行的顺序不会因为三个标签在配置文件中的先后顺序而改变。
相关推荐
三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器 Filter 过滤器它是 JavaEE 的规范。也就是接口 Filter 过滤器它的作用是:拦截请求,过滤响应。 拦截请求常见的应用场景有: 1、权限检查 2、...
实验1:Java Web开发环境及Web编程基础;实验2 JSP、Servlet及JDBC应用开发;实验3 扩展JavaScript框架应用;实验4 Web应用综合设计; 天津理工大学
1、Servlet 是 JavaEE的...JavaWeb 三大组件分别是:**Servlet 程序、Filter 过滤器、Listener 监听器**。 3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应 数据给客户端。
通常JavaWeb项目启动时我们需要... 下面代码是模拟初始化的一个示例,可以在控制台看到程序的输出,和Listener、Filter、Servlet的启动先后顺序,强烈建议跟我一样喜欢动手的Coder操作一下,废话不多说,直接上代码了。
1.Filter 什么是过滤器 其中最重要的就是filter功能.它使用户可以改变一个request和修改一个response. Filter 不是一个servlet... JavaWeb的三大组件分别是:Servlet程序 Listener监听器 Filter过滤器. Filter过滤器是一
JavaWeb核心之Servlet 41 HttpServletResponse 46 HttpServletRequest 51 会话技术Cookie&Session; 55 动态页面技术(JSP/EL/JSTL) 59 javaEE的开发模式 65 事务(JDBC) 67 Json数据格式(重要) 70 Js原生Ajax和...
内容包括:MySQL、MySQL约束&多表、MySQL多表&事务、JDBC、数据库连接池、HTML、CSS、JS基础&高级、BootStrap、XML、Tomcat、Servlet&HTTP&Request、Response、Cookie&Session、JSP&EL&JSTL、Filter&Listener、...
使用IDEA基于Javaweb和Mybatis的登录注册示例项目。项目包含基本的MVC结构,对Javaweb中的基础内容如JSP、Servlet、Listener、Filter以及session进行总结。
技术实现:该系统采用了JavaWeb技术,包括Servlet、JSP、JDBC、Filter、Listener等,同时还采用了SpringMVC、Spring、MyBatis等框架,提高了系统的可靠性和稳定性。 总之,javaWeb计算机配件报价系统是一款功能完备...
主要内容包括:Servlet、JSP、EL表达式、JSTL标签库、Filter过滤器、Listener监听器。在讲解过程中采用的手法是从0到1,让小白学会源码分析,让大牛眼前一亮。总之,不管你是小白,还是已经在从事Java开发的工作者,...
基于三层架构,主要使用Servlet+JSP+Bootstrap+JQuery+Druid+DBUtils等JavaWeb技术的宿舍管理系统。系统里面分了三个角色,分别为超级管理员、宿舍管理员和学生,每个角色拥有不同的权限和功能; 1.依赖管理使用了...
进销存管理系统是一款基于JavaWeb技术实现的企业管理软件,主要用于管理企业的库存、进货...技术实现:该系统采用了JavaWeb技术,包括Servlet、JSP、JDBC、Filter、Listener等,同时还采用了SpringMVC、Spring、MyBati
Javaweb是Web开发的基础,学习整理的笔记,十分详细,包括下面的部分 JDBC HTTP协议 Web服务器 Servlet Request Response JSP MVC模式和三层架构 会话技术 Filter Listener
大学生求职就业网是一个基于JavaWeb技术开发的在线求职招聘平台,旨在为大学生提供一个便捷、...后端技术:该项目采用了JavaWeb中常用的技术,包括Servlet、JSP、JDBC、Filter、Listener等。同时,该项目还采用了Spri
Tomcat+*Servlet+Jsp+Filter+Listener
课程涵盖:Servlet程序、Filter过滤器、Listener监听器、JSP页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求等全部Web开发核心技术点,并在讲解知识点过程中带领大家完成一个...
javaweb综合练习,涉及知识点:html、css、js、Jquery、bootstrap、layui、layer、ajax、mysql、tomcat、servlet、filter、listener、jsp、公有云服务器。
本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...
javaWeb知识点 JSP 概念 JSP全称Java Server Page(Java服务端页面),通俗上来讲就是可以编写Java代码的HTML页面。在最早期是没有JSP的,那么后端开发人员想要展示一个网页,就是在Servlet中 拼接html. 于是就有了JSP...
知识点总结