从0开始学Java——JSPServlet——HttpServletRequest相关的几个路径信息

在HttpServletRequest中有几个获取路径的接口:getRequestURI/getContextPath/getServletPath/getPathInfo

这些接口互相之间有什么区别,通过下面这段代码就可以分辨清楚了:

复制代码
复制代码
 1 @WebServlet("/hello.view")
 2 public class FirstServlet extends HttpServlet {
 3         /*....*/ 4     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 5         // TODO Auto-generated method stub 6         response.setContentType("text/html;charset=UTF-8");
 7         PrintWriter out = response.getWriter();
 8         String name = request.getParameter("name");
 9         out.println("<html>");
10         out.println("<head>");
11         out.println("<title>Hello servlet </title>");
12         out.println("</head>");
13         out.println("<body>");15         out.println("<br>requestUri: " + request.getRequestURI());
16         out.println("<br>contextPath: " + request.getContextPath());
17         out.println("<br>servletPath: " + request.getServletPath());
18         out.println("<br>pathInfo: " + request.getPathInfo());
19         out.println("</body>");
20         out.println("</html>");
21         out.close();
22     }
23         /*....*/
复制代码
复制代码

这个项目的名称是FirstServlet,运行之后其输出内容如下:

requestUri: /FirstServlet/hello.view ,这个相当于是当前页面的全路径,但是不包括url中参数信息。
contextPath: /FirstServlet ,这个就相当于iis中的虚拟目录名称
servletPath: /hello.view ,这个其实就是页面的名称
pathInfo: null,这个其实就是requestUri - contextPath - servletPath,也就是如果该servlet是在某个子目录下,那么这里显示的就是那个子目录名称。



转载于:https://www.cnblogs.com/strinkbug/p/4885421.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#编译和运行过程图例

一张图&#xff0c;描述C#编译和运行过程&#xff0c;比较容易记忆理解

java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载

不重启Tomcat有两种方式&#xff1a;热部署、热加载热部署&#xff1a;容器状况在运行时重新部署整个项目。这类环境下一般整个内存会清空,重新加载&#xff0c;这类方式有可能会造成sessin丢失等环境。tomcat 6确实可以热部署了,而且对话也没丢.热加载&#xff1a;最好是在调试…

修改mysql的用户密码

修改的用户都以root为列。一、拥有原来的myql的root的密码&#xff1b; 方法一&#xff1a; #mysql -u root mysql> SET PASSWORD FOR rootlocalhost PASSWORD(newpass); 方法二&#xff1a;在mysql系统外&#xff0c;使用mysqladmin# mysqladmin -u root -p password &quo…

C#中的堆和栈理解

引言&#xff1a;程序运行时&#xff0c;它的数据必须存在内存中&#xff0c;一个数据需要多大内存、存储在什么地方以及如何存储都依赖于该数据的数据类型。1、什么是栈栈是一个内存数组&#xff0c;是一个LIFO&#xff08;Last-In-First-Out 后进先出&#xff09;的数据结构。…

java sessionmanager_java.lang.IllegalStateException:没有SessionManager

你错过了3件事.Main.javaimport org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.handler.ContextHandler;import org.eclipse.jetty.server.session.HashSessionIdManager;import org.eclipse.jetty.server.session.HashSessionManager;import org.eclipse.…

什么是链表

链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。每个结点包括两个部分&#xff1a;一个是…

C# 基础:Sealed、new、virtual、abstract、override的理解

目录 1、sealed 2、new 3、virtual 4、abstract 5、override 1、sealed 密封类不能被继承&#xff0c;密封方法可以重写基类中的方法&#xff0c;但其本身不能在任何派生类&#xff08;子类&#xff09;中 进一步重写。当应用于属性或者方法时&#xff0c;sealed 修饰符必须始终…

梁兴珍 java_数据结构与算法_Java语言

第1章 综述1.1 数据结构和算法能起到什么作用&#xff1f;1.2 数据结构的概述1.3 算法的概述1.4 一些定义1.5 面向对象编程1.6 软件工程1.7 对于C程序员的Java1.8 Java数据结构的类库第2章 数组2.1 Array专题Applet2.2 Java中数组的基础知识2.3 将程序划分成类2.4 类接口2.5 Or…

Yii 2.0: yii2-highcharts-widget创建饼状图

安装 The preferred way to install this extension is through composer. 项目根目录下执行&#xff1a; php composer.phar require --prefer-dist miloschuman/yii2-highcharts-widget "*"或者在composer.json中添加 "miloschuman/yii2-highcharts-widget&qu…

【原创】C#中的抽象类(abstract class)和接口(interface)的比较

在C#中抽象类和接口是两个相当重要的概念&#xff0c;深入理解对C#程序员是非常必要的&#xff0c;现总结如下&#xff1a;一、抽象类的特点&#xff1a;1、抽象方法只用于方法的声明并不包含方法的实现&#xff0c;可以看作没有实现实体的虚方法。2、抽象类不能进行实例化。3、…

U3D 脚本添加和获得对象

有时候&#xff0c;一开始可能没有对象&#xff0c;而是由于某种触发&#xff0c;产生的一个对象&#xff0c;这里讲解下&#xff0c;如何通过脚本来创建一个对象&#xff1a; 这是通过脚本创建一个立方体&#xff1a; using UnityEngine; using System.Collections;public cla…

50条超精辟的经典语录:哗众,可以取宠,也可以失宠!

在人生道路上给自己定位很重要&#xff0c;不要苛求自己达到不可能达到的高度。我们能把每一件平凡的事做好就是不平凡&#xff0c;把每一件简单的事做成功就是不简单。1.我们只有一个地球&#xff0c;所以你要爱护地球&#xff1b;地球上只有一个我&#xff0c;所以你也要爱护…

java 时间工具类 大于_Java 时间工具类

1 /**2 * 格式化字符串为日期格式3 *4 *paramdateStr 需要格式化的字符串5 *paramformat 需要的日期格式&#xff0c;例如"yyyy-MM-dd HH:mm:ss"6 *return7 */8 public staticDate formatDate(String dateStr, String format) {9 SimpleDateFormat dateFormat newSi…

IP、TCP和DNS与HTTP的密切关系

看了上一篇博文的发表时间&#xff0c;是7月22日&#xff0c;现在是10月22日&#xff0c;已经有三个月没写博客了。这三个月里各种忙各种瞎折腾&#xff0c;发生了很多事情&#xff0c;也思考了很多问题。现在这段时间开始闲下来了&#xff0c;同时该思考的事情也思考清楚了&am…

C# 委托的理解

1、什么是委托委托可以理解为持有一个或多个方法的对象。如果执行委托的话&#xff0c;委托会执行它所"持有"的方法。委托可以避免程序中大量使用if-else语句&#xff0c;使程序拥有更好的扩展性。2、委托的本质委托和类一样&#xff0c;是一种用户自定义的类型&…

java基础判断题_java基础知识周测试题带答案

简单题(每题5分&#xff0c;共计50分)简述Java语言跨平台的原理Java跨平台的特性&#xff0c;也就是同一份字节码文件可以在不同的系统上执行&#xff0c;由不同系统中的Java虚拟机负责翻译成对应的机器指令。写出以下名词的概念和各自作用jre - Java运行时环境信息&#xff0c…

SQLSERVER 2008 R2版本密钥(摘)

开发版32位&#xff1a;MC46H-JQR3C-2JRHY-XYRKY-QWPVM开发版64位&#xff1a;FTMGC-B2J97-PJ4QG-V84YB-MTXX8工组版&#xff1a;XQ4CB-VK9P3-4WYYH-4HQX3-K2R6QWEB版&#xff1a;FP4P7-YKG22-WGRVK-MKGMX-V9MTM数据中心版32位&#xff1a;PTTFM-X467G-P7RH2-3Q6CG-4DMYB数据中…

java conf_JAVA 解析、编辑nginx.conf

最近工程开发遇到一个需求&#xff1a;用Java去解析并编辑nginx.conf解析nginx.conf过程可以参考该项目的README.md下面举个列子说明一下该如何编辑nginx.conf。定义一个pojoimportcom.alibaba.fastjson.JSONArray;importcom.google.common.base.Strings;importlombok.Data;Dat…

【原创】关于ASP.NET WebForm与ASP.NET MVC的比较

WebForm的理解1、 WebForm概念ASP.NETWebform提供了一个类似于Winform的事件响应GUI模型&#xff08;event-drivenGUI&#xff09;&#xff0c;隐藏了HTTP、HTML、JavaScript等细节&#xff0c;将用户界面构建成一个服务器端的树结构控件&#xff08;Control&#xff09;&#…

对象的接口

Simula(模拟) 是一个很好的列子。正如这个名字锁暗示的&#xff0c;它的作用是"模拟"像"银行出纳员"我们有一系列出纳员,客户,账户以及交易等 每类成员(元素)都有具有一些通用的特征,每个账号都有一定的余额;每个出纳都能接收客户的存款&#xff0c;等等。…