JAVA WEB路径相关问题

21 篇文章 0 订阅

1."/"的使用:

给服务器使用: “/” 表示在当前web应用的根目录(tomcat里面的指定项目中webRoot下)
给浏览器使用: “/” 表示在webapps的根目录下

2.查询流程:

给浏览器使用

例子: url=/W项目名/资源名

先定位"/“然后定位项目名;之后到web.xml中寻找是否有url-pattern的值为"资源名”,如果有,定位到对应的Servlet;

如果没有,到webRoot根目录下找有没有对应的资源名;如果有,定位,如果没有就报404错误;

给浏览器使用:

例子:url=/资源名

在本项目web.xml中寻找是否有url-pattern的值为"资源名",如果有,定位到对应的Servlet;

如果没有,到webRoot根目录下找有没有对应的资源名;如果有,定位,如果没有就报404错误;

3.具体问题分析:

  1. 转发:
    request.getRequestDispatcher("/target.html").forward(request, response);

转发是服务器内部的跳转,"/"是给服务器使用的,表示当前web应用的根目录,这句代码的含义是:转发到webRoot/target.html

2)重定向
重定向是服务器给浏览器发送响应之后,浏览器根据响应头中附带location再次请求新页面的过程.这个地址是给浏览器用的:

例子:response.sendRedirect("/Web_demo/target.html");

由于webapps的根目录有多个项目,所以需要指定具体的项目名;

3)html页面的超连接href
例子:

    response.getWriter().write("<html><body><a href='/Web_demo/target.html'>超链接</a></body></html>)

由于超链接是给浏览器使用,所以"/"表示webapps根目录下

  1. html页面中的form提交地址
    response.getWriter().write(")

同上

4 读取web应用下的资源文件

1)"."的使用
“.” 代表java命令运行目录。

     在java项目中,java命令运行目录就是根目录
     在javaweb项目中java命令运行目录在tomcat/bin目录下(Servlet在服务器上运行,而打开服务器的文件startup.bat在bin目录下)
      结论: 在web项目中, . 代表在tomcat/bin目录下开始,所以不能使用这种相对路径。

2)getRealPath
getRealPath读取,自动定位到本项目中的WebRoot根目录,返回资源文件的绝对路径,
String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");

3). getResourceAsStream()

    getResourceAsStream得到资源文件,自动定位到本项目中的WebRoot根目录,返回的是输入流
    InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
    Properties prop = new Properties();
    prop.load(in);

5 读取web应用工程名

getContextPath():

 获取的是本工程名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值