day13-Servlet交互与JSP资料.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Servlet交互与JSP 1 主要内容介绍 1.Web页面跳转和信息共享 2.Servlet作用域对象 3.动态网页:JSP 2 Web页面跳转和信息共享 思考(学习过的Servlet): 如何书写Servlet? Servlet中可以写些什么代码? 以后我们在Servlet中主要写什么代码? 2.1 Servlet的三大职责 接收请求参数 调用业务方法处理请求(暂时从Servlet中直接调用dao层的方法) 页面跳转 界面层 》 业务层(service) -- 》 数据层(dao) 2.2 数据共享与页面跳转 思考:为什么需要数据共享和页面跳转? 为什么要有跳转: Servlet需要跳转到其它Servlet中,因为我们需要职责分明,不同Servlet来完成不同的功能 Servlet跳转到JSP中,Servlet输出动态页面实现恶心,咱们需要使用JSP来做页面的显示 为什么要共享: http是无状态的,因为在不断的跳转过程中我们需要对数据进行共享。昨天咱们已经学习了一个数据共享Session了。 注:Session有一个缺陷,咱们不能滥用。 数据共享和页面跳转的方式如下 2.3 请求转发(forward) 需求:AServlet中没有做完的事情跳转到BServlet中继续执行 语法:req.getRequestDispatcher(String path).forward(ServletRequest req,ServletResponse resp); getRequestDispatcher : 获得转发器 path : 跳转到哪里? forward : 跳转,并带上参数, 千万不要忘记调用此方法了! 补充一句 : 上面代码写哪里? AServlet中的service方法里面 示例: 特点: 转发过程中浏览器地址栏路径没变 只发了一个请求 两个Servlet中共享同一个请求(就是请求对象request对象),在请求中共享数据;响应由最后一个决定。 思考如何验证,并完成验证! 只会显示最后一个响应对象中的数据 跳转之后一般都不要写代码 只能够访问当前应用中的资源,不能够跨域跳转(老师我想跳转到源代码官网去看视频...) 可以使用相对路径,不推荐 可以访问WEB-INF中的资源 从html页面跳转到Servlet需要先加上server.xml中的path(如果有),Servlet中的跳转是不需要加的! 疑问: 既然可以访问WEB-INF中的资源了,那怎么之前又说放在里安全呢? 程序没有提供的路径就不能够访问; 在跳转之前可以做权限判断 2.4 URL重定向(redirect) 需求:AServlet中没有做完的事情跳转到BServlet中继续执行 语法:resp.sendRedirect(String path); 示例: 特点: 测试下面每个点请留意浏览器地址栏!!! 浏览器中地址会变,相当于访问了两次 注意: path中应该加上server.xml中的path的值,如果有的话 发送了两个请求 因为是不同的请求,所以不能够共享请求中的数据 最终的响应是由最后一个Servlet决定 可以跨域访问资源(尝试访问) 不能够访问WEB-INF中的资源(思考为什么?) 2.5 请求包含(include-不用)了解 需求:AServlet中没有做完的事情跳转到BServlet中继续执行 语法:req.getRequestDispatcher(String path).include(ServletRequest req,ServletResponse resp); 特点: 基本上和forward一样,只是把两次响应的结果都输出了 2.6 常见面试题: 1. 请求转发forward和URL重定向的区别? 回答方式: ① 分别解释各自的定义 ② 罗列各自的特点(最好是表格对比) ③ 各自的使用场景(其实也是来源于特点) 2. 两者如何选择? ①如果需要共享请求中的数据,只能用请求转发 ②若要访问WEB-INF中的资源 ,只能用请求转发 ③若要跨域访问,只能用URL重定向 ④请求转发可能造成表单重复提交问题 3 数据共享与作用域对象 作用域对象存在的意义: 为了在多个web组件之间传递和共享数据。 3.1 认识作用域对象与操作 上面的作用域对象其中可以存储一些数据,在某种程度上(作用域)实现数据的共享 面试题: HttpServletRequest req 中下面两个的区别 HttpServletRequest 中有如下的两个方法而已: req.getParameter(“name”); 取到前台请求传入的参数 req.getAttribute(“name”); 把req当成作用域对象来存

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档