Servlet
servlet 是JavaServlet的简称,称为小服务程序或者服务连接器,
用java编写的服务端程序,具有独立于平台和协议的特性,主要功能在于交互式的浏览和生成数据,生成动态web内容。
Servlet实现页面的跳转:
Servlet实现页面跳转有两种方法:转发和重定向
在验证登录信息时候,就可以把这两种方法体现出来。
// 登录验证信息 if (user.equals("pan_junbiao的博客") && password.equals("123456")) { // 如果验证成功,则转发succeed.jsp页面,并在页面显示用户名 request.getRequestDispatcher("/WEB-INF/succeed.jsp").forward(request, response); } else { // 如果验证失败,则重定向到登录页面 response.sendRedirect("/login.jsp"); } } }
转发
转发是在服务器端起作用的,当使用 forward() 方法时,Servlet 容器传递HTTP请求,从当前的 Servlet 或 JSP,此过程仍然在 request 的作用范围内。转发后,浏览器的地址栏内容不变。
转发使用 HttpServletRequest 对象的.forward() 方法实现,对应的 Servlet 语法格式如下
request.getRequestDispatcher("/WEB-INF/succeed.jsp").forward(request, response);
重定向
重定向是在用户的浏览器端工作的,是Servlet对浏览器做出响应后,浏览器再次发送一个请求。重定向后,浏览器的地址栏内容发生变化。
重定向使用 HttpServletResponse 对象的sendRedirect()方法实现。
// 如果验证失败,则重定向到登录页面 response.sendRedirect("/login.jsp");
转发和重定向的区别:
最终实现的功能是相同的,不同的如下:
地址栏变化:
转发:不改变URL地址
重定向:改变URL地址
跳转范围
转发: 只能访问到当前web应用中的内容;
重定向: 则可以访问到任意web应用中的内容;
request对象作用范围
转发: 在转发后的页面中仍然可以使用原来的request对象;
重定向: 原来的request对象则失去作用;所以,如果想要在多个页面使用相同的request对象,那么只能使用转发,而不能使用重定向。
注意:
这一句话意思是,重定向其实是发生了两次请求,而request的请求域作用范围是一次请求内,所以不能实现数据共享。
要想实现数据共享,要么提升作用域,要么只能在当前作用域范围能实现对应的操作。
十、请求包含
- 请求包含: 可以合并其他Servlet中的功能一起响应给客户端。
- 特点:
- 浏览器地址栏不变;
- 域对象中的数据不丢失;
- 被包含的Servlet响应头会丢失;
- 注意:请求包含跟请求转发用法一样。
响应对象
一.response响应对象介绍
响应:回馈结果
B/S(浏览器接受一个用户的输入)架构中,就是服务器给客户端浏览器返回结果
响应对象:在项目中用于发送响应的对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通