传智播客java培训呢---Servlet共享信息及控制

在一个综合的web应用系统中,各个组件通过共享对象来交换数据,我们就叫它web应用开发中的信息共享在Javaweb应用中,通常我们使用四个共享对象。

1四个共享对象作用域

Page 当前页面

Request 一次请求

Session 一次会话

application 整个web的生命周期

相同点 有相同的存储方法

setAttribute(String name Object value)
getAttribute(String name)

getAttributeNames()
removeAttribute(String name)

区别 共享范围不同

Page 当前页面

Request 一次请求

Session 一次会话

application 整个web的生命周期,一个工程只有一个

2 Context起始参数

<context-param>

    <param-name>nba</param-name>  定义起始参数名称

    <param-value>乔丹</param-value> 定义起始参数值

</context-param>

servletContext sc = this.getServletContext();直接调getServletContext()方法取得ServletContext对象。

sc.getInitParameter(“nba”); 获取某个参数的参数值

sc.getInitParameterNames(); 返回所有初始化参数名称的枚举

3配置servlet的初始化参数

<servlet>

<init-param>

       <param-name>nba</param-name>

       <param-value>乔丹</param-value>

</init-param>

</servlet>

使用servletConfig对象读取初始化参数信息

servletConfig.getInitParameter(“nba”); 回去某个参数的参数值

servletConfig.getInitParameterNames(); 返回所有初始化参数的名称的枚举

servletConfig.getServletName(); 获取servlet名称

4 属性文件db.properties

properties文件作为属性文件、资源文件、配置文件使用,后缀为.properties

格式为key=value 其中key不变 value是变化的

读取方法一

String reanlPath = this.getServletContext().getRealPath(“相对路径”); 获取绝对路径

FileInputStream fs = new FileInputStream(realPath);

Properties prop = new Propreties();

Prop.load(fis);

Prop.getPropertier(key);

读取方法二

InputStream ins = this.getServletContext().getResourceAsStream(“相对路径”);

Properties prop = new Propreties();

Prop.load(fis);

Prop.getPropertier(key);

两个方法都获取绝对路径

5 服务器加载时启动servlet

servlet标签内加<load-on-startup>0</load-on-startup >

数字越小,优先级越高。

构造方法在init()方法前调用

6 路径设置问题

./ 表示当前路径

       不加./也表示当前路径

       ../ 表示当前路径的上一级路径

       ../../ 表示当前路径的上一级路径的上一级路径

 

7 servlet进行共享控制有3种方式
(1)请求转发(forward)

    (2)URL重定向(redirect)

(3)包含(include)

请求转发

使用requestDispathche接口

获取接口对象

Request.getRequestDispathcher()

forword(request,response);

此方法属于RequestDispatcher接口,并可用来把一个servlet的请求提交到另一个。当其输出完全由第二个servlet或被调用的servlet生成时,必须用此方法

如果已经通过响应返回了一个ServletOutputStream对象或PrintWriter对象,这个方法将不能使用,否则,这个方法会抛出一个IllegalStateException

 (在不合理或不正确时间内唤醒一方法时出现的异常信息。换句话说,即 Java 环境或 Java 应用不满足请求操作)

重定向

Response.sendRedirect(“路径”);

包含

include(request, response)

    用来包括发送给其他服务器资源的响应的内容。本质上来说,这个方法反映了服务器端的内容。请求对象传到目标对象后会反映调用请求URL路径和路径信息。这个响应对象只能调用这个ServletServletOutputStream对象和PrintWriter对象。

 

转发和重定向的区别

1 地址栏路径变化

转发 客户端浏览器地址路径不变化

重定向: 客户端浏览器地址栏路径变化

因为转发在服务器端进行,重定向从客户端进行,重新发送请求。

2 request对象中存放的信息是否丢失

转发:没有丢失

重定向:丢失

3 /的区别

转发:/便是从web应用的跟路径开始查找      http://localhost:8080/项目名

重定向:/web站点的路径开始查找       tomcatwebapps目录

4 访问的资源

转发:只能访问当前web应用资源

重定向:可以访问当前应用资源,也可以访问外部资源

5 是否可以访问web-inf下的资源

    转发: 可以访问

    重定向: 不能访问

6 想浏览器发送请求的次数

    转发:一次

重定向:两次

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值