转自:http://blog.csdn.net/liang5630/article/details/38474543

如有侵权,请及时联系本人及时删除

在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对。

java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径。

情况一、指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path);

情况二、指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发

假设在myapp项目下有个login.html,index.jsp,还写了两个servletA和servletB.

在web.xml中的地址配置:

<url-pattern>/servlet/servletA</url-pattern>

<url-pattern>/servlet/servletB</url-pattern>

在情况一中:若在路径中以/开头,则这一/相当于http://localhost:8080/

1、login.html有个form表单有提交给servletA,那么action要填的路径:

绝对路径方式:action="/myapp/servlet/servletA"       ------http://localhost:8080/myapp/servlet/servletA

相对路径方式:action="servlet/servletA"                   ------http://localhost:8080/myapp/servlet/servletA

2、login.html有个<a>链接到index.jsp 那么

绝对路径方式:href="/myapp/index.jsp"                      ------http://localhost:8080/myapp/index.jsp

相对路径方式:action="index.jsp"                            ------http://localhost:8080/myapp/index.jsp

3、index.jsp中重定向到servletA

绝对路径方式:sendRedirect("/myapp/servlet/servletA");      ------http://localhost:8080/myapp/servlet/servletA

相对路径方式:sendRedirect("servlet/servletA");     ---http://localhost:8080/myapp/servlet/servletA

在情况二中:若在路径中以/开头,则这一/相当于http://localhost:8080/myapp/

1.servletA转发到servletB

绝对路径方式:request.getRequestDispatcher("/servlet/servletB").forward(request, response);

--------http://localhost:8080/myapp/servlet/servletB

相对路径方式:request.getRequestDispatcher("servlet/servletB").forward(request, response);

--------http://localhost:8080/myapp/servlet/servletB

注意:

建议使用绝对路径,相对路径是相对于当前浏览器地址栏的路径(源地址)。

可能会出现:你在某个页面写了一个相对路径(目标路径),因为转发是不改变地址的,那么要是别人是通过转发到达你的这个页面的,那么地址栏的源地址就是不确定的,既然不确定你使用相对路径相对于这个不确定的路径就极有可能出错,所以建议使用绝对路径,这样可避免这种问题。

获得项目路径和绝对路径:

项目路径:String path=request.getContextPath();           ----                /myapp

String p=this.getServletContext().getRealPath("/");     -----   G:\environment\tomcat\webapps\myapp\

总结:

这里主要弄明白是指向外部的还内部的,外部时"/"就是代表主机路径,内部时"/"就是代表当前项目路径.

java web中路径问题。的更多相关文章

  1. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  2. Java web中常见编码乱码问题(一)

    最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...

  3. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

  4. Java Web 中 过滤器与拦截器的区别

    过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法u ...

  5. JAVA WEB 中的编码分析

    JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-co ...

  6. Java web中常见编码乱码问题(二)

    根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...

  7. 深入分析Java Web中的编码问题

    编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...

  8. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  9. java web 中 读取windows图标并显示

    java web中读取windows对应文件名的 系统图标 ....显示 1.获取系统图标工具类 package utils;  import java.awt.Graphics;  import j ...

随机推荐

  1. 数据类型对应字节数(32位,64位 int 占字节数)

    数据类型对应字节数(32位,64位 int 占字节数) 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(3 ...

  2. ibatis常用16条SQL语句

    (1) 输入参数为单个值 <delete id="com.fashionfree.stat.accesslog.deleteMemberAccessLogsBefore" p ...

  3. 爬虫实战(三) 用Python爬取拉勾网

    目录 0.前言 1.初始化 2.爬取数据 3.保存数据 4.数据可视化 5.大功告成 0.前言 最近,博主面临着选方向的困难(唉,选择困难症患者 >﹏<),所以希望了解一下目前不同岗位的就 ...

  4. 洛谷 1182 数列分段Section II

    [题解] 最大值最小化,那么一般要联想到二分.二分一个最大值,然后check一下能否分成小于等于m段即可. #include<cstdio> #include<algorithm&g ...

  5. Shiro_DelegatingFilterProxy

    1.DelegatingFilterProxy实际上是Filter的一个代理对象.默认情况下,Spring会到IOC容器中查找与<filter-name>对应的filter bean.也可 ...

  6. HDU 1224 无环有向最长路

    用bellman_ford的方法,将中间不断取较小值,修改为取较大值就可以了 #include <cstdio> #include <cstring> #include < ...

  7. apt-get使用指南

    最近频繁使用apt-cache show(查看软件包详细信息)与apt-cache search(搜寻具体软件包确切名称)命令,深感方便与功能强大.现将一些apt-get相关命令做一个简单的收集: a ...

  8. codevs3411 洪水

    题目描述 Description 小浣熊松松和朋友到野外露营,没想到遇上了π年一次的大洪水,好在松松是一只爱观察的小浣熊,他发现露营地的地形和洪水有如下性质: ①露营地可以被看做是一个N*M的矩形方阵 ...

  9. NOIP2014 提高组合集

    NOIP 2014 提高组 合集 D1 T1 生活大爆炸版石头剪刀布 首先,先将两个人的猜拳序列都变得不小于n.然后逐个模拟.胜败什么的看表就行了. #include <iostream> ...

  10. 洛谷—— P2049 魔术棋子

    https://www.luogu.org/problem/show?pid=2049 题目描述 在一个M*N的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中 ...