JavaWeb 请求响应路径调试

在使用mvc时,或许会遇到请求的页面响应不了,这种情况要对站下径。

站点根目录

启动服务器时,通常要知道哪个是站点根目录。相应在网页端的url的跟站点通常为http://localhost:8080/ ,前端解析时用的是站点根目录。

html 复制代码
<form  action="/ljtest" >

指向的本地路径可从编译器找。

接着,前端页面表单提交给后端处理,注意,这里响应的是后端的注解路径,而不是java的类名。

java 复制代码
@WebServlet("/ljtest")
public class nb extends HttpServlet

类名可以跟注解不一样。

应用根目录

注意,后端解析的"/"指向的是应用根目录。从部署服务器找,一般默认为http://localhost:8080/项目名。

不想混淆,可以把下面的部署名去掉。

这就是后端前面"/"所指的url路径。

写请求与响应对应路径

最简单的写法,用相对路径即可,表单提交时前面不加"/",然后后端路径写一层即可。这里会有个问题,有些是放了几个包的,如果在重定向转发时怎么做跳转。

经多次调试,发现了几个解决小tips。

首先,用绝对路径时一定要分清楚前端解析的"/"是站点根目录,后端解析的"/"是应用根目录。前端可以不用,但后端的url注解是会有的。然后前端页面发送后后端文件时跟着前端前面的url地

html 复制代码
<form  action="/ljtest" >
java 复制代码
@WebServlet("/ljtest")

运行服务器,前端页面url为http://localhost:8080/sysql_war_exploded/inputtest.jsp,提交表单后为

http://localhost:8080/ljtest ,这个是前端表单解析的站点根目录。

html 复制代码
<form  action="ljtest" >
java 复制代码
@WebServlet("/ljtest")
java 复制代码
 response.sendRedirect("/inputtest.jsp");

运行提交表单后可看到,后端重定向与浏览器解析的是应用根目录。

在了解以上情况后,就可以知道怎么写路径了,如果默认路径不是到你的包名,你需要加一层路径,接着后端响应也要跟着加一层。如本地根目录指向的是工程文件,需要加多一层web找文件,注意此时后端重定向时会直接到最后的那个,重定向时url会对注解的上一层进行保留。

java 复制代码
@WebServlet("/web/ljtest")
java 复制代码
response.sendRedirect("web/inputtest.jsp");

这样找是错的,因为用相对路径,即在当前文件找,url会出现/web/web的情况。因此使用相对路径也得适当了解一下请求与响应的url。

小结

分清绝对路径中对站点根目录与应用根目录,相对路径中在哪个文件进行转发重定向部分url会保留。

相关推荐
2401_878530216 分钟前
自定义内存布局控制
开发语言·c++·算法
x-cmd6 分钟前
[x-cmd] 终端里的飞书:lark-cli,让 AI Agent 拥有“实体办公”能力
java·人工智能·ai·飞书·agent·x-cmd
wjs202410 分钟前
SQLite 子查询
开发语言
AndrewMe821115 分钟前
detailed-docx:一个能保住格式的 Word 文档操作库
开发语言·python·word
IT方大同19 分钟前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
吾日三省Java20 分钟前
SpringBoot锁设计:让你的系统不再“抢”出问题!
java·spring boot·设计思路
智算菩萨24 分钟前
【OpenGL】6 真实感光照渲染实战:Phong模型、材质系统与PBR基础
开发语言·python·游戏引擎·游戏程序·pygame·材质·opengl
jinanwuhuaguo24 分钟前
OpenClaw深度沟通渠道-全景深度解构
大数据·开发语言·人工智能·openclaw
XXOOXRT25 分钟前
Ubuntu搭建Java项目运行环境(JDK17+MySQL8.0)超详细教程
java·linux·mysql·ubuntu
是翔仔呐25 分钟前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee