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

一、复习
二、新内容(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
      条件标签
  
          
        

此网站未成年人禁止访问!


         

      迭代标签
  
       
           ${stu.sno }----${stu.sname }----${stu.ssex }

       

      --代码示例:新建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方式提交的数据才会被正确解码。
connectionTimeout="20000"
 redirectPort="8443" URIEncoding="UTF-8" />
 
三 数据库连接字符串
jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
 
 
 
 

你可能感兴趣的:(Java基础)