[SSM网上书店基础与实战]-03再识jsp

139 阅读3分钟

一、jsp作用域

概念

作用域,就是传递变量的一个区间,是整个服务器开发的通用概念。 在Java Web容器中有四个对象代表了这四个作用域

pageContext,作用范围:仅在当前页面起作用

request,作用范围:在一起请求中起作用

session,作用范围:在一次会话(包含了若干请求/响应)中,即第一次请求到浏览器关闭

application,作用范围:应用程序级作用域,即从服务器启动至服务器关闭

以上四个对象都有相同的两个方法

setAttribute("变量名", "变量值")---在作用域中添加变量

getAttribute("变量名")---从作用域中取出变量

案例

pageContext

image.png

image.png

只在本页面存值取值,不常用

request

t08.jsp

image.png

image.png

t08a.jsp

image.png

这里报了一个错,空指针异常,我们一会再处理,但request就是这样进行传值的

image.png

session

t09.jsp

image.png

image.png

t09a.jsp,同时,不需要继续set即可继续传参

image.png

image.png

t09b.jsp

image.png

image.png

application

t10.jsp

image.png

image.png

t10a.jsp,打开后,看到传值,复制网址,将浏览器关闭,输入网址依旧可以访问

image.png

image.png

小结

作用域的选取原则

pageContext,作用域太小,没用,不用

request,使用率最高,因为服务器不需要负载压力

session,使用次高,服务器需要负载压力

application,作用域太大,存值无法释放资源

能用request的尽量用request,必须用session的再用session

二、两种跳转

概念

生活中情景

    A通过B寄包裹给C

    方式1:A先寄给B,B再寄给C

    方式2:A先寄给B,B跑去交给C

这两种方式的区别在于,包裹上的快递单号的地址是B还是C

程序中的跳转

重定向,也叫客户端跳转,经历了2个请求2个响应

image.png

转发,也叫服务器跳转,经历了1个请求1个响应

image.png

案例

重定向

输入t11.jsp的网址会直接显示t11a.jsp的页面

image.png

image.png

image.png

转发

仍然是t12.jsp的网址,但是内容却是t12a.jsp的

image.png

image.png

image.png

小结

使用request作用于传值,只能用转发

三、关于集合

单值集合,集合元素是一个单值

    Collection接口

       List接口,特点,元素有下标有序可重复

           ArrayList类(使用率最高95%以上)

       Set接口,特点,元素无下标无序不可重复

           HashSet类

键值集合,集合元素是键值对

    Map接口

       HashMap类

四、EL表达式

在页面中编写<%...%>的形式繁琐,不易修改,不符合“显示和业务逻辑分离”原则(MVC),所以我们可以使用EL表达式+JSTL来解决。

具体的语法是,${变量名}

使用原则:会自动从作用域(从小到大)中找对应的变量,会自动进行转化

案例

基本使用

创建一个实体类Book作为测试

image.png

image.png

可以在输出的第一行中看到,name参数的值是赵六,而不是super赵六,要想拿到与request同名的参数,可以xxxScope.参数名即本案例中的sessionScope.name

image.png

指定作用域

即上文的xxxScope.参数名来指定该参数名的作用域是哪个

五、JSTL

在项目的lib目录下放入JSTL的jar包

image.png

jsp的标准标签库(JSTL)一般需要结合EL表达式来使用

该案例模拟从数据库中循环遍历得到数据

image.png

image.png

写在最后

项目内容开始有一点综合性了,如果有人跟着做的话会发现项目里面可能存在一些问题,其实我也是第一次系统的做项目,包括一边做一边写博客,里面会有一些不合适的地方,大家可以选择性的浏览。如果网盘链接失效了,就去我最新的文章里面找链接。

网盘链接:链接: pan.baidu.com/s/1pMyP6uLH… 提取码: 1234