java el表达式 导航规则_Jsp学习笔记(2)——页面导航、表单、EL表达式

页面导航

有两种跳转页面的方法。重定向和请求转发

两者区别:

请求转发(forward)

重定向(rerect)

请求服务次数

1

2

是否保留第一次请求request范围的属性

保留

不保留

地址栏的请求url是否改变

不变

改变,相当于在地址栏重新输入url按下回车键

说明的例子:

请求转发:张三去银行办理业务,在窗口a办理,窗口a的业务员发现自己无权操作,便把张三的业务交给其他人去完成

重定向: 张三去银行办理业务,在窗口a办理,窗口a的业务员发现自己无权操作,提示张三去窗口b办理

重定向

重定向,客户端实际上进行了两次请求,在第一次请求,获得到了一个特殊的response,没有任何内容,客户端接收到此请求,会修改location,向新的location再次发送请求

重定向(response),会丢失request的数据,而sension里面的数据不会丢失

应用程序的根目录(上下文) request.getcontentpath()

// "/" 是tomcat的根目录 (http://localhost:8080/)

response.sendredirect("url")

// 应该这样写:

respones.sendredirect(request.getcontentpath()+"/dologin.jsp");

请求转发

// url中的“/”是web根目录(就是web文件夹)

request.getrequestdispatcher("url").forward(request,resopnes)

请求转发前后的request是同一个对象

表单

在form标签里面存在着表单元素,form设置action,表示,当点击提交按钮,就会跳转到的jsp页面(重定向)

上面的代码块,点击按钮的时候,就会跳转到login.jsp,同时带上了参数 username和password

实际上,相当于发送了一条这样的请求 login.jsp?username=xx&password=xx

之后,就可以通过request.getparameter("username")这样的方式来获得传过来的数值

如果某个标签有disable,即使该标签有name属性,但请求的参数是无法获得name的对应的值

客户端(js,html)中 “/”表示localhost:8080

jsp/servlet 在请求转发就是web根目录(应用程序上下文)

el表达式

el表达式就是一种简单的写法,主要用来从request、response、session、pagecontext等内置对象取出数据。

例如,使用jsp表达式取出请求参数:

可以这样写:

${param.name}

如果是setattribute存入的数据:

el表达式得这样写:

${requestscope.name}

如果存入了一个对象,想要获得对象的某个属性值

el表达式:

${requestscope.employee.name}

请求参数对象:

对象

说明

param

与request.getparameter()方法一样

paramvalues

与request.getparametermap()方法一样

作用域对象:

jsp隐式对象

存储数据示例

el隐式对象

el示例

页面作用域

pagecontext

pagecontext

.setattribute(“name”, 对象);

pagescope

请求作用域

request

request

.setattribute(“name”, 对象);

requestscope

会话作用域

session

session

.setattribute(“name”, 对象);

sessionscope

应用程序作用域

application

application

.setattribute(“name”, 对象);

applicationscope

el表达式中,可以不写前面的那个作用域,el表达式就会默认按作用域范围大小从大到小查找

//pagecontext ->request ->session-> application

${employee.name}

访问数组、集合或者map

${array[2]}

${list[1]}

//相当于map.get("red")

${map["red"]}

${map.red}

新增,删除,更新操作使用重定向

希望与广大网友互动??

点此进行留言吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值