web组件之间的跳转
1:请求转发(forward)
- 语法: request对象.getRequestDispatcher(String path).forward(req,resp);
2:URL重定向(redirect)
- 语法: response对象.sendRedriect(资源路径)
请求转发和URL重定向的区别
forward redriect
地址改变 不改变 改变
同一请求对象 是 否
数据共享 是 否
最终输出 要跳转到的 要跳转到的
Servlet Servlet
访问WEB-INF下资源 可以 不可以
跨域访问 不可以 可以
如何选择请求转发和URL重定向
- 如需跨域访问就选择URL重定向
Servlet中的四大作用域
类型 作用域范围
pageContext pageContext 当前页面(jsp)
request HttpRequset 每个请求
session HttpSession 每个会话,浏览器
application ServletContext 每个Servlet应用,服务器
ServletContext接口
- ServletContext:表示当前的应用
获取ServletContext对象
方式一: super.getServletContext(); 方式二: req.getsession().getServletContext() req.getServletContext()
常用方法
String getContextPath() 获取上下文路径 String getInitParameter(String name) 获取全局初始化参数 String getRealPath(String path) 获取指定文件的绝对路径
JSP
- JSP:Java Server Page(java的服务网页,动态网页)
Java的另一个动态网页技术Servlet
使用Servlet来开发动态网页
java代码为主+html为辅 网页开发成本大,维护性很低
使用JSP来开发动态网页
java代码为辅,html为主
1:注释<%--注释--%> 2:表达式<%=表达式%> 3:java代码<%语句1;语句2;%> 4:声明<%!java代码%>
JSP的三大指令
<%@ 指令名称 属性名=属性值 属性名=属性值...%>
page (定义JSP页面的各种属性)
language指定jsp使用的脚本语言只支持java
extends表示jsp对应的servlet类父类不要修改
import导入jsp中的类或包
session 是否可以使用session
buffer 使用缓冲输出流,默认大小为8kb
errorPage指定出现错误之后要走跳转的页面
isErrorPage指示当前页面是否产生异常对象,输出具体的异常信息
contentType指定当前页面得MIME类型(文件内容了类型)
pageEncoding采用的编码方式
include (静态包含,开发中能用静态不用动态)
静态包含:<%@ include file="文件名"%> file表示指定要包含的文件,如果使用"/"则表示使用绝对路径
动态包含:使用jsp的动作元素<jsp:include page=""/>
taglib(引入外部标签)
作用:引入外部标签
语法<%@taglib uri="标签名称" prefix="名称的前缀"%>
jsp指令最简单的方式<%@ page pageEncoding="UTF-8"%>
JSP的九大内置对象和四大作用域对象
九大内置对象
pageContext:-----------------------表示当前JSP页面的作用域 request:---------------------------每一个请求 session:---------------------------每一个会话 application:-----------------------web应用对象 response:--------------------------响应对象 config:----------------------------Servlet的配置信息 out:-------------------------------输出流对象 page:------------------------------当前JSP翻译成Servlet对象 exeception:------------------------异常对象
静态包含和动态包含的区别
结果相同,页面的包含时期不同
静态包含:在jsp被翻译就合并 动态包含:在运行时期合并
静态包含和动态包含的选择
被包含的是静态文件就选择静态包含 被包含的是动态文件就选择动态包含
- 被包含的文件通常不会单独访问,一般使用(.jspf)作为后缀