当前路径_[JSP] 07 JSP 路径问题
首先先明确一下下列URL的
假设一个URL是这样的losthost:8080/myservlet/path
服务器根路径:losthost:8080/
项目根路径:losthost:8080/myservlet/
明确了服务器根路径和项目根路径之后,我们就可以开始学习后面的知识了
servlet路径问题
请求转发和重定向的相对路径写法总结:
Servlet重定向jsp
resp.sendRedirect("jsp的相对路径/servlet的别名");//重定向jsp页面
Servlet请求转发jsp
req.getRequestDispatcher("jsp的相对路径/servlet的别名")
.forward(req, resp);//请求转发到jsp页面
服务器根目录
服务器的webapps目录路径 localhost:8080/
项目根目录
服务器的webapps目录下项目路径 localhost:8080/jsp/
注意:
以上两种写法其实都是相对路径,相对路径指的是从当前请求路径查找jsp所经过的路径。
请求转发和重定向的绝对路径写法总结:
重定向:
在重定向中的路径中第一个/表示服务器根目录。
示例:
resp.sendRedirect("/虚拟项目名/资源路径");//重定向jsp页面
请求转发:
在请求转发中第一个/表示项目根目录
示例:
tDispatcher("/资源路径").forward(req, resp);//请求转发到jsp页面
jsp路径问题
精华总结:
- 在jsp页面中进行资源之间的跳转时,使用绝对路径 。
- 在jsp中路径中的第一个/表示服务器根目录。
- 在Myeclipse中创建的jsp页面会自动生成路径处理代码basePath而basePath的值为当前项目 根目录。
- request.getSchema()返回的是当前连接使用的协议,一般应用返回的是http、SSL返回的是https;
- request.getServerName()返回当前页面所在的服务器的名字;
- request.getContextPath()返回当前页面所在的应用的名字。
问题:
在jsp页面中进行资源之间的跳转时,如果书写的是相对路径这样会造成如果当前文件的路径发生变更,从当前路径查找资源的相对路径都要重新进行书写。
解决:
将相对路径编程绝对路径
使用:
在jsp中路径中的第一个/表示服务器根目录。
示例:
<a href="/虚拟项目名/资源路径">访问关键字</a>
注意:
Myeclipse
创建的jsp页面会自动生成路径处理代码basePath
而basePath的值为当前项目根目录,并且在head标签中使用了
<base href="<%=basePath%>">
相当于将当前页面的资源全部默认定位为从项目根目录开始查找,我们就不需要写第一个/了
IDEA
需要手动输入或者更改模板
页面报错处理
注意:
basePath方式和添加/方法只能二选一。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
System.out.println(basePath);
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'path.jsp' starting page</title><!-- 问题:在jsp页面中进行资源之间的跳转时,如果书写的是相对路径这样会造成如果当前文件的路径发生变更,从当前路径查找资源的相对路径都要重新进行书写。解决:将相对路径编程绝对路径使用:在jsp中路径中的第一个/表示服务器根目录。示例:<a href="/虚拟项目名/资源路径">访问关键字</a>注意:在Myeclipse中创建的jsp页面会自动生成路径处理代码basePath而basePath的值为当前项目根目录,并且在head标签中使用了<base href="<%=basePath%>">相当于将当前页面的资源全部默认定位为从项目根目录开始查找,我们就不需要写第一个/了注意:basePath方式和添加/方法只能二选一。--></head><body>我是path.jsp<a href="a/a.jsp">a.jsp</a></body>
</html>
Balmy:[Servlet] 17 Servlet 路径问题zhuanlan.zhihu.com
当前路径_[JSP] 07 JSP 路径问题相关推荐
- html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)
是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...
- jsp的相对路径问题
test2.js 与index.jsp 放在同一文件夹下,比如: web应用/home/下面. 要把test2.js 引入到 index.jsp中, 针对三种情况,分析如下: ---------- ...
- jsp 获取项目路径,java获取项目路径
1. 获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2. 相对路径的 ...
- JSP取得绝对路径的方法
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 例如: <scr ...
- javaweb——jsp(jsp的本质是什么、jsp九大内置对象、四个域对象、jsp的主要作用)
1.什么是jsp,它有什么用? jsp的全称是java server pages.Java 的服务器页面. jsp的主要作用是代替Servlet 程序回传html页面的数据. 因为Servlet 程序 ...
- 可用等式为:html+java=jsp表示jsp[8]._java jsp
### jsp@3脚本元素 .JSP脚本元素用来插入Java代码,这些Java代码将出现在由当前JSP页面生成的Servlet中. 脚本元素有三种格式: 声明格式<%! declaration; ...
- 你写的JSP就是JSP么?
以前 Java Web是使用Java语言进行web系统开发,以前一般情况下我们写好的Java代码都要打包诚war包,然后放入到Tomcat容器下,启动Tomcat.系统会自动进行解压. 注意:前端收到 ...
- Javaweb8==未实现前后端分离的列表展示、新增、删除、修改功能。 servlet(逻辑处理,封装数据进域对象,转发到jsp)+jsp(el表达式获取域对象中的数据+JSTL替换if for)。
最终环境配置: IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从数据库取出数据. +(servlet+jsp+el表达式jstl):ser ...
- 【jsp】jsp简介
JSP起源: 只有局部内容需要动态产生和改变.在很多动态网页中,绝大部分内容都是固定不变的 Servlet程序的代码将非常臃肿,编写和维护都将非常困难.使用Servlet程序来输出只有局部内容需要动态 ...
最新文章
- python创建数据集_使用Python从图像创建数据集以进行人脸识别
- java基础.0——Object类
- 编写Linux内核模块——第三部分:按键和发光二极管
- python3实现mysql导出excel
- java有链表吗_Java数据结构之链表(Linked List)
- Android SQLite开发调试工具 Android Debug Database
- vim 编程常用的指令和快捷键
- flutter 动画展开菜单_Flutter ExpansionPanel 超级实用展开控件
- python课程_python课程大放送
- 百度文库下载助手使用说明
- SQL中的日期差函数
- R语言 melt()函数使用
- HTML与CSS重构网易严选页面
- 无人驾驶虚拟仿真(四)--通过ROS系统控制小车行走
- Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)!
- UltraEdit 25以后的版本 绕过试用期
- 我为什么没有成为华为元老,谈精准学习,避免低水平勤奋
- 解决git commit提示Please tell me who you are
- 15年前陪你一起看《泰坦尼克号》的人在哪里?
- 计算机病毒教案 大学,计算机病毒教案版本