问题1:
orgapachecatalinaconnectorResponseFacade cannot be cast to javaxservlet错误提示似乎挺明显的了,说一个类型不能强制转化为另一个类型。
待转型类型是:orgapachecatalinaconnectorResponseFacade目标类型是:javaxservlet
我想你应该看出来了,ResponseFacade -->>
也就是说你是用的那个arg1肯定是一个response,你写错了而已。
改过来就好。也建议你把arg这种的参数名字写作res或者rep比较容易识别,并且可以提高代码可读性的变量名。
问题2:
关于过滤器实现地址的拦截,那么首先获得请求的地址,也就是通过request对象,它有好多个获得url的不同不同部分的方法。比如可以使用getServletPath()方法获得请求的路径,然后判断是否合法,不合法跳转到指定页面,合法那么继续chaindoFilter()。
当我们访问indexjsp/时,其实并不是我们浏览器真正访问到了服务器上的indexjsp 文件,而是先由代理服务器去访问indexjsp。
代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问indexjsp的。
所以indexjsp中通过 requestgetRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址 的方法:
public class Myfilter implements Filter {
public void destroy() {
}
private >
private >
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
request = (>
response = (>
Systemoutprintln(requestgetRequestURI());
Systemoutprintln("===ff===="+requestgetQueryString());
if("1"equals(requestgetRequestURI()substring(("/"+requestgetContextPath())length()))){
requestgetRequestDispatcher("/myjsp")forward(request, response);
return;
}
arg2doFilter(request, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
展开
Request中的各种方法
2017年02月09日 10:36:55 现龙在田丶 阅读数:7250 标签: java web web Request 更多
个人分类: JAVA Web Request
原文地址:>
java文件中获得路径
ThreadcurrentThread()getContextClassLoader()getResource("") //获得资源文件(class文件)所在路径
ClassLoadergetSystemResource("")
Class_NameclassgetClassLoader()getResource("")
Class_Nameclass getResource("/")
Class_Nameclass getResource("") // 获得当前类所在路径
SystemgetProperty("userdir") // 获得项目根目录的绝对路径
SystemgetProperty("javaclasspath") //得到类路径和包路径
打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4jjar
2、 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetRequestURI()
文件的绝对路径:applicationgetRealPath(requestgetRequestURI());
当前web应用的绝对路径 :applicationgetRealPath("/");
取得请求文件的上层目录:new File(applicationgetRealPath(requestgetRequestURI()))getParent()
31 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetRequestURI()
文件的绝对路径:applicationgetRealPath(requestgetRequestURI());
当前web应用的绝对路径 :applicationgetRealPath("/");
取得请求文件的上层目录:new File(applicationgetRealPath(requestgetRequestURI()))getParent()
3、Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetServletPath();
文件的绝对路径 :requestgetSession()getServletContext()getRealPath(requestgetRequestURI())
webapp路径:requestgetSession()getServletContext()getRealPath("/")
当前web应用的绝对路径 :servletConfiggetServletContext()getRealPath("/");
(ServletContext对象获得几种方式:
javaxservlet>
我当初在利用Struts2实现电子商务购物系统的时候,也遇到这个问题,想记录用户之前访问的URL,包括点击的所有参数信息,后面给我解决了。我是利用拦截器去做的,然后把用户的URL存到Session当中。这是我的源码,你可以按照这个思路去做,应该没有问题的,我的项目已经验收通过了。希望能够帮到你,谢谢
/
方便用户返回上一个浏览界面
/
import javaxservlet>
>
servlet中获得项目绝对路径
String filePath=thisgetServletConfig()getServletContext()getRealPath("/");
根目录所对应的绝对路径:requestgetServletPath();
文件的绝对路径 :requestgetSession()getServletContext()getRealPath(requestgetRequestURI())
当前web应用的绝对路径 :servletConfiggetServletContext()getRealPath("/");
ServletContext对象获得几种方式:
Javaxservlet>
以上就是关于JAVA过滤器ServletRequest如何转换成HttpServletRequest全部的内容,包括:JAVA过滤器ServletRequest如何转换成HttpServletRequest、java filter 如何中获取请求地址、Request中的各种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)