11.20[JAVAEXP3]重定向细究【DEBUG】

设置了根域名访问为testServlet,让他重定向到首页为test.jsp,事实上也都触发了,但是最后显示的为什么不是test.jsp生成页面,依然还是index.jsp生成的页面??

重定向是通过Dispatcher进行的,而不是sendRedirect,会有影响吗?

        req.getRequestDispatcher("test.jsp").forward(req, resp);
[2024-11-20 02:08:24,706] 工件 mavenFinal: 工件已成功部署
[2024-11-20 02:08:24,706] 工件 mavenFinal: 部署已花费 974 毫秒
Session created: 68E11A7B6708B9A40D7618F6FACFE666
Active sessions: 1
index.jsp had been touch!!!
Session created: 4779DFD02DD214D2FD8D8DB472BDC34A
Active sessions: 2
index.jsp had been touch!!!
Session created: 3E9C28768C9EBC36543B7BFCB44C9B4D
Active sessions: 3
index.jsp had been touch!!!
the test servlet had been touch
test.jsp has been touch!!!

服务器运行时,初始的这三个session连接是怎么回事?

index.jsp had been touch!!!
the test servlet had been touch
test.jsp has been touch!!!

再次访问域名时,访问信息依次如上所述,test.jsp既然是最后访问到的,为什么不会覆盖Indwx.jsp?再或者,为什么会访问index.jsp(此时welcome并没有配置)?

如果没有配置 web.xml 的url的映射顺序,而是分散在各个servelt当中,以@WebServlet("/")的形式定义映射方式,那么url的处理顺序是怎样的?

并不是url的处理顺序问题导致的

能否禁用web的默认welcome-list?使其访问域名时默认不渲染任何页面?而是经由servlet处理后才行?

package filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebFilter("/*")
public class LoginFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化过滤器}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletResponse httpResponse = (HttpServletResponse) response;// 获取会话HttpSession session = httpRequest.getSession(false);// 检查会话是否存在并且用户已登录if (session != null && session.getAttribute("user") != null) {// 用户已登录,放行请求chain.doFilter(request, response);} else {// 用户未登录,重定向到登录页面httpResponse.sendRedirect(httpRequest.getContextPath() + "/login.jsp");}}@Overridepublic void destroy() {// 销毁过滤器}
}

不应该是从客户端发来的cookie当中找到session的id,服务端再依据sessionId去查找对应的session吗?为什么会直接从request当中获取session?

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

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

相关文章

大端存储和小端存储究竟是什么

数据存储方式 数据在计算机中表现为是0101的二进制形式,cpu在读取数据的时候需要从低地址向高地址读取 注意: 永远都是从低地址开始读取数据 低地址和高地址 内存地址空间: 计算机的内存被划分为一个连续的地址空间,这个空间从0开始,一直…

8. Debian系统中显示屏免密码自动登录

本文介绍如何在Debian系统上,启动后,自动免密登录,不卡在登录界面。 1. 修改lightDM配置文件 嵌入式Debian系统采用lightDM显示管理器,所以,一般需要修改它的配置文件/etc/lightdm/lightdm.conf,找到[Seat…

三菱伺服JET产品线(选型说明)

伺服放大器功能提升 伺服放大器MELSERVO-JET系列为进一步优化了独家控制引擎的高性能伺服放大器。 可通过与支持CC-LinK IE TSN的运动控制器的同步通信,进行高 速、高精度的运动控制。 除了旋转型伺服电机以外,还支持线性伺服电机。MR-JET-G-N1支持EtherCAT。 旋转型伺服电机 …

关于Chrome自动同步书签的解决办法

前言 并不一定适用所有用户, 目前我在网上搜集了一些资料,也做了一些尝试。 就我个人总结的经验来讲,分享大家以下几种办法: 1.书签同步插件 点击如下🔗: Chrome书签同步https://bm.famend.cn/ …

基于elementui的远程搜索下拉选择分页组件

在开发一个练手项目的时候&#xff0c;需要一个远程搜索的下拉选择组件&#xff1b; elementui自带的el-select支持远程搜索&#xff1b;但如果一次性查询的数据过多&#xff1b;会导致卡顿。故自己实现一个可分页的远程下拉选择组件 效果&#xff1a; 代码&#xff1a; <…

告别充电焦虑:移动充电机器人的革命性解决方案

移动充电机器人作为新能源汽车领域的黑科技&#xff0c;正逐渐崭露头角。它的出现为电动汽车充电带来了全新的解决方案&#xff0c;解决了传统充电方式的诸多痛点。 新能源汽车具有诸多优点&#xff0c;如科技含量高、噪音小、使用成本低等&#xff0c;但 “续航焦虑”“充电焦…

Socket 编程预备

目录 理解源 IP 地址和目的 IP 地址 认识端口号 端口号范围划分 理解 "端口号" 和 "进程 ID" 理解源端口号和目的端口号 理解 socket 传输层的典型代表 认识 TCP 协议 认识 UDP 协议 网络字节序 socket 编程接口 socket 常见 API sock…

17. Threejs案例-Three.js创建多个立方体

17. Threejs案例-Three.js创建多个立方体 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 WebGL 场景的核心类。它负责将场景中的对象渲染到画布上。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选…

实例教程:BBDB为AHRS算法开发提供完善的支撑环境(下)

4. BBDB基础上为算法实现提供支撑方式二&#xff1a;算法层实现 第2节内容当中讲述在应用层实现AHRS的步骤&#xff0c;这种方法优点在于实现方法比较简单明了。但是缺点在于程序代码的组织算不上很好&#xff0c;AHRS算法代码与PH47框架代码间存在一定的耦合度&#xff0c;会…

Android开发,使用ViewPager2实现自动轮播图

文章目录 1. build.gradle添加依赖&#xff1a;2. AndroidManifest.xml中添加网络访问权限3. 编写 布局文件4. 编写Banner适配器5. 自定义Banner视图6. 定义圆点指示器的drawable资源7. 在需要使用轮播图中的Activity中使用8. 运行效果图9. 视频教程 在Android项目程序设计中&a…

企业网双核心交换机实现冗余和负载均衡(MSTP+VRRP)

MSTP&#xff08;多生成树协议&#xff09; 通过创建多个VLAN实例&#xff0c;将原有的STP、RSTP升级&#xff0c;避免单一VLAN阻塞后导致带宽的浪费&#xff0c;通过将VLAN数据与实例绑定&#xff0c;有效提升网络速率。 VRRP&#xff08;虚拟路由冗余协议&#xff09; 用…

Socket编程-tcp

1. 前言 在tcp套接字编程这里&#xff0c;我们将完成两份代码&#xff0c;一份是基于tcp实现普通的对话&#xff0c;另一份加上业务&#xff0c;client输入要执行的命令&#xff0c;server将执行结果返回给client 2. tcp_echo_server 与udp类似&#xff0c;前两步&#xff1…

15分钟训练数字人MimicTalk

只需15分钟&#xff0c;就能训练高质量&#xff0c;个性化数字人大模型。由浙江大学与字节跳动联合推出MimicTalk算法&#xff0c;目前已开源。 在外表和说话风格上和真人相似。将通用3D数字人大模型适应到单个目标人&#xff0c;采用动静结合的高效微调方案&#xff0…

【kettle】mysql数据抽取至kafka/消费kafka数据存入mysql

目录 一、mysql数据抽取至kafka1、表输入2、json output3、kafka producer4、启动转换&#xff0c;查看是否可以消费 二、消费kafka数据存入mysql1、Kafka consumer2、Get records from stream3、字段选择4、JSON input5、表输出 一、mysql数据抽取至kafka 1、表输入 点击新建…

在 MacOS 上为 LM Studio 更换镜像源

在 MacOS 之中使用 LM Studio 部署本地 LLM时&#xff0c;用户可能会遇到无法下载模型的问题。 一般的解决方法是在 huggingface.co 或者国内的镜像站 hf-mirror.com 的项目介绍卡页面下载模型后拖入 LM Studio 的模型文件夹。这样无法利用 LM Studio 本身的搜索功能。 本文将…

vue中.sync修饰符的用法

一、什么是.sync修饰符 在Vue.js中&#xff0c;.sync 修饰符用于创建一个双向绑定的 prop。它使子组件能够更新父组件的 prop 值&#xff0c;实现父子组件之间的双向数据同步。具体来说&#xff0c;.sync 修饰符主要有以下几个功能&#xff1a; 简化双向绑定&#xff1a; 使用…

【附源码】基于环信鸿蒙IM SDK实现一个聊天Demo

项目背景 本项目基于环信IM 鸿蒙SDK 打造的鸿蒙IM Demo&#xff0c;完全适配HarmonyOS NEXT系统&#xff0c;实现了发送消息&#xff0c;添加好友等基础功能。代码开源&#xff0c;功能简洁&#xff0c;如果您有类似开发需求可以参考。 源码地址&#xff1a;https://github.c…

SHELL----正则表达式

一、文本搜索工具——grep grep -参数 条件 文件名 其中参数有以下&#xff1a; -i 忽略大小写 -c 统计匹配的行数 -v 取反&#xff0c;不显示匹配的行 -w 匹配单词 -E 等价于 egrep &#xff0c;即启用扩展正则表达式 -n 显示行号 -rl 将指定目录内的文件打…

Can‘t find variable: token(token is not defined)

文章目录 例子 1&#xff1a;使用 var例子 2&#xff1a;使用 let 或 const例子 3&#xff1a;异步操作你的代码中的情况 Cant find variable: tokentoken is not defined源代码 // index.jsPage({data: {products:[],cardLayout: grid, // 默认卡片布局为网格模式isGrid: tr…

【AI系统】GhostNet 系列

GhostNet 系列 本文主要会介绍 GhostNet 系列网络&#xff0c;在本文中会给大家带来卷积结构的改进方面的轻量化&#xff0c;以及与注意力(self-attention)模块的进行结合&#xff0c;部署更高效&#xff0c;更适合移动计算的 GhostNetV2。让读者更清楚的区别 V2 与 V1 之间的…