java获取作用域的值_7 Servlet交互和作用域对象

1.多个web组件进行跳转(加上/就是绝对路径)

WEB组件跳转的三种方式:(组件包括Servlet,jsp,Filiter)

①.请求转发(forword)

request对象.getRequestDispatcher(String path).forword(request,response);

特点:

地址栏不变

AServlet和BServlet共享同一个请求(共享请求数据)

页面响应的数据是有BServlet决定的

不能跨域访问

可以访问WEB-INF下面的资源

②.URL重定向(redirect)

response对象.sendRedirect(String path);

特点:

地址栏中的地址改变

AServlet和BServlet各自发一个请求(不能共享请求数据)

页面响应的数据是由BServlet决定的

可以跨域访问

不能访问WEB-INF下面的资源

1.1使用请求转发

需要在同一个请求对象中共享数据

需要访问WEB-INF下面的资源

1.2.使用URL重定向

需要跨域访问

使用URL重定向可以防止表单重复提交

1.3.请求包含(include)

2.需要多个页面跳转共享数据要依赖作用域对象(web组件的3大作用域)

对象名称 数据类型 对象描述

request HttpServletRequest 在一个请求中共享数据

session HttpSession 在一个会话共享数据

(ServletContext)application ServletContext 在一个应用中共享数据

所有作用域对象设置/获取数据一样:

设置共享数据:

作用域对象.setAttribute(String name,Object value);

获取共享数据:

作用域对象.getAttribute(String name);

各自的作用共享的数据只能在各自的作用域中取出来,不能跨作用域取共享数据

3.ServletContext接口和常用方法

接口ServletContext就是上下文

获取ServletContext对象:

ServletContext ctx=request.getSession().getServletContext();

获取当前应用的上下文路径:

String path=ctx.getContextPath();

获取当前项目的根路径:

ctx.getRealPath(String name);

获取全局的初始化参数:

ctx.getInitParameter(String name);

获取局部的初始化参数:

super.getInitParameter(String name);

全局初始化参数的配置:

encoding

UTF-8

4.JSP

①.JSP的原理:

JSP文件-->Servlet类-->编译成字节码-->解释执行

JSP底层使用Servlet输出流输出HTML代码片段

JSP语法:

输出数据到页面上:

相当于在servlet中的service方法写java代码:

②.JSP的三大指令:

page/include/taglib

指令的语法:

2. include(静态包含,包含其他组件)

语法:

动态包含:

3.taglib(引入外部标签)

③.JSP的九大内置对象

pageContext 在当前页面共享数据

request 在一个请求共享数据

session 在一个会话中共享数据

application 在一个应用中共享数据

response 响应对象

exception 异常对象

config 获取初始化配置参数对象

out 输出流对象

page 当前servlet对象

④.JSP的四大作用域

pageContent

request

session

application

⑤.JSP的动作元素

:在包含和转发时,利用该标签传递请求参数

静态包含和动态包含的区别:

静态包含在翻译的时候,将多个JSP合并翻译成一个Servlet

动态包含在翻译时,每个jsp文件都会翻译成对应的Servlet,

在程序运行加载到JVM中的时候动态合并

动态包含可以传递参数

⑥.改JSP的模版文件

JSP Files-->Templates-->New JSP File(html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值