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)