javaweb知识点总览(*代表重点掌握)

   JSP

一、什么是JSP

    jsp是动态网页之一,jsp全称:java server page      Java服务页面

    jsp = Java + html

二、jsp组成部分

   <%@ %>--------------------jsp标签指令

   html----------------------html语法

   <% %>---------------------java脚本

   <%= %>--------------------java表达式

   <%! %>--------------------java方法声明区

   ------------------网页注释

   <%-- --%>-----------------jsp注释

   注:1、java脚本中不能定义方法

    2、java表达式是把内容输出到浏览器中,java表达式不能写分号

    3、网页注释在浏览器中能看到,jsp注释不会在浏览器中显示,比较安全

三、Tomcat解析jsp的过程

    1、翻译过程                 把jsp页面翻译成一个servlet Java类

    2、编译过程                 把java类编译成class

    3、执行过程                 JVM执行class文件,Tomcat输出到浏览器

    

    jsp就是一个简单的servlet

servlet + jsp

*一、servlet与jsp职责

   1、servlet职责:设置字符编码、收集表单参数、调用业务逻辑、页面跳转。

   2、jsp职责:呈现数据给浏览器

   

*二、servlet怎么跳转到jsp

   servlet跳转到jsp有两种方式:转发(forward)、重定向(redirect)

   1、什么是转发

             转发是web服务器请求的传递,用户发送request到servlet,servlet把处理好的结果转移到jsp

             在jsp页面呈现内容,整个过程使用了一个request,浏览器地址是最初始的地址

             

             转发代码:request.getRequestDispatcher("personList.jsp").forward(request, response);

             

   2、什么是重定向

             重定向是web服务器根据请求的需要,重新发送新的请求,用户发送请求到servlet,servlet处理好

             结果响应掉第一次请求,告知浏览器重新发送一个新的request到jsp页面,整个过程使用了俩个

      request,浏览器地址是最后一次请求的地址,是jsp地址

      

            重定向代码:response.sendRedirect("personList.jsp");

            

           注: 转发与重定向不能同时使用

           

 三、什么时候用forward,什么时候用redirect

    1、查询用forward

    2、增删改用redirect

    

*四、URL什么时候使用servlet地址,什么时候用jsp地址

         一个请求需要用到数据库,就用servlet地址

         一个请求不需要用到数据库,就用jsp地址

*五、forward与redirect

    1、转发是请求的传递,整个过程使用了一个request

          重定向是结束第一次请求,告知浏览器发送新的请求,整个过程使用了俩个request

    2、转发:浏览器地址是最初始的地址

               重定向:浏览器地址是最后一次的地址

    3、转发可以使用request、session、application对象传递参数,可以传递任何对象

               重定向只能使用URL传递参数,只能传递字符串

               

4、转发会重复提交表单

      重定向不会重复提交表单

5、转发只能在项目内部跳转

      重定向可以跳转到项目外部

 *六、jsp与servlet区别

          相同点:

          jsp就是一个简易的servlet,都是用来处理用户请求

          不同点:

          jsp是一个动态网页,用来呈现数据到浏览器

          servlet是一个java类,用来处理用户请求与业务逻辑

          

          jsp侧重呈现

          servlet侧重于业务逻辑实现

        jsp九大内置对象

Web

一、什么是web服务器

   web服务器一般指的是网站服务,主要提供互联网信息浏览,目前的web服务器都是http协议。

   

二、web访问地址

    URL = http://ip:port/location

    http://         http协议

    ip              服务器ip地址

    port            web服务器的软件端口

    location        项目的资源目录

    

    ip地址在网络中定位一台计算机

    port:在计算机中定位一款软件,web的默认端口是80

三、目前市场上流行的web服务器

   1、jsp            java         Tomcat

   

   2、asp            c#           IIS

   

   3、php            php          Apache

四、Tomcat目录

  bin         执行文件(开启/关闭)

  conf        配置文件

  lib         tomcat相关jar包

  logs        日志文件

  temp        临时文件

  webapps     web项目存放目录

  work        web项目的工作空间(缓存)

五、配置Tomcat

  1、修改Tomcat端口,默认是8080端口

     在Tomcat的conf/server.xml文件中修改端口,代码如下:

     

     protocol="HTTP/1.1" redirectPort="8443"/>

     

  2、设置Tomcat字符编码

    在Tomcat的conf/server.xml文件中设置字符编码,代码如下:

    

    port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    

  3、清除Tomcat缓存

         清空Tomcat目录下temp与work俩个文件夹下所有文件

         

  4、启动与停止Tomcat

         启动:双击bin/startup.bat

         停止:双击bin/shutdown.bat

六、web项目的结构

    src:存放java源文件

    build:存放java编译后的文件,.class文件

    webContent:存放前端代码,比如:html、css、js、jsp

    WEB-INF/lib:存放项目第三方jar包,比如:ojdbc6.jar

七、java处理前端请求的方式

   1、servlet               java类

   2、jsp                   动态网页

   

八、什么是servlet

   servlet成为web容器,用来处理客户端请求,运行在服务器端

   

九、servlet创建步骤

    1、创建一个类继承HttpServlet

    2、重写doGet与doPost方法

    3、在web.xml中配置servlet信息

    

    名称(自定义)

    servlet类完整路径(包+类名)

  

  

    名称(自定义)

    servlet访问地址(必须以/开头)

  

*十、web应用程序入口

   java应用程序入口是main方法

   web应用程序入口是web.xml

*十一、servlet的职责

   1、设置request、response字符编码

   2、收集表单参数  (request.getParameter(""))

   3、调用业务逻辑(dao层方法)

   4、响应请求

*十二、servlet生命周期

       生命周期:什么时候创建,什么时候销毁。

   servlet 生命周期:servlet什么时候创建,servlet什么时候销毁。

   servlet的根接口:Servlet

   

   1、执行构造方法实例化

   2、执行init方法初始化

   3、执行service方法处理请求

   4、当Tomcat关闭时,执行destroy方法进行销毁

   构造方法与init方法自始至终只执行一次,servlet对象是单实例,当Tomcat关闭时,

   destroy方法也是只执行一次,销毁一个对象

*十三、servlet实例化方式

   servlet对象是由Tomcat创建的,创建方式有两种,分别如下:

   1、第一次访问时被实例化                          默认方式                95%

   在servlet标签中配置:1

   中间是一个大于或等于零的正整数,数值越小,优先级越高,如果数值相同按书写顺序

十四、servlet处理请求的方法

   Servlet根接口处理请求的方法是servlet方法,在子类HttpServlet中重写了该方法,

       并且把request与respons对象转成了带http协议的request与respons对象,并且调用了自身带有

   http协议的service方法,在这个service方法中根据提交方式method

   

                                                                    调用                                               -------》doGet(http协议,只能处理get请求)

   service方法(Servlet根接口)----->service(Http协议)

                                                   -------》doPost(http协议,只能处理post请求)

          

   

一、什么是内置对象

       内置对象不需要构造,直接使用,对象名是固定的,这样的对象jsp一共有九个

       

*二、jsp九大内置对象

        对象名                        类型(类/接口)                                                                                                     描述

   page          java.lang.Object(类)                                   当前页面

   pageContext   javax.servlet.jsp.PageContext(类)                    页面上下文内容  

   request       javax.servlet.http.HttpServletRequest(接口)                       用户请求

   response      javax.servlet.http.HttpServletResponse(接口)                     响应请求

   session       javax.servlet.http.HttpSession(接口)                                        网页会话

   application   javax.servlet.ServletContext(接口)                                          当前应用(servlet上下文内容)

   config        javax.servlet.ServletConfig(接口)                                               配置信息

   out           javax.servlet.jsp.JspWiter(类)                                                    输出对象

   exception       java.lang.Throwable(类)                                                              网页异常对象

   

重点掌握:pageContext、request、response、session、application

*三、jsp域对象

   pageContext               当前页面有效

   request                   一次请求有效

   session                   整个网页会话有效

   application               整个应用有效

   

   以上四个域对象都有三个方法,分别如下:

   setAttribute(key,value);                    把对象设置到范围中

   getAttribtte(key)                           从范围中获取对象

   removeAttribute(key)                        从范围中删除对象        

   

四、pageContext对象

    pageContext对象代表网页的上下文内容,是九大内置对象最基础的对象,可以通过pageContext对象来

    获取其他内置对象

    

    pageContext对象获取

           pageContext = _jspxFactory.getPageContext()

           使用jsp工厂获取,如果要使用pageContext对象,请使用jsp。

           

    pageContext对象常用方法:

      setAttribute(key,value);                    把对象设置到范围中

      getAttribtte(key)                           从pageContext范围中获取对象

      removeAttribute(key)                        从pageContext范围中删除对象

      getRequest()                                获取request对象

      getResponse()                               获取response对象

      getSession()               获取session对象

      getServletContext()     获取application对象

      getServletConfig()               获取config对象

      getOut()   out对象

      getException()   获取exception对象

      getPage()     获取page对象   

      

*五、request对象

   request对象代表一个用户请求

   

   request对象获取方法:

     HttpServletRequest request_ = (HttpServletRequest)pageContext.getRequest();

    

   request对象常用方法:

        setCharacterEncoding("UTF-8");    设置request字符编码

        getCharacterEncoding("UTF-8");    获取request字符编码

        setAttribute(key,value);           把对象设置到范围中

    getAttribtte(key)                  从范围中获取对象

    removeAttribute(key)               从范围中删除对象        

        getRequestDispatcher("URL").forward(request, response)  转发

        getParameter("参数名")                获取表单参数

        getParameterValues("参数名")          获取表单同名参数,比如:复选框

        getServerName()                      服务器端ip

        getServerPort()                      服务器端口

        getContextPath()                     项目名、根路径

        getRequestURI()                      相对路径

        getRequestURL()                      绝对路径

        getQueryString()                     参数字符串

 *六、response对象

       response对象代表响应请求

       

       response对象获取方式:    

        HttpServletResponse response_ = (HttpServletResponse)pageContext.getResponse();

       response对象常用方法:

        setCharacterEncoding("UTF-8");                  设置response字符编码

        getCharacterEncoding("UTF-8");                  获取response字符编码

        setContentType("text/html;charset=UTF-8");      设置网页类型与网页字符编码

        sendRedirect("URL")                             重定向

        getWrite()                                      获取输出对象

        

        注:转发、重定向、输出对象(out)不能同时使用,三者只能使用一个

        

        

*七、jsp嵌入jsp

             在一个jsp页面嵌入另一个页面,嵌入方式有两种,分别如下:

        1、静态嵌入

            把jsp代码内容嵌入到另一个jsp中,一起编译产生一个servlet,上下文内容能关联,

            称为:静态嵌入

           

        代码:

        <%@ include file="jsp URL" %>

     

        2、动态嵌入

         嵌入的jsp与本身的jsp各自编译,产生两个servlet,上下文内容不能关联,

         称为:动态嵌入

        

         代码:

        

  一、session对象(网页会话)

1、什么是session

session是一次网页会话,浏览器与web服务器之间的一次会话,包含多次请求,

这就是网页会话

*****2、session的生命周期

创建:

浏览器第一次访问web服务器页面,产生一个session,一个用户对应一个session,

同一个浏览器,同一个网站,只会产生一个session

销毁:

a、关闭浏览器,session对象并没有销毁,只是被闲置了,无人使用,超出session时长,

      就会被销毁

b、超出session时长,也会被销毁,Tomcat默认session是30分钟

c、手动销毁session,代码session.invalidate()

3、session的作用

session是用来存储用户信息的,一个用户对应一个session,用户与用户之间不能共享session,

同一个浏览器,同一个网站,不能同时登录两个用户

4、设置session时长

a、设置Tomcat session时长,在Tomcat/conf/web.xml文件中修改session时长,代码如下

         1

注:1、单位是分钟 2、会影响Tomcat下所有项目的session时长

b、设置项目的session时长,在项目web.xml中修改session时长,代码如下:

         1

    

    

c、设置功能的session时长,在功能代码中设置session时长,代码如下:

session.setMaxInactiveInterval(30);

注:1、单位是秒 2、会影响单个功能的session时长

5、获取session对象方式

pageContext.getSession() 通过pageContext获取session对象

request.getSession() 通过request获取session对象

  6、session常用方法

  setAttribute(key,value)

二、application对象

     

     1、什么是application对象

      application对象相当于web应用程序的全局变量,在servlet或jsp中都能获取,一个web项目

      只会产生一个application对象,application对象是单例的

     

  2、application对象生命周期

  创建:

  web服务器启动时创建application对象,一个web项目只会产生一个application对象

 

  销毁:

web服务器停止的时候销毁application对象,一个web项目销毁一个application对象

    3、获取application对象

    pageContext.getServletContext() 通过pageContext对象获取

    request.getServletContext()    通过request对象获取

    session.getServletContext()             通过session对象获取

4、常用方法

setAttribute(key,value)

*****5、session与application的区别

a、范围不同

session是一次网页会话有效

application是整个应用程序有效

session是用户级别,一个用户对应一个session,用户与用户之间不能共享session

application是应用级别,多个用户可以共享一个application

b、生命周期不同

session:第一次访问web页面时,产生一个session,session销毁有三种方式:

关闭浏览器、超出时长、手动代码关闭

application:Tomcat启动时,产生一个application,Tomcat关闭时销毁一个

application对象

c、对象个数不同

session:一个会话产生一个session,多个网页会话,产生多个session

application:一个web程序只能产生一个application对象

三、什么是config对象

1、什么是config对象

config对象是servlet配置信息对象,可以获取servlet在web.xml中的配置信息

2、常用方法

getServletName() 获取web.xml中标签值

getInitParameter(String name) 获取web.xml中标签下的参数

四、cookie

1、什么是cookie

cookie是服务器端保存在客户端的一些文本文件,cookie信息存储在客户端,有一定的生命周期

生命周期一过,cookie就会失效

2、cookie的特点

a、cookie的文件都是文本文件,就是.txt

b、cookie只能存储字符串

c、cookie文件大小不会超过4KB

d、cookie文件有一定生命周期

e、cookie由浏览器管理

3、cookie的使用

a、创建cookie

Cookie cookie = new Cookie("egg","teaegg");

b、设置生命周期,一般是7天,单位秒,不设置生命周期,关闭浏览器,cookie就失效

cookie.setMaxAge(7 * 24 * 60 * 60);

c、写入浏览器

response.addCookie(cookie);

d、获取cookie

String value = "";

    Cookie[] cookies = request.getCookies();

    if(cookies != null){

for(Cookie cookie : cookies){

String name = cookie.getName();

if("egg".equals(name)){

value = cookie.getValue();

}

}

}

*****4、cookie的优缺点

优点:

a、cookie存储在客户端硬盘上,不会给服务器端造成压力

b、cookie是用来提高用户体验的

缺点:

cookie存储在客户端的硬盘中,容易被删除、信息容易被泄露

*****5、cookie与session区别

a、session信息存储在服务器端的内存中

   cookie信息存储在客户端硬盘中

   

b、session可以存储任何对象

cookie只能存储字符串

c、session关闭浏览器、超时、手动代码销毁,进行销毁

cookie是时间过期、浏览器清除进行销毁

d、session一般保存重要数据

cookie一般保存不重要数据,比如:记录用户名、浏览器地址

e、session是jsp九大内置对象

   cookie不是jsp九大内置对象

Apache文件上传与下载

一、文件上传

1、文件上传form表单注意事项

a、form表单提交方式必须是post,method="post"

b、form表单类型一定是上传模式,enctype="multipart/form-data"

c、input框type属性必须是file,

2、保存文件注意事项

a、文件保存在硬盘中,文件路径保存在数据库中

b、上传文件保存时,一定要重命名,否则会覆盖,一般使用用户名+时间作为文件名

c、数据库中储存文件路径、原文件名,因为下载时,要把原文件名还给原文件

二、文件下载

1、提交记录的id到servlet,servlet获取参数id,是根据id到数据库中查询记录,把文件名与储存路径查询出来

2、调用downFile方法,第一个参数:文件存储路径,第二个参数:文件名,第三个参数:response

三、UUID算法

UUID算法是一个32位16进制的字符串,保证唯一性,是线程安全的

使用:

String code = UUID.randomUUID().toString();

*四、提交方式get与post区别

get提交:

1、get提交会有长度限制

2、get提交会在浏览器中显示参数,不安全

3、浏览器会缓存get提交

4、get提交使用了一次TCP,效率高

post提交:

1、post提交不会有长度限制,文件上传必须使用post

2、post提交不会在浏览器中显示参数,安全

3、浏览器不会缓存post提交

4、post提交使用了两次TCP,效率低

注:a链接、form默认、js跳转、iframe、浏览器访问都是get提交

form method="post"是post提交

el表达式与jstl

el表达式与jstl

*一、el表达式

1、什么是el表达式

el表达式全称:expression language 表达式语言 sun公司

作用:来取代jsp中的java代码,在jsp中不再使用<% %>

2、运行环境

el表达式是Tomcat4之后版本自带的,不需要导第三方的jar包,这个环境很早就有了

3、el表达式的语法

el表达式语法由$与{}组成,比如${表达式}

el表达式获取对象属性,语法如下:

a、${key.属性名 }

b、${key['属性名'] }

注:其中的‘属性名’并不是类中的属性名,与类中的属性名无关,调用的是属性get方法,

       首字母变大写,前面加get,然后去类中找get方法

       

       属性名的前3个字母不要大写

4、el表达式的内置对象

a、域对象

对象                                         el表达式 描述

pageContext    ${pageScope.key} 在pageContext范围中根据key值查询

      request    ${requestScope.key}           在request范围中根据key值查询

      session        ${sessionScope.key}           在session范围中根据key值查询

    application            ${applicationScope.key}      在application范围中根据key值查询

    

    b、获取URL参数

     ${param.参数名 }            request.getParameter("参数名")

     ${paramValues.参数名 }      request.getParameterValues("参数名")

    

    c、获取cookie值

     ${cookie.key.name}        获取cookie的name属性

     ${cookie.key.value}       获取cookie的value属性

    

    d、pageContext对象(jsp最基础的内置对象)

     ${pageContext.request.requestURI }        获取当前相对路径

     ${pageContext.request.contextPath }      获取项目名/根路径

    

    e、empty对象(判断空)

     ${empty key}    判断key是否为空,如果为空返回true

                                                                           不存在范围、空字符串、空集合、null都返回true

     ${!empty key}                 取反                                                      

     ${not empty key}              取反                                                       

   el的内置对象有哪些

   pageContextScope、 request Scope、sessionScope、applicationScope

   param、paramValues、empty、cookie、pageContext

    

  5、el表达式转义符

   ==                                 eq

!=                                 ne

<                                  lt

<=                                 le

>                                  gt

>=                                 ge

&&                                 and

||                                 or

!                                  not

      

二、jstl

1、什么是jstl标签库

jstl全称:jsp standard tag library    jsp标准标签库    sun公司推出

2、jstl标签库包含哪些

a、核心库

b、格式库

c、函数库

d、SQL库(从来不用)

3、运行环境

jstl需要导入第三方jar包,Tomcat没有自带jstl的jar包,jar包:jstl-1.2.jar

*三、核心库

1、核心库的使用

引用标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>   

标签语法:

作用:处理页面的业务逻辑,比如:if、for

2、常用标签

                 用于输出数据到网页上

              把变量存储到域对象中,scope属性默认值是page

              指定范围删除变量,scope属性不写,四个范围都会被删除

                  用于判断语句,与java中的if相同

              用于一组判断,结合使用

                用于一组判断,结合使用       

           用于一组判断,结合使用

             用于循环,属性如下:

                         items            用于存放集合的key值

                         var              定义变量,集合中每个元素赋予此对象

                         varStatus        变量状态,可以用来做序号

                                          i.index每行的下标,从零开始

                                          i.count统计当前是第几行,从1开始

                                 begin            循环开始位置

                                 end              循环结束位置

                                 step             下标的步长

四、格式化库

1、格式化库的使用

引用标签库:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>   

标签语法:

作用:格式化时间与数字

2、常用标签                     

fmt:formatDate 格式化时间

fmt:formatNumber 格式化数字

五、函数库

1、函数的使用

引用标签库:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>   

标签语法:${fn:函数名(参数) }

作用:调用函数获取相应结果,这些函数都是字符串函数

2、常用函数

fn:contains(string, substring)

 如果参数string中包含参数substring,返回true

fn:containsIgnoreCase(string, substring)

 如果参数string中包含参数substring(忽略大小写),返回true

fn:endsWith(string, suffix)

 如果参数 string 以参数suffix结尾,返回true

fn:escapeXml(string)

 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回

fn:indexOf(string, substring)

 返回参数substring在参数string中第一次出现的位置

fn:join(array, separator)

 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。

fn:length(item)

返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。

fn:replace(string, before, after)

 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果

fn:split(string, separator)

 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素

fn:startsWith(string, prefix)

 如果参数string以参数prefix开头,返回true

fn:substring(string, begin, end)

 返回参数string部分字符串, 从参数begin开始到参数end位置

fn:substringAfter(string, substring)

 返回参数substring在参数string中后面的那一部分字符串

fn:substringBefore(string, substring)

 返回参数substring在参数string中前面的那一部分字符串

fn:toLowerCase(string)

 将参数string所有的字符变为小写,并将其返回

fn:toUpperCase(string)

 将参数string所有的字符变为大写,并将其返回

fn:trim(string)

 去除参数string 首尾的空格,并将其返回

***** 六、jsp标签指令

  1、<%@ page %>           用来设置网页信息,比如:字符编码、网页类型、导包

  2、<%@ include %> jsp静态嵌入

  3、<%@ taglib %> 在页面引入第三方标签库,比如:jstl

 

servlet + jsp

*一、servlet与jsp职责

   1、servlet职责:设置字符编码、收集表单参数、调用业务逻辑、页面跳转。

   2、jsp职责:呈现数据给浏览器

   

*二、servlet怎么跳转到jsp

   servlet跳转到jsp有两种方式:转发(forward)、重定向(redirect)

   1、什么是转发

             转发是web服务器请求的传递,用户发送request到servlet,servlet把处理好的结果转移到jsp

             在jsp页面呈现内容,整个过程使用了一个request,浏览器地址是最初始的地址

             

             转发代码:request.getRequestDispatcher("personList.jsp").forward(request, response);

             

   2、什么是重定向

             重定向是web服务器根据请求的需要,重新发送新的请求,用户发送请求到servlet,servlet处理好

             结果响应掉第一次请求,告知浏览器重新发送一个新的request到jsp页面,整个过程使用了俩个

      request,浏览器地址是最后一次请求的地址,是jsp地址

      

            重定向代码:response.sendRedirect("personList.jsp");

            

           注: 转发与重定向不能同时使用

           

 三、什么时候用forward,什么时候用redirect

    1、查询用forward

    2、增删改用redirect

    

*四、URL什么时候使用servlet地址,什么时候用jsp地址

         一个请求需要用到数据库,就用servlet地址

         一个请求不需要用到数据库,就用jsp地址

*五、forward与redirect

    1、转发是请求的传递,整个过程使用了一个request

          重定向是结束第一次请求,告知浏览器发送新的请求,整个过程使用了俩个request

    2、转发:浏览器地址是最初始的地址

               重定向:浏览器地址是最后一次的地址

    3、转发可以使用request、session、application对象传递参数,可以传递任何对象

               重定向只能使用URL传递参数,只能传递字符串

               

4、转发会重复提交表单

      重定向不会重复提交表单

5、转发只能在项目内部跳转

      重定向可以跳转到项目外部

 *****六、jsp与servlet区别

          相同点:

          jsp就是一个简易的servlet,都是用来处理用户请求

          不同点:

          jsp是一个动态网页,用来呈现数据到浏览器

          servlet是一个java类,用来处理用户请求与业务逻辑

          

          jsp侧重呈现

          servlet侧重于业务逻辑实现

Filter(过滤器)

*一、web的三大组件

servlet:处理用户的请求与响应

Filter:过滤请求、拦截请求

Listener:监听web对象,比如:request、session、application

二、Filter创建步骤

1、创建一个类实现javax.servlet.Filter接口,重写接口中的抽象方法,一共三个方法分别如下:

   init()            初始化方法

   doFilter()        拦截用户请求

   destroy()         销毁方法

   

   2、在项目web.xml中配置Filter信息

      

      filter名称(自定义)

      filter类完整路径

      

      

      filter名称(自定义)

      过滤路径(必须以/开头)

      

注:过滤路径使用通配符/*  能过滤到所有路径,包括:html、jsp、servlet、css、img、js

*三、Filter生命周期

1、执行构造方法实例化

2、执行init方法初始化

3、执行doFilter方法拦截请求

4、当Tomcat关闭时,执行destroy方法进行销毁

Tomcat启动时就会启动构造方法和init方法,自始至终只会执行一次,Filter对象是单实例的,

当Tomcat关闭时,destroy方法也只会执行一次,销毁一个对象

*四、Filter与Servlet优先级

访问优先级:Filter > Servlet

实例化优先级:Filter > Servlet

*五、Filter拦截只认request

Filter拦截只会拦截request请求,产生新的request对象就会被拦截一次,那么转发只会拦截一次,

重定向会拦截两次

六、Filter作用

1、设置全局的request、response的字符编码

2、登录拦截

3、权限拦截        

Listener(监听器)

一、什么是Listener

Listener是web三大组件之一,用来监听request、session、application对象的创建、销毁、存储等动作,

监听器的根接口java.util.EventListener

二、监听器分类

1、对象的创建与销毁,对象包含:request、session、application

ServletRequestListener                    监听request对象创建与销毁

HttpSessionListener                       监听session对象创建与销毁

ServletContextListener                    监听application对象创建与销毁

2、对象存储值,对象包含:request、session、application

ServletRequestAttributeListener           监听request对象存储值

HttpSessionAttributeListener              监听session对象存储值

ServletContextAttributeListener           监听application对象存储值

三、Listener创建步骤

1、创建一个类实现监听接口,重写接口中的抽象方法

2、在web.xml中配置listener信息,代码如下:

监听的完整路径

*四、Listener、Filter、Servlet优先级

访问优先级:Filter > Servlet

实例化优先级:Listener > Filter > Servlet

  

    

    

    

    

    

    

          

你可能感兴趣的:(java,开发语言,javaweb)