1.jsp基础知识
1.1简介
- java server page,运行在服务器端的页面
- java代码+html代码
- java代码全部都放在<%%>中间
1.2jsp表达式
- 作用:将动态信息显示在页面上,以字符串方式,返回给浏览器端
- 语法:<%=变量或表达式%>
- 注意:不能使用分号放在后面
2.请求转发和重定向
2.1 请求转发
- 一个web资源收到客户端浏览器请求后,通知服务器去调用另外一个web资源来进行处理,服务器端行为
2.1.1 工作原理
2.1.2 RequestDispatcher接口
- HttpServletRequest调用getRequestDispatcher(String path):可以是绝对路径,也可以是相对路径
- ServletContext调用getRequestDispatcher(String):是绝对路径封装由路径所标识的web资源
- forward(req,resp):将请求转发给另一个web资源
- include(req,resp):将其他web资源作为响应内容包含进来
2.1.3 特性
- 请求转发不支持跨域访问,只能跳转到当前应用中的资源
- 请求转发,浏览器上的URL地址不改变,浏览器不知道服务器内部发生了请求转发,也不知道转发的次数
- 参与请求转发的web资源之间,共享同一个request和response对象
- 可以在请求范围内,使用setAttribute(名,值) ,getAttribute(名),来传递数据
2.2 重定向
- 当前浏览向服务器发送请求时,通知浏览器重新定向到另一个web资源,客户端行为
- 响应码:200表示成功,302表求重定向,404 资源不可访问,500 服务器内部错误(程序错误)
2.2.1 工作原理
2.2.2 重定向特性
- 浏览器地址栏会发生变化,变成第二次请求的地址
- 是两次request和response,不能在请求范围内传数据
- 可以跨域,可以重定向任何网址
2.3 区别
- 1.请求转发是一次请求,重定向是两次请求
- 2.请求转发浏览器地址不变,重定向浏览器地址改变
- 3.请求转发由于是一次请求,所以效率更高
- 4.请求转发可以在请求范围内传递数据,重定向不可以在请求范围内传递数据
- 5.请求转发不支持跨域,重定向支持跨域
- 6.请求转发是属于服务器端行为,重定向是属于客户端行为