Servlet+JSP+AJAX(day03)Servlet

ServletContext 上下文对象 了解

用于关联多个Servlet
是多个Servlet之间 通信的桥梁, 用于多个Servlet之间信息的共享 等等 !

ServletContext 在JSP技术中, 我们称其为 application

我们的tomcat 在启动时, 会为每一个项目创建且仅创建一个ServletContext对象 ! 在服务器关闭或应用被卸载时, 对象会被销毁 !

我们在项目的Servlet中, 可以通过一些方法, 得到这个对象, 并进行数据的存储 , 修改, 删除,获取等操作!

如何从Servlet中 得到一个ServletContext对象

在Servlet中, 通过getServletContext方法 获取上下文对象

格式:
ServletContext context = getServletContext();

ServletContext 常用方法

  1. 设置&替换数据
    context.setAttribute(String key,Object value);

  2. 获取数据
    Object value = context.getAttribute(String key);

  3. 删除数据
    context.removeAttribute(String key);

  4. 获取项目运行时所在的文件路径
    String 路径 = context.getRealPath("/");

ServletContext 获取应用初始化时 配置文件中的数据

我们可以在web.xml中 , 向ServletContext 添加初始化的数据

在web.xml中添加数据:

key 值

注意: 上述的节点可以配置多个

获取数据的方法:

String value = context.getInitParameter(String key);

获取所有的key
String[] arr = context.getinitParameterNames();

ServletConfig 对象 了解

是一个Java类 , 每一个Servlet都拥有一个ServletConfig对象

获取对象的两种方式 (这两种方式是互斥的):

1.  在Servlet中,通过getServletConfig() 获取 !
2.  通过重写init方法, 使用参数列表中的config对象 !

我们可以通过web.xml 向每一个servlet添加配置的信息 , 在Servlet中可以通过servletconfig得到这些配置信息 !

格式:




key


通过ServletConfig如何获取初始化的参数数据
String value = config.getInitParameter(String key);

获取所有的key
String[] arr = context.getinitParameterNames();

Servlet 创建时机

web.xml中 serlvet的配置中

可以通过 节点 来指定Servlet启动顺序

当节点值为负数 或 不写时 , 表示当用户第一次请求时, 创建此Servlet !
当节点值等于0或大于0时, 在Tomcat启动时, 创建此Servlet !

如果存在多个等于0或大于0的Servlet , 启动的顺序是: 值越小越早创建 !
值相同时, 自上而下顺序创建 !

请求重定向 与 请求的转发

请求转发与重定向 在一次业务中 ,可以进行多次 !

请求转发与重定向 , 必须存在结束的操作 ,也就是必须存在响应 !

请求转发 *****

一个web组件 , 将未处理完的请求, 通过tomcat转交给另一个web组件进行处理 !
步骤:

1.  获取请求转发器
    RequestDispatcher rd = request.getRequestDispatcher("转发的地址");
2.  进行转发操作
    rd.forward(request , response);

简写: request.getRequestDispatcher("转发的地址").forward(request , response);

特点:
1. 转发过程中 , 多个web组件之间共享一个请求对象 与 响应对象 !
2. 在转发的流程中, 浏览器只发起了一次请求, 所以浏览器地址不会发生改变 !
3. 转发不能跨项目实现
4. 相较于重定向来说, 效率更高 !

请求重定向 *****

一个web组件, 处理完毕请求后, 告知浏览器, 将请求转向下一个web组件 !

格式:
response.sendRedirect(“重定向的地址”);

原理:
当客户端请求服务器时, 服务器给浏览器响应一个302的状态码, 以及一个location地址

浏览器每接到302的状态码时.  就会自动寻找响应中的location , 并向这个location发起新的请求 !

特点:
1. 产生了两次请求
2. 浏览器地址发生了改变
3. 重定向可以跨服务器实现(例如我们的项目 , 可以将请求重定向至百度)
4. 性能较低

HttpServletRequest 常用的操作:

  • request.getMethod() 得到请求的方式
  • getRequestURI() : 获取请求地址
  • getRemoteAddr() : 获取客户端的ip地址
  • getRemoteHost() : 获取客户端的机器名称
  • getServerName() : 获取服务器的名称
  • getServerPort() : 获取放服务器运行的端口号
  • getQueryString(): 获取GET请求的 网址? 后的字符串

作业:

完成上午编写的作业 !

根据上午编写的用户管理的作业,
完成一个图书管理的作业

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP(Aptech Certified Computer Professional)是印度最早从事IT职业教育的Aptech计算机教育公司推出的培养软件程序设计人员的课程体系,由北大青鸟集团于2000年引入中国。该课程体系通过结合先进的多模式教学法,使学习者在掌握理论知识与工具的同时,具备良好的自我学习能力和个人素质,成为符合21世纪企业要求的IT人才。   ACCP 6.0是北大青鸟APTECH推出的最新软件工程师职业教育课程,由中印两国软件技术专家联合研发完成。作为一款面向大众的求职系列教育产品,ACCP6.0的课程开发采用了全球同步机制,推陈出新,引领未来IT技术发展潮流,继续保持了北大青鸟APTECH ACCP课程体系的国际同步水平以及在国内IT职业教育领域的领导地位。   ACCP6.0的课程相对于ACCP5.0增加了DB2关系型数据库系统,DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。DB2具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 09年6月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9.5,而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。   ACCP6.0课程体系特色   1.分阶段训练:引领学员入门,加大训练量,训练学员程序逻辑和写代码的能力,夯实学员的基础;   2.分术业专攻:基础和思想决定了一个人含金量。要想在软件行业增强发展力,必须着重基础与理论知识。   3.分维度培养:从业务理解、经验积累、规范性、质量控制、团队意识和软件生命周期六个方面进行训练。   4.分层次深入:主要分为初次使用、理解加深和灵活应用这三个层次。学员理解为更为透彻,掌握更为牢固。   逆向设计确保就业——专业分析5362条招聘信息   ——深入访谈386家用人企业   ——定制2份行业人才需求标准简历   ——针对286项关键技能点逐一突破   ——斥资2000万,组织186名中美印专家投入研发   高强训练编程能力——1年半完成52000行代码编写   ——相当于1名程序员2年代码编写量   项目驱动案例贯穿——提供CRM、ERP中型项目实战训练   ——演练26项全真项目案例,贯穿8大行业   打造COT六脉神剑 ——训练目标清晰 训练手段多样   ——渗透学习过程 考核方法明确   ——接轨职场礼仪 积累职场经验

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值