您的位置:首页 > Web前端 > JavaScript

JSP基础:六、EL表达式、JSTL标签和乱码解决

2018-01-09 10:07 423 查看
一、复习
二、新内容(EL表达式、JSTL标签)StuPrjEL项目

 1、JSP脚本有什么不足?

      代码结构混乱<% %>

      Java代码和Html代码混合起来容易出错

      代码不易于维护

 2、解决方案:EL表达式 Espression Language

      以${开始,以}结束,中间写EL表达式。

                    语法:${}

 3、EL表达式作用

      页面结构清晰。

      代码可读性高,易于维护。

 4、EL操作符

      点        .      ${对象名.属性名}         获取对象中的属性

      中括号 []      ${集合名[对象名]}         获取集合中的对象

 5、EL使用注意

      类的属性必须实现了getter/setter方法。

      EL表达式寻找对象时候

      顺序为:pageContext--request--session--application

      如果想在某个作用域里去找,前面要指定范围:

      pageScope--->pageContext

      requestScope--->request

      sessionScope--->session

                   applicationScope--->application
 6、代码示例:复制StuPrj项目为StuPrjEL

      --新建testel.jsp讲解EL访问的作用域

  ${requestScope.strs[1]}

      --testel.jsp使用EL表达式获取集合的值

  ${requestScope.strs[1]}

      --EL表达式的运算

  ${1+2}             ${"1"+"2"}EL表达式自动转换

  ${5*(1+2)}        ${"1"}${"2"}

  ${1==2}            逻辑运算,true、false

  ${1>2:"ab":"cd"}  三目运算符

  ${}

      --改造update.jsp页面讲解EL表达式取对象的实例

      --改造stuinfo.jsp时遇到问题,因为有页面循环和判断

 

 7、JSTL(EL表达式无法实现逻辑控制,所以要引入jstl)(注意JSTL的jar包)

      JavaServerPages Standard Tag Library JSP标准标签库

      JSTL作用:实现页面中的逻辑控制(判断、循环)
      核心标签库:http://java.sun.com/jsp/jstl/core     c

      条件标签

  <c:if>

           <c:if test="${age<=18}">

        <h1>此网站未成年人禁止访问!</h1>

          </c:if>

      迭代标签

  <c:forEach>

       <c:forEach items="${stus}" var="stu">

           <span>${stu.sno }----${stu.sname }----${stu.ssex }<br/>

       </c:forEach>

      --代码示例:新建testjstl.jsp

      导入标签库

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

      --需求:偶数行变色

乱码解决

一 JSP页面乱码:

JSP文件和页面规定的编码保持一致。(用myEclipse开发不会出现这个问题)GET方式传值乱码:

 解决方案:
  //1、解决请求乱码问题、解决响应乱码问题

  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html;charset=utf-8");

  response.setCharacterEncoding("utf-8");

二 设置tomcat的编码方式

利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!
要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

 redirectPort="8443" URIEncoding="UTF-8" />

三 数据库连接字符串

jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: