EL表达式和jstl技术、filter过滤器、JAVA反射

版权声明:本文自由转载,转载请注明出处。 https://blog.csdn.net/qq_38071429/article/details/80642887

三天看了三种新技术的教学视频作为jsp学习的收尾吧,前几天留言板小样例的课堂讲解反馈效果极差,其中一个原因就是里面的代码太乱,显示页面嵌套过多java的逻辑代码,显得极不规范,所以就想用EL表达式结合jstl的一些标签尽量使得代码能够整洁规范一些,刚好也可以将新学的东西运用在结课的课程设计项目上,perfect!

一、EL表达式和jstl技术

正规的JavaWeb开发注重代码的规范性,虽然jsp设计的初衷之一就是可以嵌套Java代码,对于初学者来说,调试也比较方便,不像servlet和Javabean那样,一旦修改就要重启tomcat服务器,但是熟练运用之后,就会发现大量java代码夹杂在jsp页面中让页面显得十分臃肿,不利于维护,这样的代码严重背离了MVC的设计模式,与web各式框架的理念相悖,这就导致出现了EL表达式代替java获取页面参数,jstl提供代替java代码的逻辑语句(if、for循环等)。

下面简单介绍一些近日学到的东西,不全,但入了门,以后要用就很方便了。

1.EL表达式的语法格式: ${标识符}

    例如:¥{username} 

        它的意思是取出某一范围内名称为username的值。

2.EL表达式中属性的范围有PageScope、RequestScope、SessionScope、ApplicationScope。对应jsp的四种页面属性。当我们使用EL表达式从某个范围取值时,他会依次从以上四个域中找,找到就不再继续找,若都没有则返回null值。如果你同时使用了下面两条语句:

    request.setAttribute("username",username1);

    session.setAttribute("username",username2);

而你现在要取出session中的username2,为了避免返回的值不是request中的username1,你就可以写成:

    ${sessionScope.username}

3.EL表达式内置对象${param}和${paramValues}的使用主要用于获取表单提交的值:

    例如:

        ${param.username}    相当于java脚本中的<% request.getParameter("username"); %>

如果复选框提交了多个(这里为3个)用户名:

        ${paramValues.username[0]} 

        ${paramValues.username[1]} 

        ${paramValues.username[2]} 

相当于<% request.getParameter("username") %>

4.jstl表达式使用需要导入jar包,

官方地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

下载standard.jar和jstl.jar文件,放到项目的lib文件夹下。

然后在使用页面进行引入,

<%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>

5.条件语句<C:if>

<c:if test="<1>0>" var="<string>" scope="<string>">
   //通过if条件后实际执行的代码,上面的var属性跟scope属性(默认为Page)可以不写
</c:if>

6.循环语句<C:forEach>

<c:forEach var="i" begin="1" end="5">
   Item <c:out value="${i}"/><p>    //<c:out ...>相当于System.out.println(...);
</c:forEach>

二、filter过滤器

在servlet编写,通过调用Filter接口中的doFilter方法可以实现对某些请求的拦截和过滤。字符编码使用过滤器叫方便。

三、JAVA反射

学完了xml的反射技术,看完还是觉得不是很理解反射的作用或者优点,之前的java基础课没有上到相关的内容,去网上查疑解惑,发现这项技术是比较接近底层开发的,难度自然不言而喻,最后就推荐大家可以看看下面两篇文章。

1.


学习java应该如何理解反射?--知乎

2.


JAVA反射与注解

猜你喜欢

转载自blog.csdn.net/qq_38071429/article/details/80642887
今日推荐