当前位置: 首页 > news >正文

公司网站建设款计什么科目成都网站建设定

公司网站建设款计什么科目,成都网站建设定,邢台瑞光网络科技有限公司,东莞智通人才网最新招聘目录 1 Filter 介绍 2 Filter 的生命周期 3 Filter 和 FilterChain 4 Filter 拦截过程 5 FilterConfig 6 Filter 使用 1 Filter 介绍 在 Tomcat 中#xff0c;Filter 是一种用于拦截请求和过滤响应的组件#xff0c;可以在请求到达 Servlet 之前或响应离开 Servlet 之后…目录 1 Filter 介绍 2 Filter 的生命周期 3 Filter 和 FilterChain 4 Filter 拦截过程 5 FilterConfig 6 Filter 使用 1 Filter 介绍 在 Tomcat 中Filter 是一种用于拦截请求和过滤响应的组件可以在请求到达 Servlet 之前或响应离开 Servlet 之后对其进行处理。 Filter 的主要应用场景包括 权限控制可以使用 Filter 来检查请求的用户是否具有访问特定资源的权限日志记录可以使用 Filter 来记录请求和响应的信息以便进行监控和故障排除性能监控可以使用 Filter 来测量请求的处理时间和响应时间以便进行性能优化数据加密和解密可以使用 Filter 来对请求和响应进行加密和解密以保护敏感信息的安全 2 Filter 的生命周期 Filter 的生命周期由 Tomcat 容器管理包含以下几个方法 构造器方法在 web 工程启动的时候执行init 初始化方法在 web 工程启动的时候执行doFilter 过滤方法每次拦截到请求就会执行 destroy 销毁停止 web 工程的时候就会销毁 Filter 过滤器 3 Filter 和 FilterChain Filter 接口 public interface Filter {// 容器创建的时候调用, 即启动 Tomcat 的时候调用public void init(FilterConfig filterConfig) throws ServletException;// 由 FilterChain 调用, 并且传入 FilterChain 本身, 最后回调 FilterChain 的 doFilter() 方法public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException;// 容器销毁的时候调用, 即关闭 Tomcat 的时候调用public void destroy();} FilterChain 接口 public interface FilterChain {// 由 Filter.doFilter() 中的 chain.doFilter 调用public void doFilter(ServletRequest request, ServletResponse response)throws IOException, ServletException; } 当 Tomcat 接收到 URL 请求时它会根据在 web.xml 文件中配置的过滤器和映射路径来创建 FilterChain。如果某个请求匹配了一些过滤器的映射路径那么这些过滤器将被添加到 FilterChain。创建了 FilterChain 之后就开始执行 doFilter进行请求的链式处理。 过滤器执行顺序 通过 web.xml 配置的 Filter 过滤器执行顺序由 filter-mapping 标签的配置顺序决定。filter-mapping 靠前则 Filter 先执行靠后则后执行。通过修改 filter-mapping 的顺序便可以修改 Filter 的执行顺序通过 WebFilter 注解配置的 Filter 过滤器无法进行排序若需要对 Filter 过滤器进行排序建议使用 web.xml 进行配置 4 Filter 拦截过程 如图是 Filter 拦截过程示意图。所有 Filter 和 Web 资源都默认执行在同一个线程中因为Filter 和 Web 资源通常是在 HttpServlet 容器中运行的而 HttpServlet 容器是基于单线程模型的。对于 FilterChain 中的 Filter它们都使用同一 Request 对象。 以下是 Filter 拦截过程的一般步骤 客户端发送请求到给 Web 服务器Web 服务器接收到请求后将请求传递给 HttpServlet 容器HttpServlet 容器根据请求的 URL 路径和配置的映射信息确定应该调用哪些 FilterFilter 的 doFilter() 方法被调用该方法将接收请求和响应对象作为参数在 doFilter() 方法中Filter 可以执行各种操作例如检查请求头、修改请求参数、处理权限验证等如果 Filter 决定继续处理请求它可以通过调用 filterChain.doFilter() 方法将请求传递给下一个 Filter如果有下一个 Filter或 Web 资源没有下一个 Filter下一个 Filter 的 doFilter() 方法被调用直到请求到达最终的目标资源目标资源处理请求并生成响应响应通过 Filter 链反向传递每个 Filter 都可以在响应离开之前对其进行修改或处理最终响应被发送回客户端客户端接收到处理后的结果 5 FilterConfig FilterConfig 是 Filter 过滤器的配置文件类。Tomcat 每次创建 Filter 的时候也会同时创建一个 FilterConfig 类它包含了 Filter 配置文件的配置信息。 FilterConfig 类的作用是获取 filter 过滤器的配置内容 获取 Filter 的名称 filter-name 的内容 获取在 Filter 中配置的 init-param 初始化参数 获取 ServletContext 对象 Override public void init(FilterConfig filterConfig) throws ServletException {// 1、获取 Filter 的名称 filter-name 的内容System.out.println(filter-name 的值是 filterConfig.getFilterName());// 2、获取在 web.xml 中配置的 init-param 初始化参数System.out.println(初始化参数 username 的值是 filterConfig.getInitParameter(username));System.out.println(初始化参数 url 的值是 filterConfig.getInitParameter(url));// 3、获取 ServletContext 对象System.out.println(filterConfig.getServletContext()); } 6 Filter 使用 工程目录 web.xml 配置 ?xml version1.0 encodingUTF-8? web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0!-- display-name 元素常用于配置 servlet、过滤器或其他 Web 组件的显示名称。这个显示名称主要用于在管理界面或日志中标识该组件以方便识别和管理。 --!-- 标识项目名 --display-nameServletTest/display-name!-- 定义首页文件也就是用户直接输入域名时跳转的页面如http://localhost:8080/--welcome-file-listwelcome-filelogin.jsp/welcome-file/welcome-file-list!--filter 标签用于配置一个 Filter 过滤器--filter!--给 filter 起一个别名--filter-nameAdminFilter1/filter-name!--配置 filter 的全类名--filter-classcom.test.AdminFilter1/filter-class!-- 设置 Servlet 初始化参数可以通过 FilterConfig.getInitParamenter(String name) 方法访问初始化参数 --init-paramparam-nameusername/param-nameparam-valueroot/param-value/init-paraminit-paramparam-nameurl/param-nameparam-valuejdbc:mysql://localhost3306/test/param-value/init-param/filter!-- 设置 filter 映射 --filter-mapping!-- 和 filter 标签中的 filter-name 对应 --filter-nameAdminFilter1/filter-name!-- 设置匹配的路径这里设置为 /img/* 表示访问 img 目录下的图片都会调用该 filter(AdminFilter) --url-pattern/img/*/url-pattern/filter-mappingfilterfilter-nameAdminFilter2/filter-namefilter-classcom.test.AdminFilter2/filter-class/filterfilter-mappingfilter-nameAdminFilter2/filter-nameurl-pattern/img/*/url-pattern/filter-mapping /web-app login.jsp  % page contentTypetext/html;charsetUTF-8 languagejava % htmlheadtitle登录/title/headbodyform actionhttp://localhost:8080/servlettest/loginServlet methodget用户名: input typetext nameusername/ br密 码: input typepassword namepassword/ brinput typesubmit //form/body /html LoginServlet 类 package com.test;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;WebServlet(/loginServlet) public class LoginServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {resp.setContentType(text/html; charsetUTF-8);String username req.getParameter(username);String password req.getParameter(password);if (root.equals(username) 123456.equals(password)) {System.out.println(设置 Seesion: {user : username });req.getSession().setAttribute(user,username);System.out.println(登录成功);resp.getWriter().write(登录 成功);} else {System.out.println(登录失败);req.getRequestDispatcher(/login.jsp).forward(req,resp);}} }AdminFilter1 类 package com.test;import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.IOException;public class AdminFilter1 implements Filter {// doFilter 方法专门用于拦截请求。可以做权限检查Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChainfilterChain) throws IOException, ServletException {System.out.println(过滤器 AdminFilter1);HttpServletRequest httpServletRequest (HttpServletRequest) servletRequest;HttpSession session httpServletRequest.getSession();Object user session.getAttribute(user);// System.out.println(登录用户: user);// 如果等于 null说明还没有登录if (user null) {System.out.println(未登录跳转到登录页面);servletRequest.getRequestDispatcher(/login.jsp).forward(servletRequest,servletResponse);return;} else {// 让程序继续往下访问用户的目标资源System.out.println(AdminFilter1 调用 doFilter 方法);filterChain.doFilter(servletRequest,servletResponse);System.out.println(AdminFilter1 结束了 doFilter 方法的调用);}}Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 1、获取 Filter 的名称 filter-name 的内容System.out.println(filter-name 的值是 filterConfig.getFilterName());// 2、获取在 web.xml 中配置的 init-param 初始化参数System.out.println(初始化参数 username 的值是 filterConfig.getInitParameter(username));System.out.println(初始化参数 url 的值是 filterConfig.getInitParameter(url));// 3、获取 ServletContext 对象System.out.println(filterConfig.getServletContext());} }AdminFilter2 类 package com.test;import javax.servlet.*; import java.io.IOException;public class AdminFilter2 implements Filter {// doFilter 方法专门用于拦截请求。可以做权限检查Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChainfilterChain) throws IOException, ServletException {System.out.println(过滤器 AdminFilter2);System.out.println(AdminFilter2 调用 doFilter 方法);filterChain.doFilter(servletRequest,servletResponse);System.out.println(AdminFilter2 结束了 doFilter 方法的调用);} } 运行演示图 运行流程 启动服务器 Tomcat创建 AdminFilter1 和 AdminFilter2 对象获取 FilterConfig 配置并初始化创建 LoginServlet 对象获取 ServletConfig 配置并初始化进入首页文件 login.jsp客户端尝试请求访问 http://localhost:8080/servlettest/img/2.jpg由过滤器 AdminFilter1 处理输出“过滤器 AdminFilter1”和“未登录跳转到登录页面”之后跳转到 login.jsp 进行登录输入账号root密码123456由 LoginServlet 的 doGet() 方法处理设置 Seesion: {user : root }输出“登录成功”客户端再次请求访问 http://localhost:8080/servlettest/img/2.jpg由过滤器 AdminFilter1 和 AdminFilter2 依次处理调用 filterChain.doFilter 方法后可以对响应结果进行处理之后返回响应结果给客户端客户端得到响应结果显示图片
http://www.zqtcl.cn/news/146555/

相关文章:

  • 网站开发工程师资格证网站建设代理都有哪些
  • 汕头网站建设技术托管wordpress faq
  • 外贸网站建设系统能联系做仿瓷的网站
  • 阿里云网站域名绑定做网站的需要哪些职位
  • cnnic网站备案dnf网站上怎么做商人
  • 怎么做微拍网站代理记账公司注册
  • 长宁深圳网站建设公司建材公司网站建设方案
  • 做网站哪些软件比较好wordpress的留言功能
  • 域名申请好了怎么做网站山西手机版建站系统信息
  • 维度网络网站建设广东水利建设与管理信息网站
  • 浏阳市商务局网站溪江农贸市场建设做关于车的网站有哪些
  • 网站建设教程资源网站网站制作网站的
  • 公司网页是什么被公司优化掉是什么意思
  • 酒店网站建设方案结束语慈溪企业排名网站
  • 做行业网站广告能赚多少钱百度搜索下载安装
  • 寺院网站建设网页搭建
  • 网站设计报价是多少wordpress登录接口
  • 灵宝网站建设建h5网站费用
  • 泊头做网站的有哪些深圳网页制作与网站建设服务器
  • 网站设计的思路网页无法访问百度
  • 简述你对于网站建设的认识网络工程就业岗位有哪些
  • 征婚网站上教人做恒指期货做网站颜色黑色代码多少
  • 海南省建设工程质量监督网站如何做搞笑原创视频网站
  • 网页游戏人气排行榜百度seo插件
  • 免费申请论坛网站更改域名代理商对网站有影响吗
  • 河南做网站公司报价工商做年报网站
  • 用狐狸做logo的网站现在网站开发技术有哪些
  • html 网站添加悬浮二维码瑜伽网站设计
  • 帮别人做网站的单子制作图片库
  • 网站注册步骤律师在线咨询免费24小时电话