java url 相对路径_javaWeb中使用URL的情况总结(相对路径)

本文详细介绍了JavaWeb中URL的使用,包括绝对路径和相对路径的概念,以及在不同场景下的应用。重点讨论了相对路径的表示方法,如`.`, `..`和`/`。还讲解了在Tomcat和Eclipse中部署的JavaWeb项目中查找`.class`、`.java`和`.HTML`文件的路径规则。此外,文章列举了HTTP响应重定向、请求转发、JavaScript跳转、超链接标签、表单提交、web.xml配置、数据库连接路径等场景下的URL路径使用,并给出了相应的示例代码和注意事项。" 125228981,12584210,Python MNIST手写数字识别实践指南,"['Python', '深度学习', '机器学习', '图像处理', '神经网络']
摘要由CSDN通过智能技术生成

绝对路径:

是从盘符开始的路径,形如C:\windows\system32\cmd.exe

相对路径:1、“./” :表示文件目前所在的目录。2、“../”:表示文件的上一层目录。3、“/” :表示所在文件的一级目录。(就是在根目录下)

相对路径的例子:

1: C:\Program Files\other\index.htm

2: C:\Program Files\javaweb\test\01.htm

上面有两个绝对路径表示的文件路径!

问1:index.htm要想链接到01.htm这个文件,正确的链接应该是什么?

答1:“../javaweb/test/01.htm”问2:01.htm要想链接到index.htm这个文件,在01.htm文件里面应该是什么?答2:“../../other/index.htm”

Tomcat软件和Eclipse软件对于web项目的布局:

如图所示为Tomcat中部署的一个名叫“zuoye”的项目

7aab0b32d5eaea3ab86b4d8745949d04.png

如图所示为Eclipse中部署的一个名叫“zuoye”的项目的Navigator视图!

f5ee1f7f75d81e9f46e395ff0c5396ad.png

fae4b807aa71bad1e013a0626a8966e2.png

526761.html

总结:

1、我们在发布了的javaWeb项目的代码中写的相对路径都是根据tomcat软件来进行查找的!

2、查找".class"文件(字节码文件)

a、java项目就在Eclipse的工作空间中的项目的bin为根目录下去找

b、web项目就在Tomcat的webapps下的项目的WEB-INF/classes目录下找(也可以在Navigator视图下,项目下的Build文件下看到,但是实际在Tomcat的webapps文件下的对应的项目下找)

3、查找".java"文件

a、在项目的src为根目录下去找(一般不会找".java"文件,因为没有什么可以用的地方,除了拷贝代码以外)

4、查找".HTML"文件

a、java项目就在workspace中的项目找

b、javaWeb项目就在Tomcat安装路径中的项目下找(但是也可以在Eclipse中项目下WebContent文件下看到,但是实际查找是在Tomcat中的webapps文件下的对应的项目下找)

5、javaWeb项目中不会找".java"文件,只会找".class"文件

6、java项目中一般不会找".java"和".class"文件,而是找".properties"、".txt"、".jpg"之类的文件

javaWeb中使用URL的时候经常用到相对路径,下面是我总结的一些关于有用到文件路径的地方!!

1、HttpServletResponse对象的重定向:(伪代码如下)

response.sendRedirect("signIn.html");

response.sendRedirect("/zuoye/signIn.html");

response.sendRedirect("http://localhost:8080/zuoye/signIn.html");

response.sendRedirect("/zuoye/sign");

注释:第一行伪代码:直接写需要重定向的文件全名就行了

第二行伪代码:以“/”加项目名开头,后接需要重定向的文件相对项目名的路径

第三行伪代码:绝对路径

第四行伪代码:以“/”加项目名开头,后接需要重定向的文件相对项目名的路径

注释:前三行代码是我所总结出来的表示路径方式!!

注意:重定向可以定位到html文件,也可以定位到servlet文件!

以下补充一个项目名“test_server_1”的重定向实例!

(如下两张图所示,重定向的路径不是以"/"开始的,所以会出现如是错误。正确格式请参照上面给的实例!)

154177e0293533c450da46f9060d1cda.png

95389e94a32211982f8c5ef969045753.png

526761.html

2、请求转发:(伪代码如下)

request.getRequestDispatcher("sign").forward(request,response);

request.getRequestDispatcher("jsp/register.jsp").forward(request, response);

request.getRequestDispatcher("/jsp/register.jsp").forward(request,response);

注意:路径只能如上写相对路径,并且这个相对路径只除去项目名路径(最后有实例说明什么是项目名路径)和"/",不能写以“项目名路径”开始的相对路径!

下面的伪代码就是错误的!!

request.getRequestDispatcher("/zuoye/sign").forward(request,response);

3、JS代码中实现页面跳转:(伪代码如下)

window.location.href='http://127.0.0.1:8080/zuoye/welcome.html';

response.getWriter().write("window.location.href='/zuoye/sign.html';");

注释:第一行伪代码为JS文件里的代码,里面用的是绝对路径;

第二行伪代码是servlet文件里的代码,里面有的是相对路径。

4、JSP实现定时刷新:(真实代码如下)

pageEncoding="UTF-8"%>

Insert title here

var num = 2;

function time(){

if(num ==0){

/* window.location.href="/sign_JSP_EL_JSTL/jsp/welcome.jsp"; */

response.setHeader("refresh", "3;/sign_JSP_EL_JSTL/jsp/welcome.jsp");

%>

}

document.getElementsByTagName("font")[0].innerHTML= num;

num--;

}

setInterval("time()",1000);

你好,你所访问的资源已经丢失,请访问其他资源,3秒后将转到welcome画面!!

注意:

上面代码中的红色部分为常用的两种方式,下面列出另一种方式(只需要写出文件名字,并且不能以“/”开头)

response.setHeader("refresh","3;welcome.jsp");

下面这种方式是错误的:

response.setHeader("refresh", "5;${pageContext.request.contextPath}/jsp/welcome.jsp");

注释:请求转发和定时刷新,其本质实现是一样的,只是表现不一样,一个可以实现定时的功能而已!

5、超链接标签:(伪代码如下)

登录

登录

注意:调用HTML文件的路径可以写绝对路径,也可以在工作空间找其相对与项目名的相对路径(java项目则在workspace中找,web项目在Tomcat中找)

6、表单:(伪代码如下)

注释:这里的路径写的是servlet文件的路径,也可以写HTML文件的路径,可以参照上面两行代码进行手写。

注意:

使用第二种方式时,当前文件就在根目录下(Eclipse中看到直接在WebContent文件下)则是正确的,但是如果不在根目录下则会报错!!

原因是因为第二种方式会自动补全路径,而补充的路径为该文件相对根目录的路径

例:我们这里需要访问的register文件的相对路径为"/zuoye/register",而如果我们的文件是在WebContent/HTML下,则系统会把第二种的路径补全为"/zuoye/HTML/register",然后你就不喜欢看到的404页面就来了!!!

7、javaWeb项目中的web.xml配置文件:(具体配置信息如下)

com.wq.servlet.Servlet_register

注意:右击java类名 选择“Copy Qualified Name”就能得到这个类的全限定名(全限定名:包名+类名)

8、驱动接口路径:(具体路径如下)

driverClass=com.mysql.jdbc.Driver

注意:驱动接口的路径就是jar包中的Driver接口类的路径(mysql-connector-java-5.1.7-bin.jar)

9、连接mysql数据库的路径:(mysql的路径)

url=jdbc:mysql://localhost:3306/test

url=jdbc:mysql://127.0.0.1:3306/test

注释:localhost可以换成任何可以连接的mysql数据库所在的电脑的IP地址!!

10、类路径:(伪代码如下)

InputStream in =JDBC_Util.class.getResourceAsStream("/com/wq/config/DB.properties");

注意:

getResourceAsStream(“/..”):

“/”:表示根目录,必须是以"/"为开头才行!!!!!!!

java项目中的是src为根目录

javaWeb项目中的是WEB-INF/classes为根目录

注意:

在javaWeb项目中获取".properties"文件只能使用类路径的方法,不能使用流的方式!

11、外部链接css文件:

12、外部链接js文件:

13、图片标签:

14、javaWeb项目中的导入的jar包路径:

web项目中jar包放在这个路径下!!

“\WebContent\WEB-INF\lib ”

总结:以上总结的几点用处,除了一些特例外不能用绝对路径,都可以使用绝对路径(以上有些没有写绝对路径)

另外补充两点:(JSP中获得项目名路径和项目全路径的方法)

JSP表达式:

:项目名路径(/zuoye)

:项目全路径(C:/...../zuoye)(此处用五个点表示中间路径)

EL表达式:

${pageContext.request.contextPath}:项目名路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值