Web程序设计jsp课件-servlet技术4.ppt
文本预览下载声明
JSP两种模式 JSP + JavaBean 模式一:JSP + JavaBean JSP页面响应请求并处理结果返回给用户 数据由JavaBean处理、JSP实现页面的表现 实现了页面表现和商业逻辑的分离 比较简单、适合小型的应用 缺点 如果业务逻辑复杂,使用此模式会在JSP大量内嵌代码、使页面庞大复杂 JSP+JavaBean+Servlet 模式二: JSP + JavaBean + Servlet MVC:模型视图控制器模式 M:Model V:View C:Control Servlet过滤器 功能:对Servlet容器的请求和响应对象进行检查和修改 Servlet调用之前检查Request对象 Servlet调用之后检查Response对象 Servlet过滤器(续) 每个Filter担任很少的任务,多个Filter可以相互协作,通过这种协作可以完成一个复杂的功能 Filter 声明:public interface Filter init(FilterConfig):初始化方法 doFilter(ServletRequest,ServletResponse,FilterChain):完成实际的过滤器操作 destroy():销毁过滤器 FilterChain:代码的过滤链,通过该接口把过滤的任务在不同的Filter之间转移 声明:public interface FilterChain doFilter(ServletRequest,ServletResponse):通过该方法调用下个过滤器,若没有下个Filter,将调用目标的资源 Servlet过滤器(续) FilterConfig:它代表了Filter的配置,和Servlet一样,Filter也有一些配置信息 声明:public interface FilterConfig getFilterName():返回Filter的名字 getInitParameter(String name):获得名称为name的初始化参数 getServletContext():返回Filter所在Servlet上下文对象 getInitParameterNames(): 功能 拒绝黑名单客户访问留言薄 将服务器响应客户请求所花时间写入日志 Servlet过滤器(续) 当客户请求被拒绝的NoteFilter流程 Servlet过滤器(续) 当客户请求被接受的NoteFilter流程 Servlet过滤器(续) public class NoteFilter implements Filter { private FilterConfig config = null; private String blackList=null; public void init(FilterConfig config) throws ServletException { this.config = config; blackList=config.getInitParameter(blacklist);} public void destroy() { config = null; } public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws …{ String username =((HttpServletRequest) request).getParameter(username); … if (username!=null username.indexOf(blackList) != -1 ) { … PrintWriter out = response.getWriter();… out.println(h1对不起,+username + ,你没有权限留言 /h1); …} long before = System.currentTimeMillis(); config.getServletContext().log(NoteFilter:before call chain.doFilter()); chain.doFilter(request, response); config.getServletContext().log(NoteFilter:after call chain.doFilter()); long after = System.cur
显示全部