学习笔记(三)HttpServlet中路径配置相关

报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat) 报错报错DescriptionResourcePathLocationType The default superclass,“jakarta.servlet.http.HttpServlet”, according to the project’s Dynamic Web Module facet version (5.0), was not found on the Java Build Path.解决办法:根据错误信息,“默认超类`jakarta.servlet.http.HttpServlet`根据 阅读详情

首先,说明下3个路径标识: /: 代表根目录;./:代表当前目录; ../代表当前目录的上级目录.

因此,如果当前路径为第4级,要访问第一级的路径,需要向上跳三次,即../../../,
反之,如果第一级访问第4级,则从当前路径往下转3级,即./下级目录1/下级目录2/下级目录3/;

一、资源类请求(html\jsp等文件)
以当前的输出资源目录为参考依据,比如输出目录为WebContent,index.html、sendMsg.html放置目录为WebContent\chatroom\下,
那么资源index.html中的请求sendMsg.html地址就是sendMsg.html了,因为同当前的index.html 位置平行,如果在其上一目录 ,
即直接放在WebContent目录下,则应取上级目录..,即格式为../sendMsg.html;

二、动作类请求(servlet的action)
这里需要注意以下几点:
1.form 中的action,对于动作类,不能以/开头,可以通过 上下文/动作,因为TOMCAT 把/当做 webapp这个层次的根目录,
其后 才是 各类应用上下文目录,再是对应的资源目录;

2.动作的请求需要从资源目录到WEB.XML中配置目录的转化,即: 当前资源目录=》WEBContent目录=》web配置中匹配模式的路径,

举例说明:
假如资源目录为webContent\chatroom\1\2\sendMsg.html,web中目录为/xxx/send,那么 sendMsg.html中action的请求
路径按照上述推导规则,则应该是 action=”../../../xxx/send”,前面的”../../../”代表追溯到上下文根目录。

3. 动作的名称、大小写必须与XML配置文件中一致,后面可以则可以附带参数,如send?a=1;


以Servlet的servlet-mapping节点中配置的路径为参考,以下分几种情况分析:

   其中:sendMsg.html 在webContent\chatroom\sendMsg.html下,通过页面的SUBMIT按钮触发send动作,而show是该页面自动触发的显示操作。


   web.xml配置如下:
  <servlet-mapping>
<!-- 指定位哪个servlet配置映射 -->
<servlet-name>SendMsgServlet</servlet-name>
<url-pattern>/chatroom/send</url-pattern>
  </servlet-mapping>

        (A)相同路径
 <servlet-mapping>
<servlet-name>ShowMsg</servlet-name>
<url-pattern>/chatroom/show</url-pattern>
 </servlet-mapping>

         (B) 上级路径
 <servlet-mapping>
<servlet-name>ShowMsg</servlet-name>
<url-pattern>/show</url-pattern>
  </servlet-mapping>

         (C)不同目录下的同级别路径
   <servlet-mapping>
<servlet-name>ShowMsg</servlet-name>
<url-pattern>/chatroom1/show</url-pattern>
  </servlet-mapping>

          (D)下级路径
 <servlet-mapping>
<servlet-name>ShowMsg</servlet-name>
<url-pattern>/chatroom/next/show</url-pattern>
 </servlet-mapping>


  以下配置在HTML中请求的show路径: 

  ---------------********   A <相同路径>  *************-------

  <frameset cols="*,200" frameboder="no" border="0">
<frameset rows="*,80" frameboder="no" border="0">
    <frame src="show" name="mainFrame" id="mainFrame" />    
    <frame src="sendMsg.html" name="bottomFrame" id="bottomFrame" />
</frameset>
  </frameset>

  ---------------********  B<上级路径>  ************-------

  <frameset cols="*,200" frameboder="no" border="0">
<frameset rows="*,80" frameboder="no" border="0">
    <frame src="../show2" name="mainFrame" id="mainFrame" />     
    <frame src="sendMsg.html" name="bottomFrame" id="bottomFrame" />
</frameset>
  </frameset>

 ---------------******** C <不同目录下的路径> *************-------

  <frameset cols="*,200" frameboder="no" border="0">
<frameset rows="*,80" frameboder="no" border="0">
    <frame src="../chatroom1/show" name="mainFrame" id="mainFrame" />     
    <frame src="sendMsg.html" name="bottomFrame" id="bottomFrame" />
</frameset>
  </frameset>

 ---------------********   D <下级路径>  *************-------

  <frameset cols="*,200" frameboder="no" border="0">
<frameset rows="*,80" frameboder="no" border="0">
    <frame src="./show" name="mainFrame" id="mainFrame" />   
    <frame src="sendMsg.html" name="bottomFrame" id="bottomFrame" />
</frameset>
  </frameset>  

三、规则
分精确匹配、拓展名匹配、路径匹配、即特殊情况下的任意匹配(/ 或/*),
为避免歧义性,除了根目录下用.jsp 这种拓展名模糊 和 /data/这种路径模糊匹配外,其他都建议用精确方式匹配。

HttpServlet,ServletContext,Listener它仨的故事 我们Java程序员经常到处吹嘘我们做的web程序是MVC架构的,抱着spring mvc的大腿到处讨饭吃,在Spring MVC框架中,Servlet扮演着至关重要的角色,特别是DispatcherServlet作为Spring MVC的核心组件,它是整个Spring Web MVC架构的前端控制器(Front Controller)设计模式的实现。在Spring MVC中,在上面古老的例子里,我们看到web容器的context上下文配置的都是字符串,那只是字符串可不中,我们来看一下这个美女的担忧。 阅读详情

相关推荐

深入解析PCIe Retimer:工作原理与典型应用场景

本文深入解析了PCIe Retimer的工作原理与核心价值。作为高速信号的中继再生器,Retimer通过时钟数据恢复和信号再生技术,有效解决长距离或复杂通道中的信号衰减与完整性问题,从而极大地扩展了PCIe链路的有效传输距离。文章详细阐述了其内部架构、自动与手动两种工作模式,并重点介绍了在长距离板间互连、复杂背板设计等典型应用场景中的关键作用。

weixin_29195615的博客 506

笔记01--servelt的请求路径配置

servlet的请求路径配置笔记 示例前提:项目名默认请求路径为http://localhost:8080/s1/ 默认跳转页面为: 项目有两个servlet:一个名为HelloServlet,一个名为Error 知识点:(在web.xml下配置servlet的映射路径) 一个servlet可以指定一个映射路径 运行tomcat,打开浏览器输入:localhost:8080/s1/hello 浏览器输入:localhost:8080/s1/error 一个servlet可以指定多个映

AYI 1193

五.卡尔曼滤波器(EKF)开发实践之五: 编写自己的EKF替换robot_pose_ekf中EKF滤波器

本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分五个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二: 一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EKF)开发实践之三: 基于三个传感器的海拔高度数据融合 四.卡尔曼滤波器(EKF)开发实践之四: ROS系统位姿估计包robot_pose_ekf详解 五.卡尔曼滤波器(EKF)开发实践之五: 编写自己的EKF替换robot_pose_ekf中EKF滤波器 也就是本文 ...

okgwf的博客 4138

Request、 ServletRequest、HttpServletRequest的区别与联系

1.HttpServletRequest和ServletRequest都是接口,HttpServletRequest继承ServletRequest,只是HttpServletRequest比ServletRequset多了一些http协议的方法,如getHeader()、getMethod()等 2.Request是在jsp中使用的,其实只是规范中的一个名称而已。它是一个对象,但不是有SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只规定了这个类要实现HttpServletR...

weixin_45872600的博客 8353

[UE5蓝图基础二]1.[1d混合空间] 走和跑的动画切换(shift切换)

再双击”run”进去 我们需要给他指定一个动画姿势,这里就需要给他我们前面做的”1d”混合空间,然后可以看到”1d” 上有个speed参数,代表的速度 从前面的逻辑来看需要通过控制速度来切换动画,那么必然不能写死速度,把速度提升为变量传递进来即可,所以就得到以下蓝图节点。混合空间的概念:混合空间就是可以将角色多个动画混合在一起 ,我们创建动画类就是创建个”Animation”文件夹 在文件夹内创建混合空间。我们目前要实现的是一个走和跑的功能 那么创建1d即可。到这一步混合空间已经做完 下一步做”动画蓝图”

qq_30584617的博客 3299

ESP32专用E220LoRa库:EBYTE LoRa模块驱动与点对点透传实现

LoRa是一种基于扩频技术的低功耗远距离无线通信协议,广泛应用于物联网终端设备间的数据传输。其核心原理在于通过线性调频(Chirp)信号提升接收灵敏度与抗干扰能力,从而在Sub-GHz频段实现数公里级视距通信。该技术具备高链路预算、强穿透性与多节点并发接入能力,显著降低广域传感网络的部署成本与功耗门槛。典型应用场景包括农业环境监测、工业设备远程诊断、智能表计数据回传等对可靠性与简易集成要求严苛的嵌入式系统。本文聚焦EBYTE E220-400T22D模块在ESP32平台上的工程化落地,深入解析硬件引脚时序约

weixin_36064575的博客 554

Servlet

servlet,servlet配置,servlet的生命周期,servlet执行原理、idea与tomcat的相关配置,servlet的体系结构,doget()和dopost(),servlet的相关配置,HTTP,请求数据格式,get,post,请求头,User-Agent,Referer,防盗链,请求体,request,获取请求头数据,用户登录案例,BeanUtils工具类............

qq_45718545的博客 2644

路径跟踪 | 图解分析人工势场算法APF(附ROS C++/Python/Matlab仿真)

人工势场法的基本思想是在机器人运动环境中创建一个势场,再搜索一条势函数下降的方向,寻找一条无碰撞的最优路径。本文介绍APF算法的基本原理,并提供势场可视化实现,基于ROS C++/Python/Matlab进行算法仿真实验加深理解

FRIGIDWINTER的博客 7394

servlet路径配置,相对路径和绝对路径

servlet中的相对路径和绝对路径 1.servlet内部配置路径 a. web.xml中servlet 配置的路径 <url-pattern>/test1/helloWorld</url-pattern> 我们配置的这个“ /test1/helloWorld”,前面必须加“/” ---- 该“/”代表我们应用的名称。比如我们的应用名是“test”,那访问我们应有的地址就是: http:// 192.168.XX.XX:8080/test ,说白了就是代表项...

野生码农 1227

C++笔记之emplace_back(),push_back()性能比较i++ 、 ++i

操作是否需要临时对象/拷贝性能需要(构造临时对象)较慢不需要(直接构造)较快i++需要(保存旧值)对于内置类型无影响,但对于自定义类型(如迭代器、大对象)会有拷贝开销++i不需要相对更快(尤其是自定义类型)都存在"是否需要额外的临时对象/拷贝"这一性能差异点和++i都是更高效的版本(避免临时对象/拷贝)和i++都可能产生额外的临时对象(前者构造临时对象,后者保存旧值)对于内置类型(如int),i++和++i性能几乎没有差异(编译器会优化);但对于自定义类型(尤其是迭代器等重量级对象),

小勇博客 96

面向高速Serdes的信号完整性优化:从封装 - 板级互连局限到封装内互连技术演进(一)

本文针对高速SerDes互连链路中的关键电磁效应展开研究:1)揭示了封装-主板互连结构在毫米波频段易激发谐振效应,导致53GHz传输陷波和阻抗偏移;2)提出基于本征模分析的谐振抑制方法,通过优化接地过孔排布使带宽突破95GHz;3)系统比较了方形/六边形BGA排布下23种差分对朝向的串扰特性,证实六边形阵列可将功率和串扰降低30%以上;4)论证了100GHz以上带宽需采用封装内互连架构,其较传统方案减少50%阻抗不连续节点。

小孟同学的博客 231

servlet上下文和配置文件

1、ServletContext: 上下文(全局管理者) 一个项目的引用.代表了当前项目. 当项目启动的时候,服务器为每一个web项目创建一个servletcontext对象. 当项目被移除的时候或者服务器关闭的时候servletcontext销毁 作用: 1.获取全局的初始化参数 2.共享资源(xxxAttri...

weixin_33894992的博客 196

【ArcGIS Pro微课1000例】0047:深度学习--棕榈树提取全流程

对汤加科洛瓦伊种植园每棵棕榈树的健康状况进行清查和评估,这需要花费大量的时间和劳动力。为简化此过程,将在 ArcGIS Pro 中使用深度学习模型来识别树木,然后根据植被绿度的测量值计算其健康状况。第一步是找到显示汤加科洛瓦伊的影像,该影像具有足够精细的空间和光谱分辨率来识别树木。获得此影像后,将创建训练样本并将其转换为可供深度学习模型使用的格式。为了让模型识别出它的查找任务,需要定义棕榈树的影像,以便识别相似的像素和树木大小。

智慧空间实验室 2207

JavaWeb(三) HttpServlet + ServletContext

HttpServlet类是GenericServlet的子类,它提供了对HTTP请求的特殊支持,所以通常我们都会通过继承HttpServlet来完成自定义的Servlet。doGet()和doPost()

Zhangxiangyiyi的博客 326

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

浅谈Servlet和HttpServlet

的大小顺序来实现的是升序的顺序进行初始化的,但是使用场景比较多的就是设置为0随着网站的初始化实现对应的实现类。已经实现了所有的方法创建一个类并不必须要去重写所有的方法,就只要实现对应的。方法就行了,之后就只需要使用两个对象的实现操作就可以直接使用对应的。来实现对应参数的初始化实现,可以直接设置对应的网站编码就不需要再。2.返回一组参数使用同名的参数返回的值的数组实现。的启动同时创建对应的初始化类的实现,其中不同的。就直接实现对应的路径创建,就省去了使用。文件设置对应的文件操作。管理的项目就直接导入对应的。

2301_79340423的博客 922

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HttpServlet

HttpServlet的原理 1 HttpServlet抽象类中的(部分)方法 2 3 HttpServlet extends GenericServlet{ 4 void service(ServletRequest request,ServletResponse responce){ 5 *强转两个参数为http协议相关的类型。 6 *调用本类的se...

weixin_30530523的博客 91

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HttpServlet的相关知识点学习笔记

Servlet 概念 步骤 执行原理 生命周期 Servlet3.0 注解配置 Servlet的体系结构 GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将 service() 方法作为抽象 将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可 HttpServlet:对http协议的一种封装,简化操作 定义类继承HttpServlet 复写 doGet/doPost 方法(判断请求方式) 通过浏览器直接请求时GET

mryjf的博客 303

Servlet,HttpServlet

放到这里补充是因为浏览器地址栏发起的请求默认的请求方式是get请求,无法测试post请求方式,这边我们使用postman进行测试。比如登录是一个功能,对应一个Servlet,注册是另一个功能,对应一个不同的Servlet。号拼接,多个参数使用&符号隔开,如:http://xxx.xxx.xx.xx/a/b?@WebServlet({"/demo1", "/demo2", ...}) // 配置多个请求路径对应一个Servlet。@WebServlet("/*") // 匹配所有的请求。

2203_75590300的博客 543

HttpServlet基础

本文介绍了创建HttpServlet类的方法及常用功能

2501_90864902的博客 482

Java Web HttpServlet

HttpServlet 设计Servlet之初,考虑到互联网中使用的协议不仅仅是http协议,所以为了支持更多的协议,Servlet使用接口的设计思想 GendericServlet,Servlet接口的子接口,一个通用的Servlet HttpServlet继承自GendericServlet,就是和http协议相关的Servlet,专门用来处理http协议的请求和响应 使用HttpServlet类,就不需要重写service方法,在HttpServlet中重写doGet、和doPost方法即可 如果是

编程大白菜 1024

JavaWeb三大组件之一-Servlet

因为现在我们的请求都是基于HTTP协议的,所以我们应该专门为HTTP请求写一个Servlet做为通用父类。由上图我们可以看出,以后再写Servlet 可以直接继承HttpServletØ Servlet 一个标准Ø GenericServlet 是Servlet接口子类Ø HttpServlet 是GenericServlet子类,一个专门处理Http请求的Servlet。

m0_75163045的博客 1315

Servlet继承结构以及访问路径配置

Serevlet体系结构 Servlet接口 其子类 GenericServlet package javax.servlet; import java.io.IOException; public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest va

qq_43563512的博客 392

JavaEE初阶--servlet篇(三)HttpServlet/response/request对应方法使用

1.总括说明 2.httpservlet父类 2.1方法介绍 2.2dopost方法的演示 2.3doput方法的演示 3.HttpServletRequest类 3.1方法说明 3.2方法使用演示 3.3getparameter方法使用 3.4使用form表单的方式 3.5jackson获取参数 4.HttpResponse类 4.1设置状态码 4.2自动进行刷新 4.3重定向跳转 4.3重定向跳转

大学成长道路上的探索经历与点滴思考,与君共勉,共筑成长。 1185
上一篇: 学习笔记(二)HttpServlet、ServletContext、ServletConfig
下一篇: JAVA动态代理
hello_delphi
博客等级 码龄22年 7粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值