【发布时间】:2019-06-17 15:15:31
【问题描述】:
我正在尝试将用 Java 1.8 编写的类转换为 Java 1.4。这是一个较旧的 Java 应用程序,但我以前从未在 Java 1.4 中编写过代码。
这是 Java 1.8 代码:
public class RequestContext implements Filter {
private static final ThreadLocal<HttpServletRequest> REQUEST_HOLDER = new ThreadLocal<HttpServletRequest>();
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
if (servletRequest instanceof HttpServletRequest) {
REQUEST_HOLDER.set((HttpServletRequest) servletRequest);
}
try {
chain.doFilter(servletRequest, servletResponse);
}
finally {
REQUEST_HOLDER.remove(); // Clean up the ThreadLocal
}
}
/**
* @return the HttpServletRequest for the current thread.
*/
public static HttpServletRequest getRequest() {
return REQUEST_HOLDER.get();
}
@Override
public void destroy() {
}
}
如何将以上内容转换为 Java 1.4?
【问题讨论】:
-
我建议下载并查看Java 1.4 SDK documentation 并根据编译器错误逐行查看。
-
Java 1.4 所针对的 Java EE 和 Servlet 规范的版本是什么?
-
您为什么要这样做?谁告诉你花时间向后移植到 2008 年结束生命的 Java 版本?
-
你为什么在乎?这是一个在 1.4 上运行的旧应用程序。
-
我很惊讶没有人明确提到将编译的 -source 级别设置为 1.4 (
javac -source 1.4 etc...)。在 1.4 之后实现的任何功能的使用都将被编译器标记。您使用的是哪个 IDE?
标签: java servlets thread-local