浅谈Servlet转发到JSP页面的路径问题(必看)

一、现象与概念

1. 问题

在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题。

2. 绝对路径概念

相对于contextPath(当前Web应用的上下文)的路径。

解决方案:超链接用绝对路径而不是相对路径。若/代表的是站点的根目录,在其前面加上contextPath。

<a href="<%= request.getContextPath() %>/TestServlet" rel="external nofollow" >To B</a>

二、JavaWeb开发中的'/'含义总结

1. 当前Web应用的根路径

'/'代表http://localhost:8080/contextPath/ :由Servlet来处理的地址

1)转发:request.getRequestDispatcher("/path/b.jsp").forword(request, response);

2)web.xml文件中映射Servlet访问路径

<servlet-mapping>
 <servlet-name>TestServlet</servlet-name>
 <url-pattern>/TestServlet</url-pattern>
</servlet-mapping>

3)各种定制标签中的'/'。

2. Web站点的根路径

'/'代表http://localhost:8080/ :由浏览器来处理的地址

1)超链接:<a href="/TestServlet" rel="external nofollow" >To B</a>

2)form标签中的action:<form action="/b.jsp">

3)重定向:response.sendRedirect("/b.jsp");

以上这篇浅谈Servlet转发到JSP页面的路径问题(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JSP 开发之servlet中调用注入spring管理的dao

    JSP 开发之servlet中调用注入spring管理的dao 我们用spring的依赖注入可以将dao注入到action中,然后我们就可以直接调用了dao中的方法了,可是servlet不是由spring容器管理,所以在servlet中不能注入dao类,也就不能用dao中的方法. 下面是实现方法: private UserDao userDao; public void init() throws ServletException { super.init(); ServletContext s

  • Jsp+Servlet实现购物车功能

    本文实例为大家分享了Servlet实现购物车功能的具体代码,供大家参考,具体内容如下 (1)用servlet实现简单的购物车系统,项目结构例如以下:(新建web Project项目  仅仅须要AddItemServlet , ListItemServlet.exam403.jsp三个文件就可以.其它的不用管) (2)exam403.jsp代码例如以下: <%@ page contentType="text/html; charset=gb2312" language="

  • JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    JSP中通过Servlet 将服务器硬盘图片并展示到浏览器 其实这个实例非常简单,但是今天有人问我了,而且我也写了个小例子,就顺便发上来吧! 在浏览器显示一张图片,使用标签 <img src=""> img 元素向网页中嵌入一幅图像. 请注意,从技术上讲,<img> 标签并不会在网页中插入图像,而是从网页上链接图像.<img> 标签创建的是被引用图像的占位空间. <img> 标签有两个必需的属性:src 属性 和 alt 属性. HTML

  • JSP 开发之THE SERVLET NAME ALREADY EXISTS.解决方法

    The servlet name already exists.解决方法 当我们建立过同名的servlet文件,然后又将其删掉后再用同类名字建一个servlet时就会报错. 解决办法:web.xml里面存有servlet的映射关系,需要自己手动删除web.xml里面的映射关系. 删除,保存刷新即可 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • JSP 中Servlet的自己实现

    JSP 中Servlet的自己实现 一 步骤 1.继承HttpServlet 2.重写doGet()或者doPost()方法 3.在web.xml中注册Servlet 二 HttpServlet类继承图 三 实例 1.创建MyFirstServletDemo web project. 2.编辑index.jsp <%@ page language="java" import="java.util.*" contentType="text/html;

  • Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径. 另:在Jsp,Servlet,Java中详细获得路径的方法! 1.jsp中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp

  • JSP开发Servlet重写init()方法实例详解

    JSP开发Servlet重写init()方法实例详解 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题.要明了这一点,首先要知道Servlet的几个类和接口的联系: ServletConfig接口:其中有getServletName();getServletContext();getInitParameter(String name);getInitParameterNam

  • JSP 开发之Servlet解决网页缓存问题

    JSP 开发之Servlet解决网页缓存问题 (1)我们为什么要防止游览器页面缓存的问题: 所以在不需要缓存的页面中需要实现不缓存页面: 代码如下: package com.lc.HttpTest; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.ser

  • 浅谈Servlet转发到JSP页面的路径问题(必看)

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题. 2. 绝对路径概念 相对于contextPath(当前Web应用的上下文)的路径. 解决方案:超链接用绝对路径而不是相对路径.若/代表的是站点的根目录,在其前面加上contextPath. <a href="<%= request.getConte

  • 浅谈java中OO的概念和设计原则(必看)

    一.OO(面向对象)的设计基础 面向对象(OO):就是基于对象概念,以对象为中心,以类和继承为构造机制,充分利用接口和多态提供灵活性,来认识.理解.刻划客观世界和设计.构建相应的软件系统.面向对象的特征:虽然各种面向对象编程语言相互有别,但都能看到它们对面向对象基本特征的支持, 即 "抽象.封装.继承.多态" : – 抽象,先不考虑细节 – 封装,隐藏内部实现 – 继承,复用现有代码 – 多态,改写对象行为 面向对象设计模式:是"好的面向对象设计",所谓"

  • 浅谈pyhton学习中出现的各种问题(新手必看)

    目前比较杂乱无章,后续还会有一些添加补充 1.标识符 (1)标识符是区分大小写的. (2)标示符以字母或下划线开头,可包括字母,下划线和数字. (3)以下划线开头的标识符是有特殊意义的. 2.参数前加星号(*)的意义 面对实际情况时无法提前得知要传入的参数的个数,因此在参数前加星号从而允许函数接受任意多的参数,情况如下: (1)参数前加一个星号(*),传入的参数存储为元组的形式: (2)参数前加两个星号(*),传入的参数存储为字典的形式,并且调用时采用例如'a=1,b=2,c=3'的形式. 3.

  • 浅谈linux下的一些常用函数的总结(必看篇)

    1.exit()函数 exit(int n)  其实就是直接退出程序, 因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的. 一般在shell下面,运行一个程序,然后使用命令echo $?就能得到该程序的返回值,也就是退出值,在main()里面,你可以用return n,也能够直接用exit(n)来做.unix默认的习惯正确退出是返回0,错误返回非0. 重点:单独的进程是返回给操作系统的.如果是多进程,是返回给父进程的. 在父进程里面调用w

  • 浅谈C++函数声明后面加throw()的作用(必看)

    问题描述: C++里面为什么有时候在函数声明的时候在后面加throw()关键字? 解释: C++函数后面加关键字throw(something)限制,是对这个函数的异常安全作出限制:这是一种异常规范,只会出现在声明函数时,表示这个函数可能抛出任何类型的异常. void fun() throw();      //表示fun函数不允许抛出任何异常,即fun函数是异常安全的. void fun() throw(...);    //表示fun函数可以抛出任何形式的异常. void fun() thr

  • 浅谈Servlet开发技术基础

    一.Servlet概述 1.sun公司提供的动态web资源开发技术.本质是上一段java小程序,要求这个小程序必须实现Servlet接口,以便服务器能够调用. 2.开发Servlet的两个步骤 *实验:Servlet的快速入门 (1)步骤一:写一个java程序实现Servlet接口(此处直接继承了默认实现类GenericServlet) package cn.itheima; import java.io.*; import javax.servlet.*; public class First

  • 浅谈Servlet的Cookie和Session机制

    一.Servlet Cookies Cookies定义:Cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息. Cookies作用:会话保持,如完成用户的登录与状态保持 Cookies的工作原理: 客户端向服务区发起登录请求 服务器脚本(代码)向浏览器发送一组Cookies,例如:姓名,年龄等 浏览器将这些信息存储在本地计算机上,以备将来使用 当下一次浏览器向web服务器发送任何请求时.浏览器会把这些Cookies信息发送到服务器,服务器将使用这些信息来识别账户 1.1 C

  • 浅谈servlet中的request与response

    在b/s架构中,有request浏览器的请求,也有response的服务器反馈.底层是tcp/ip协议,应用层是http协议.在tomcat服务器中,版本6使用的http1.1版本协议.服务器发出request请求,在请求中有可能加载get和post请求(doget请求,是放在URL中可以使用getparmeter进行解析,因为tomcat把每一个网页请求看做一个对象,所以是面向对象(HttpServletRequest)进行封装,并有doget和dopost进行 对应的解析.主要的API如下:

  • 浅谈vue异步数据影响页面渲染

    今天遇到一个问题,要保证页面渲染前请求的数据已经得到了 由于user是在异步请求之后保存在session中,而在页面渲染时session中还没有user,页面直接报错. 因此我希望能在所有请求都得到后再去做页面的渲染. 1.先把id为app的div用v-if="appShow",定义appShow为false进行隐藏,避免渲染 2.写计数器,每1ms进行一次查询,如果session中已经有user,删除过滤器,移除滤布,appShow为true,开始渲染页面,这样可以保证页面的正常渲染

  • 浅谈Java工程读取resources中资源文件路径的问题

    正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资源文件 java类中需要读取properties中的配置文件,可以采用文件(File)方式进行读取: File file = new File("src/main/resources/properties/basecom.properties"); InputStream in = new

随机推荐