Servlet Filtering开发详解

需积分: 19 34 下载量 83 浏览量 更新于2024-08-17 收藏 2.87MB PPT 举报
"Servlet技术的学习PPT涵盖了Filtering的开发步骤以及Java Web的相关基础知识,包括B/S编程模型、HTTP协议的介绍、Servlet的接口和Web容器等概念。" 在Servlet学习中,Filtering是一个重要的部分,它允许我们对HTTP请求和响应进行拦截和处理。Filtering的开发步骤如下: 1. 创建Filter类:首先,你需要创建一个新的Java类并实现`javax.servlet.Filter`接口。这个类将成为你的过滤器,通过实现Filter接口,你可以定义如何处理HTTP请求和响应。 2. 实现Filter方法:在Filter类中,主要关注三个方法:`init()`、`doFilter()`和`destroy()`。`init()`方法在过滤器初始化时调用,可以用于设置初始化参数。`doFilter()`方法是过滤的核心,它会在每次请求到达目标Servlet之前和之后被调用,你可以在这里编写过滤逻辑。`destroy()`方法在过滤器被销毁时调用,用于清理资源。 3. 配置Filter:接下来,你需要在`web.xml`部署描述符文件中配置你的Filter。通过`<filter>`元素定义过滤器,然后使用`<filter-mapping>`元素将过滤器与特定的URL模式、Servlet或整个Web应用关联起来。这样,每当匹配的请求发生时,你的过滤器就会介入。 HTTP协议是Web应用的基础,它是一个无状态、无连接的应用层协议,基于TCP/IP。HTTP通信通常包含以下四个阶段: 1. 建立连接:客户端(通常是浏览器)连接到服务器的指定端口(默认是80)。 2. 发送请求:客户端发送HTTP请求,请求可能包括GET、POST等方法,以及URL、请求头和请求体等信息。 3. 接收响应:服务器处理请求并返回HTTP响应,响应中包含状态码、响应头和响应体。 4. 关闭连接:完成通信后,客户端和服务器关闭TCP连接。 了解HTTP协议有助于理解Servlet的工作原理。Servlet是一种Java技术,它提供了处理HTTP请求的能力。在Servlet中,`web.xml`文件用来配置Servlet,包括Servlet的映射和初始化参数。Servlet的调用过程包括了容器接收请求、解析请求、实例化Servlet、调用Servlet的方法处理请求,并最终返回响应。 Web容器,如Tomcat、Jetty等,是运行Servlet的环境,它们负责管理Servlet的生命周期,包括加载、初始化、服务和销毁Servlet实例。Web容器也处理HTTP请求的路由,确保请求到达正确的Servlet。 在B/S(Browser/Server)编程模型中,客户端通过HTTP协议与服务器通信,浏览器作为客户端代理,负责发送请求和显示服务器响应的内容。理解这些基本概念对于深入学习Servlet和Java Web开发至关重要。

ssm管理系统文件中util文件里PageHelper类解释以下代码package com.util; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; public class PageHelper { public static void getPage(List<?> list, String name, List<String> nameList, List<String> valueList, int pageSize, String number, HttpServletRequest request, String method) { StringBuffer buffer = new StringBuffer(); String name2 = name.substring(0, 1).toUpperCase() + name.substring(1); String path = ""; String action = "getAll" + name2 + ".action"; if (method != null) { action = "query" + name2 + "ByCond.action"; } List<Object> objList = new ArrayList<Object>(); if (nameList != null && valueList != null) { for (int i = 0; i < nameList.size(); i++) { path += "&" + nameList.get(i) + "=" + valueList.get(i); } } int pageNumber = list.size(); int maxPage = pageNumber; if (maxPage % pageSize == 0) { maxPage = maxPage / pageSize; } else { maxPage = maxPage / pageSize + 1; } if (number == null) { number = "0"; } int start = Integer.parseInt(number) * pageSize; int over = (Integer.parseInt(number) + 1) * pageSize; int count = pageNumber - over; if (count <= 0) { over = pageNumber; } for (int i = start; i < over; i++) { Object obj = list.get(i); objList.add(obj); } buffer.append("  共为"); buffer.append(maxPage); buffer.append("页  共有"); buffer.append(pageNumber); buffer.append("条  当前为第"); buffer.append((Integer.parseInt(number) + 1)); buffer.append("页  "); if ((Integer.parseInt(number) + 1) == 1) { buffer.append("首页"); } else { buffer.append("首页"); } buffer.append("  "); if ((Integer.parseInt(number) + 1) == 1) { buffer.append("上一页"); } else { buffer.append("上一页"); } buffer.append("  "); if (maxPage <= (Integer.parseInt(number) + 1)) { buffer.append("下一页"); } else { buffer.append("下一页"); } buffer.append("  "); if (maxPage <= (Integer.parseInt(number) + 1)) { buffer.append("尾页"); } else { buffer.append("尾页"); } String html = buffer.toString(); request.setAttribute("html", html); request.setAttribute(name + "List", objList); }

2023-05-05 上传