一 绝对路径:放之四海而皆准的路径。
二 相对路径:相对于当前资源的路径。
三 代码
1、index.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>Servlet路径跳转</h1>
<hr>
<!--使用相对路径访问HelloServlet -->
<!-- /servlet/HelloServlet 第一个/表示服务器的根目录 -->
<a href="servlet/HelloServlet">使用相对路径访问HelloServlet!</a><br>
<!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
<a href="<%=path%>/servlet/HelloServlet">使用绝对路径访问HelloServlet!</a><br>
<!--表单中action的URL地址写法,与超链接方式完全相同。 -->
<a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>
</body>
</html>
2、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
<display-name></display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>TestServlet</servlet-name>
<servlet-class>servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<!--url-pattern处必须以/开头,这里的/表示项目的根目录 -->
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3、TestServlet.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public TestServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//请求重定向方式跳转到test.jsp,当前路径是ServletPathDirection/servlet/,所有下面这句不对
//response.sendRedirect("test.jsp");
//使用request.getContextPath获得上下文对象
//response.sendRedirect(request.getContextPath()+"/test.jsp");
//服务器内部跳转,这里的斜线表示项目的根目录
//request.getRequestDispatcher("/test.jsp").forward(request, response);
request.getRequestDispatcher("../test.jsp").forward(request, response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
四 测试
相关推荐
### jsp与Servlet跳转实例:深入理解信息提交与页面跳转 在Web开发中,JSP(Java Server Pages)和Servlet是两个重要的技术组件,它们共同协作来处理客户端请求并生成动态网页内容。本文将详细解析一个具体的案例...
在探讨“jsp+servlet路径状态的测试”这一主题时,我们深入分析了在JSP与Servlet环境下,不同路径(绝对路径与相对路径)在页面跳转过程中的表现及其对资源定位的影响。本测试旨在理解并优化JSP页面之间的跳转机制,...
JSP、Servlet中的相对路径和绝对路径(包括路径问题),解决繁琐的路径问题。
### JSP/Servlet中的路径...特别是在涉及到文件读取、资源定位以及页面跳转等方面时,合理的路径设计能够有效提高系统的灵活性和稳定性。希望以上内容能够帮助开发者更好地理解并运用JSP和Servlet中的路径处理技巧。
### 路径跳转问题解析 #### 一、背景介绍与问题定义 在Web开发过程中,路径跳转是常见的需求之一。无论是前端还是后端,开发者都需要处理各种类型的URL跳转来实现页面间的导航。从给定的信息来看,“路径跳转问题....
- 调用`request.getRequestDispatcher(path).forward(request, response)`,其中`path`参数是一个相对于当前Servlet上下文的路径,用于指定要跳转的目标资源。 - 当使用`forward()`时,请求和响应对象会被传递到...
需要注意的是,这里的页面路径(如"page1.jsp")应当相对于Servlet部署的位置。如果这些页面位于其他目录,需要提供正确的相对路径或者绝对URL。 此外,为了保证良好的编程实践,我们还需要考虑异常处理和安全性。...
总结来说,通过Servlet实现登录界面的跳转涉及以下几个关键点: 1. 创建HTML登录表单,指定提交时调用的Servlet。 2. 编写Servlet,处理POST请求,获取并验证用户输入。 3. 根据验证结果,使用`sendRedirect`进行...
JSP与Servlet跳转实例借鉴 本资源是关于JSP与Servlet跳转实例的借鉴,通过三个JSP页面(Index.jsp、Input.jsp、Confirm.jsp)和三个Servlet(InputServlet、ConfirmServlet、ResultServlet)来实现用户登录验证和...
Web 2 Servlet 的基本使用和跳转 在本节中,我们将讨论 Web 2 Servlet 的基本使用和跳转。首先,我们将回顾 HTTP 协议,然后讨论 Servlet 的基本使用和跳转。 HTTP 协议回顾 HTTP 协议是应用层的面向对象的协议,...
在Java Servlet中,页面跳转是常见的操作,用于实现用户请求的不同处理结果导向不同的页面。通常,这些操作发生在`doGet`、`doPost`等HTTP请求处理方法中。本文将详细介绍两种主要的页面跳转方法:`redirect`和`...
然而,在命令行或者非IDE环境下,需要手动将Servlet JAR包添加到项目的类路径(ClassPath)中,这样编译器和Java虚拟机才能找到并使用Servlet相关的类。 下载Servlet JAR包后,可以按照以下步骤将其添加到项目中: ...
在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...
这样,访问`/login`路径的请求将由`LoginServlet`处理。 3. **Servlet请求与响应处理**: - `doGet()`或`doPost()`方法:根据HTTP请求方法(GET或POST)处理请求。在这个登录场景中,通常使用`doPost()`,因为...
在JSP中,可以使用HTML表单的`action`属性指向Servlet的URL映射,或者通过`<jsp:forward>`指令直接跳转到Servlet。 #### 四、Servlet共享变量 Servlet容器提供了多种方式来实现数据共享,最常见的是使用`...
在Java Web开发中,路径的概念至关重要,尤其是在处理JSP和Servlet之间的跳转时。本文将深入探讨J2EE环境中路径的基本概念及其应用方法,包括相对路径和绝对路径的定义、获取路径的方法,以及在JSP和Servlet中路径...
在web.xml文件中,`<servlet-mapping>`标签定义了Servlet的URL路径,`url-pattern`属性是客户端访问Servlet的路径。例如,如果设置为`/login`,那么用户可以通过http://localhost:8080/test01/login来访问这个...
1. **forward()**:服务器端的转发,URL不变,效率较高,常用于内部跳转,避免暴露实际路径。 2. **redirect()**:客户端重定向,浏览器地址栏显示新URL,效率较低,用于外部跳转或跨域跳转。 理解并掌握这些基本...
例如,在`web.xml`中通过`<url-pattern>`元素指定Servlet的映射路径,如`/servlet/*`表示所有以`servlet`开头的URL都会被映射到该Servlet处理。 4. **虚拟路径**:通过服务器端的配置将实际的物理路径映射为一个虚拟...