JSP 补充

JSP九大内置对象

内置对象特点:

  • 由JSP规范提供,不用编写者实例化。
    2.通过Web容器实现和管理
  • 所有JSP页面均可使用
  • 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)

常用内置对象:

  • 输出输入对象:request对象、response对象、out对象
  • 通信控制对象:pageContext对象、session对象、application对象
  • Servlet对象:page对象、config对象
  • 错误处理对象:exception对象
  • List item

Page指令 <%@page 属性=”内容“%>

在这里插入图片描述

jsp:useBean

jsp:useBean的基本用法
jsp:useBean是一个JSP动作指令,表示装载一个将在JSP页面中使用的JavaBean。jsp:useBean的最基本语法如下:

<jsp:useBean id="name" class="package.class" />
<jsp:useBean id="user" class="com.imooc.vo.User" scope="page"></jsp:useBean>
	
<h2>跟表单关联,设置所有的属性值</h2>
<hr/>
<jsp:setProperty property="*" name="user"/>
用户名:<jsp:getProperty property="userName" name="user"/><br/>
密码:<jsp:getProperty property="password" name="user"/>

jsp:getProperty
可以使用jsp:getProperty来获取指定的JavaBean的值,基本语法如下:

<jsp:getProperty name=”JavaBean实例名” property=”属性名” />

jsp:setProperty

可以使用jsp:setProperty为已经实例化的JavaBean的属性赋值,而jsp:setProperty共有四种使用方式。
1、<jsp:setProperty name=“JavaBean实例名” property="*" />
这种方法与表单元素相关联,就是将表单中所有元素与JavaBean属性进行对应,如果元素名与属性名相同,则将表单元素的值赋给对应的属性。可以通过一个实例来解释一下这个用法,现有一个登录的界面如下,表单中有两个元素用户名userName和密码password,表单提交后将由dologin.jsp进行处理。
2、<jsp:setProperty name=“JavaBean实例名” property=“JavaBean属性名” />
这个方法也与表单相关联,不同的是这里的属性不再是全部的属性都与表单关联,而是指定相应的属性与表单关联,未指定的属性将不被赋值
3、<jsp:setProperty name=“JavaBean实例名” property=“JavaBean属性名” value=“BeanValue” />
使用这个方法可以直接为JavaBean的相应属性赋value里的值,再次修改dologin.jsp的代码。
4、<jsp:setProperty name=“JavaBean实例名” property=“JavaBean属性名” param=“request对象中的参数名” />
使用这个方法通过获取request的参数来为相应的属性赋值,其中param为参数名。修改login.jsp的代码,在form里的action中添加一个参数myUserName,值为wangwu。

JavaBean的四个作用域

在使用jsp:useBean时可以使用scope属性为JavaBean指定作用域,scope的值有四个:page(默认),request,session,application。
1、application作用域
当指定JavaBean的作用域为application表示在整个项目的生命周期中都有效,服务器重启后失效。现仍复用上面的登录界面,点击登录后跳转到dologin.jsp页面中,为JavaBean设置scope为application,使用<jsp:setProperty name=“JavaBean实例名” property="*" />关联表单为属性赋值,同时新增一个链接跳转到testScope.jsp页面来测试是否能获取到JavaBean的属性值。
2、session作用域
session作用域表示在当前会话周期内有效,只要仍在当前的会话生命周期内,就可以获取到相应的属性值。修改dologin.jsp和testScope.jsp里JavaBean的生命周期为session,运行项目,登录页面输入用户名zhangsan密码123456,点击超链接,只要在当前会话的生命周期内,都可以看到用户名和密码信息。
3、request作用域
request作用域表示在当前用户的请求内有效,如果超过了当前请求,则获取不到相应的JavaBean的值。如果将上述案例的dologin.jsp和testScope.jsp里的JavaBean的生命周期改为request,再输入用户名和密码:
4、page作用域
page作用域表示只在当前的页面有效,所以不管是请求重定向还是服务器内部转发,当发生页面跳转时都不能获取到JavaBean的属性值信息。page作用域是jsp:useBean的默认作用域,案例这里就不再赘述了。

请求重定向与请求转发的区别

1、请求重定向

使用responce.sendRedirect(“xx.jsp”)来进行重定向。是客户端的行为:即客户端会访问两次,第一次访问后会立即跳转到第二个重定向页面上,从本质上讲等于两次请求,而前一次的请求封装的request对象不会保存,地址栏的URL地址会改变。
2、请求转发

使用request.getRequestDispatcher(“xx.jsp”).forward(request,response)请求转发。forward(request,response)用于保存内置对象request和response。是服务器的行为:服务器会代替客户端去访问转发页面,从本质是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值