servlet path

本文总结了在Java Web开发中如何通过request对象获取各种类型的路径,包括但不限于:虚拟目录的实际路径、当前页面所在的目录路径、工程目录的路径等。文章详细介绍了通过不同方法获取路径的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从request获取各种路径总结
request.getRealPath("url"); // 虚拟目录映射为实际目录
request.getRealPath("./");    // 网页所在的目录

request.getRealPath("../"); // 网页所在目录的上一层目录

request.getContextPath();    // 应用的web目录的名称
http://localhost:7001/bookStore/
/bookStore/ => [contextPath] (request.getContextPath())

获取Web项目的全路径
String strDirPath = request.getSession().getServletContext().getRealPath("/");

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI()
结果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
结果:/TEST
(3)得到当前页面所在目录下全名称:request.getServletPath()
结果:如果页面在jsp目录下 /TEST/jsp/test.jsp
(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")
结果:D:\resin\webapps\TEST\test.jsp
(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
结果:D:\resin\webapps\TEST

2.在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:System.getProperty("user.dir")
结果:D:\TEST

3.在Servlet中取得路径:

(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
结果:E:\Tomcat\webapps\TEST
(2)得到IE地址栏地址:request.getRequestURL()
结果:http://localhost:8080/TEST/test
(3)得到相对地址:request.getRequestURI()

java.lang.IllegalArgumentException: UT000068: Servlet path match failed 是一种常见的异常,通常在使用Java的Servlet容器(如Tomcat)时出现。这个异常通常表示Servlet路径匹配失败,可能由以下原因引起: 1. **URL路径配置错误**:在web.xml或使用注解配置Servlet时,URL路径配置不正确,导致请求的URL无法匹配到任何Servlet。 2. **Servlet映射问题**:Servlet的映射配置不正确,导致无法正确匹配请求路径。 3. **上下文路径问题**:应用的上下文路径配置错误,导致请求路径与Servlet路径不匹配。 ### 解决方法 1. **检查URL路径配置**: - 确保在web.xml或使用注解配置的URL路径与请求的URL一致。 - 例如,在web.xml中配置如下: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> ``` 确保请求的URL路径为`/myServlet`。 2. **检查Servlet映射**: - 确保Servlet的映射配置正确,没有冲突的映射。 - 例如,使用注解配置: ```java @WebServlet("/myServlet") public class MyServlet extends HttpServlet { // ... } ``` 3. **检查上下文路径**: - 确保应用的上下文路径配置正确。 - 例如,如果上下文路径为`/myApp`,请求URL应为`http://localhost:8080/myApp/myServlet`。 ### 示例 假设你在web.xml中配置了一个Servlet: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> ``` 确保请求的URL路径为`/myServlet`,并且应用部署在正确的上下文路径下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值