Web 中的组件跳转:请求转发和重定向

web中间的组件跳转
一:请求转发
req.getRequestDispatcher(“ShowServlet”).forward(req, resp);
1:只有一个请求
2:URL不会改变(路径从上下文开始)
3:可以共享请求中的数据
4:由最后一个servlet来决定响应结果
5:请求转发不能跨域
6:可以访问web-inf 下的资源

二:重定向
resp.sendRedirect(“show”);
1:多次请求
2:URL会进行改变
3:不能共享数据
4:由最后一个servlet来决定响应结果
5:可以跨域
6:无法访问web-inf 下的资源

Servlet作用域: (所有作用域都是用来共享数据的)
名称 类型 描述
1: request(请求域) HttpServletRequest 把数据放到请求域当中,可以在一次请求中共享数据。
req.setAttribute(“user”, user);
// 存放数据的时候key 一定是字符串类型,value是Object
req.getAttribute(“user”);
// 根据key取出对应数据

2:session(会话域) HttpSession 把数据放到会话作用域当中,只要浏览器不关闭数据就共享
会话:浏览器的开启称为一次会话,如果关闭浏览器则会话结束
一般我们通过请求可以获得当前会话对象。
req.getSession().setAttribute(“user”,user);
req.getSession().getAttribute(“user”);
req.getSession().setAttribute(“user”,null);
req.getSession().removeAttribute(“user”);

3:application(应用域) ServletContext 把数据放到应用域当中,应用在服务器启动时候创建,服务器关闭时候销毁
req.getSession().getServletContext().setAttribute(“user”,user);
req.getSession().getServletContext().getAttribute(“user”);

jsp: Java Server page JAVA 服务器页面
Servlet的职责:
1:获得请求参数
2:调用业务处理方法
3:控制页面跳转
servlet的缺点:在servlet中手写html页面代码非常恶心,而且没有体现出职责分离。

Servlet的动态页面输出:
Java为主,+HTML为辅== 一个动态页面

Java为辅,+JSP为主==	一个动态页面

实际上JSP就是一个Servlet,在运行的时候会被先编译成一个Servlet然后执行

JSP:三大指令
1:page 用于定义页面的各种属性以及导包
2:include (静态包含于动态包含,推荐使用静态包含) 实际上及时把一个页面放到另外一个页面当中

静态包含:<%@include file="/login.jsp" %>
动态包含: <jsp:include page="/login.jsp" />
1:书写方式完全不同,动态包含是使用jsp指令书写
2:两者编译后的文件数量不同
3:两者执行时间不同
静态包含是在 jsp 编译成.java文件的时候
动态包含是在执行.class文件的时候
4:动态包含可以有重名变量,静态包含不能有。
3:taglib指令 引入外部标签
<%@ taglib uri=“标签的名称空间” prefix=“标签的前缀” %>

Jsp中九大内置对象
pageContext 表示当前的jsp对象
request 表示请求对象
session 表示当前会话对象
application 表示应用对象
response 表示响应对象
page 表示当前页面
out 表示输出流对象
config 表示jsp配置对象
exception 表示异常对象

Jsp四大作用域
pageContext 把数据放到当前页面当中。
request 把数据放到请求域当中,可以在一次请求中共享数据。
session 把数据放到会话域当中,可以在一次会话中共享数据
application 把数据放到应用域当中,可以在一次应用中共享数据
Jsp的常用动作指令(作业)

<error-page>		
	<error-code>500</error-code>
	<location>/A.jsp</location>
</error-page>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值