zoukankan      html  css  js  c++  java
  • servlet_4

    过滤器入门
    	过滤器的概念及执行基本流程
    	过滤器的使用场景
    	过滤器的实现及基本配置
    
    
    过滤器链
    	过滤器链的配置
    		使用注解的方式无法保证过滤器链的执行顺序,所以只能使用web.xml的配置
    		按照出现在web.xml的filter-mapping顺序依次经过过滤器
    		
    异步过滤器
    	与异步servlet类似
    	
    	异步过滤器的配置
    	注解方式:设置@webfilter的属性asyncsupport属性为true
    	web.xml方式:
    
    与请求分派协作
    	dispatcherTypes=DispatcherType.INCLUDE
    	
    包装器
    	包装器的概念
    	包装器类的使用
    	
    	在servlet api中提供了4个包装器类
    	与装饰器的设计模式相类似
    	允许将任何方法都包装到servletrequest...之中
    	
    	javax.servlet.ServletRequestWrapper,在其后加wrapper


    一、servlet
    package com.fgy; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/servlet6") public class Servlet6 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getParameter("content")); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } =============================================== 二、过滤器 package com.fgy; import java.io.IOException; import javax.servlet.DispatcherType; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; @WebFilter(urlPatterns="*") public class Filter2 implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { chain.doFilter(new MyWrapper((HttpServletRequest) request), response); } public void init(FilterConfig fConfig) throws ServletException { } } ============================================= 三、包装器 进行修改,实现将请求参数的值1替换为one package com.fgy; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class MyWrapper extends HttpServletRequestWrapper { private HttpServletRequest request; public MyWrapper(HttpServletRequest request) { super(request); this.request = request; } @Override public String getParameter(String name) { String value = request.getParameter(name); return value.replaceAll("1", "one"); } }
  • 相关阅读:
    在线编辑Office文件
    将自然数分解为若干连续的自然数
    C#远程连接Oracle数据库(不安装客户端)
    大数阶乘
    小写金额转换为大写金额
    SQL优化
    C#枚举器:foreach语句、IEnumerable、IEnumerator以及yield return (二)
    C#枚举器:foreach语句、IEnumerable、IEnumerator以及yield return (一)
    PPT播完最后一个动画后自动进入下一页
    C#中的abstract、virtual、override和new
  • 原文地址:https://www.cnblogs.com/createyuan/p/9096877.html
Copyright © 2011-2022 走看看