前期准备:创建一个项目,并配置好一些需要的文件。
创建好项目后就创建一个类RequestFilter。
创建RequestFilter类是需要继承一接口,必须是javax.servlet包下的Filter接口。
创建好后在RequestFilter中创建线程:
//创建线程
threadLocalRequest、threadLocalResponse
在doFilter()方法中写
//把request、response传入
import java.io.IOException; 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.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestFilter implements Filter { //创建线程 public static ThreadLocal<HttpServletRequest> threadLocalRequest = new ThreadLocal<HttpServletRequest>(); public static ThreadLocal<HttpServletResponse> threadLocalResponse = new ThreadLocal<HttpServletResponse>(); public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { threadLocalRequest.set((HttpServletRequest) arg0); threadLocalResponse.set((HttpServletResponse) arg1); arg2.doFilter(arg0, arg1); } public void destroy() { } public void init(FilterConfig arg0) throws ServletException { } }
在类RequestFilter中写好代码后在WEB-INF目录下的web.xml文件中注册此类,
<filter> <filter-name>RequestFilter</filter-name> <filter-class>包名.RequestFilter</filter-class> </filter> <filter-mapping> <filter-name>RequestFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>RequestFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
注册好后就可以在Java类中轻松获取自己在Action或页面上保存在Session中值,具体调用
//获取request
HttpServletRequest request = RequestFilter.threadLocalRequest.get(); //获取当前用户IP String ip = AddrIPUtil.getIpAddr(request);
相关推荐
### 普通Java类获取Request的方法 在Java Web开发中,经常需要在非Servlet类(如普通Java类)中获取`HttpServletRequest`对象,以便访问请求中的参数、头信息等。通常情况下,`HttpServletRequest`对象是在Servlet...
在探讨如何在普通的Java类中获取`PageContext`对象之前,我们先来了解一下`PageContext`的基本概念及其在JavaWeb开发中的重要性。`PageContext`是JavaServer Pages(JSP)技术的核心类之一,它提供了对当前页面的上...
### 普通类传入对象request:深入解析与实践 在Web开发中,`HttpServletRequest`和`HttpServletResponse`对象是处理HTTP请求和响应的核心组件。对于初学者而言,掌握如何在自定义类中有效利用这两个对象至关重要。...
Spring MVC 中几种获取request和response的方式,讲解详细实用!
这些类可以是普通的Java类,通过序列化和反序列化机制与ICE通信。例如: ```java public class Request { private String methodName; private Object[] parameters; // getters and setters } public class ...
利用过滤器去获取request和response,进行将其设置到ThreadLocal从而保证我的请求的安装线,这样就能在java普通类中获取request和response
利用过滤器去获取request和response,进行将其设置到ThreadLocal从而保证我的请求的安装线,这样就能在java普通类中获取request和response
### 对于JSP的理解 #### 1. JSP 概述 ##### 1.1 什么是JSP? JSP(JavaServer Pages)是Java技术...此外,`request` 还提供了诸如 `getRequestURI()` 和 `getParameter(String name)` 等方法来获取请求的具体信息。
- **示例**:通过`java.io.File`类可以创建文件对象并获取其路径。 - 获取当前工作目录的默认路径为`System.getProperty("user.dir")`。 #### 五、案例分析 下面通过一个具体的案例来进一步说明路径获取的方法:...
本地存储时,可以使用Java的`java.io.File`类创建文件并写入数据;如果是云存储,就需要借助相关的SDK来完成文件的上传。 总的来说,这个“java文件上传实例”涵盖了前端交互、后端处理、文件上传的限制、拦截器的...
7. JSP隐含对象:JSP中有一些预定义的对象,如`out`, `request`, `response`, `session`, `application`,它们提供了与HTTP请求交互的能力。 8. 关联表与外键:在数据库设计中,如果两个表有关联,其中一个表的主键...
26. **JSP内置对象**:request对象用于获取客户端请求信息,response对象用于响应客户端,session对象用于管理用户会话,application对象代表整个Web应用,pageContext对象用于访问JSP页面的上下文信息,还包括out、...
- **request**:HttpServletRequest对象,用于获取请求参数。 - **response**:HttpServletResponse对象,用于设置响应头和内容。 - **cookie**:用于处理Cookie。 - **out**:JspWriter对象,用于输出内容。 -...
在`doPost`方法中,通过`ServletFileUpload.parseRequest(request)`获取到一个`FileItem`列表,`FileItem`对象代表了请求中的一个字段,可能是普通的表单字段或上传的文件。遍历这个列表,对于每个`FileItem`,如果...
JSP内置对象有request、response、session、application、pageContext、out、config、page、exception。 41. **作用域**: page、request、session、application,范围依次增大,page只在当前JSP页面有效。 42. ...
2. **创建DiskFileItemFactory**:这个工厂类负责创建`FileItem`对象,这些对象代表了上传请求中的各个部分。你可以设置临时文件存储路径和大小限制。 3. **创建ServletFileUpload**:这个类是实际处理文件上传的...
1. **JSP内置对象**:JSP(JavaServer Pages)提供了九个内置对象,它们分别是:request(请求对象)、response(响应对象)、session(会话对象)、application(应用程序对象)、out(输出对象)、pageContext...
它们是由JSP引擎根据Servlet规范创建的Java类实例,主要用于简化开发者的工作。JSP页面中的9种主要隐含对象包括: - `request`: javax.servlet.http.HttpServletRequest,用于处理客户端请求,如获取请求参数。 - ...
3.5 response回应对象的应用 3.5.1 HTTP头信息的操作 3.5.2 设置MIME类型 3.5 13页面重定向操作 3.6 Session会话对象的应用 3.6.1 session的生命周期 3.6.2 会话的创建与获取. 3.6.3 移除session中的数据 3.6.4 设置...
- **方法**:`init(FilterConfig config)`、`doFilter(ServletRequest request, ServletResponse response, FilterChain chain)`、`destroy()`。 #### 七、JSP - **JSP 概念**:Java Server Pages,结合了 HTML、...