El和标准标签
阅读原文时间:2023年07月08日阅读:1

EL表达式针对于四大作用域:application,session,request,pagecontext(作用域由大倒小)${作用域获取内容的名字}
是根据作用域最小的取,指定作用域${sessionscope.名字}
从类中取值${User["name"]}或者${User.name}都可以,但是当类中的成员变量中存在特殊字符必须用第一种取值
EL表达式类型转换,不需要自己转,可以直接运算${param.num+20}就是num加20;
empty对于空字符串和空null的判断都为true
标准标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
如果scope属性不写,默认设置 在pagecontext中

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> Insert title here
请输入一个成绩:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.hanqi.Dal.User,java.util.ArrayList" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> Insert title here <% session.setAttribute("text", "山东淄博"); request.setAttribute("text", "淄博"); User u=new User(); u.setName("小明"); u.setAge(); session.setAttribute("User",u); ArrayList list=new ArrayList(); list.add("山东"); list.add("黑龙江"); list.add("北京"); list.add("河北"); list.add("江苏"); list.add("贵州"); session.setAttribute("dis", list);session.setAttribute("teststring", "0533-1234567890-110"); session.setAttribute("test", "你好, 我是session一行字"); request.setAttribute("test", "你好, 我是request一行字"); session.setAttribute("score", ); %>

EL表达式通过\[\]取属性

${User\["name"\]}
${User\["age"\]}

EL表达式通过.取属性

${User.name}
${User.age}

EL表达式类型转换

${param.num }
num+:${param.num+ }
${dis\[\] }
${paramValues.num\[\] }
${cookie.username.name }--->${cookie.username.value }
${initParam.zhangsan }

EL运算符

${/ }
${+ }
${%}
返回的值为布尔类型${> }
返回的值为布尔类型${< }
${empty text }

empty对null和空字符串的判断

empty对null的判断:${empty null }
empty对空字符串的判断:${empty "" }

c:forTokens标签


cookie

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here <% String username=""; String password=""; //获取cookie对象 Cookie\[\] cs=request.getCookies(); //如果cs不为空 if(cs!=null){ //遍历cs for(Cookie c:cs){ //如果username在cookie对象中 //看一下username是否在cookie中存取的键值对中存在名字叫username的,这里的username是一个字符串 if("username".equals(c.getName())){ //将username对应的值赋给username username=c.getValue(); } //如果password在cookie对象中 if("password".equals(c.getName())){ //将password对应的值赋给password password=c.getValue(); } } } %>
用户名: 密码:
记住密码:



package com.hanqi.Servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class loginServlet
*/
@WebServlet("/loginServlet")
public class loginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/\*\*  
 \* @see HttpServlet#HttpServlet()  
 \*/  
public loginServlet() {  
    super();  
    // TODO Auto-generated constructor stub  
}

/\*\*  
 \* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)  
 \*/  
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    //接受用户登陆是的用户名和密码  
    String username=request.getParameter("username");  
    String password=request.getParameter("password");  
    String rememberme=request.getParameter("rememberme");

    System.out.println(username);  
    System.out.println(password);  
    System.out.println(rememberme);

    //判断用户名和密码不为空并且去掉空格长度大于0  
    if(username!=null&&username.trim().length()>&&password!=null&&password.trim().length()>){  
        //判断记住密码不为空并且长度去掉空格大于0  
        if(rememberme!=null&&rememberme.trim().length()>){  
            //获取cookie对象  
            Cookie\[\] cs=request.getCookies();  
            for(Cookie c:cs){  
                System.out.println(c.getName());  
            }

            //实例化cookie对象并将用户名和密码传入  
            Cookie c\_username=new Cookie("username", username);  
            Cookie c\_password=new Cookie("password",password);

            //设置cookie存取时间  
            c\_username.setMaxAge();  
            c\_password.setMaxAge();

            //添加cookie对象  
            response.addCookie(c\_username);  
            response.addCookie(c\_password);  
            System.out.println("cookie对象已经添加");  
        }  
            response.sendRedirect("index.jsp");  
    }else{  
        response.sendRedirect("fail.jsp");  
    }

}

/\*\*  
 \* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)  
 \*/  
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    // TODO Auto-generated method stub  
    doGet(request, response);  
}

}

JSTL(JSP Standard Tag Library)标准标签库:
1, 核心标签(最常用, 最重要的)
表达式控制标签
out
输出常量
value---直接赋值
输出变量
default---默认值
escapeXml---控制转义字符(默认为true, 如果需要转义, 设置为false)
set
三个属性: var value scope---将一个值存到*scope中(默认是pageContext)
赋值的时候可以将值放在value后面, 也可以放在两个标签中间

安徽黄山
target 对应javaBean的name值(target要使用EL表达式的形式)
property 对应定义的类里面的属性
remove----只能用于页面内的变量移除
移除某个变量
var: 指定需要remove的那个变量名
scope: 两个scope中的变量名有重复的时候, 可以通过这个属性来确定移除的是哪个, 如果不指定, 则全部remove掉
catch
相当于try…catch…
可以在这个标签中放其他标签, 只有一个属性var
流程控制标签
if

choose---以下三个标签通常一起使用, 类似于switch
when
otherwise--可以不写
循环控制标签
forEach
var: 设定一个变量值来存储从数组或者集合中遍历出来的值
items: 指定需要遍历的数组或者集合
begin, end: 指定需要遍历的起始位置
step: 每次遍历跳过的个数, 默认值是1
varStatus: 通过index(在原集合中的索引值), count(当前第几个), first(是否是第一个), last(是否是最后一个)来描述begin和end子集中的状态
注意first和last, 是判断的是否在输出结果中的第一个或者最后一个, 并不是原来的集合中
forTokens(回忆一下字符串的split()方法)
输出的结果中同样也有index, count, first, last这四个属性

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器