javaweb -- domain object & EL expression & JSTL Library

1, Four domain objects

Page context: it can only work on the current page, and can not be used for data sharing of forwarding or redirection.
    
Request domain: it can only be used for the data sharing of the same request, so it can only be used in the forwarding of requests.
    
session domain: it can only be used to share data in one conversation (one conversation: users open the browser, browse multiple web sites, and then close the browser), forwarding and redirection can be used
    
context domain (application): can only be used in the same web application. (global)

2, EL expression


summary
EL is a JSP expression language, whose full name is ExpressionLanguage. The purpose of using EL is to simplify the way of accessing variables in JSP and the coupling of simple static HTML and Java code

Basic syntax format
        ${ EL Expression}

1. example code
     

  ${ "Helloworld" }   // Output string constant
        ${  str  }           // Output the value of the string variable str
        ${ 3 + 2 }           // Output the result of 3 + 2
        ${ user.name}          // Output the name attribute of the user object
        ${user["name"] }    // ditto
        ${  sessionScope ["user"].name }  // ditto
        ${user.name}        //Access the getName () method of the user object to get the value of the name member.
        ${list[1]}            //Access the second item of the list object.
        ${map["key"]}         //Access the value of the key specified by the map.


        
  2.  "." Similarities and differences with "[]"
(1) similarities: all accessible objects have attributes.
(2) differences: when the name of the attribute contains complex symbols such as spaces and dots. Use "." To access the properties of an object, an exception will occur
        
3. Operators in El expressions
(1) arithmetic operators (+,, *, /,%)
        
(2) logical operators (& &, ||,! Or and,or,not)
        
(3) comparison operators (>, > =, <, < =, = =,! = =) can automatically convert data types
        
(4) empty operator (empty) returns true when the value is null
        
[precautions]
(a) the arithmetic operators of EL are roughly the same as those in Java and have the same priority.
(b) the '+' operator will not connect strings. It is only used for addition.
    
      4.EL relational operators have the following six operators
Relational operator description example result
= = or eq | equal to ${5 = = 5} or ${5 eq 5} | true
            != Or ne | is not equal to ${5! = 5} or ${5 ne 5} | false
< or lt | less than ${3 < 5} or ${3 lt 5} | true
> or gt | greater than ${3 > 5} or ${3 gt 5} | false
< = or le | less than or equal to ${3 < = 5} or ${3 le 5} | true
> = or ge | greater than or equal to ${3 > = 5} or ${3 ge 5} | false

3, JSTL Library


A set of standard tags provided by JSP
-- general label: set out remove
-- condition tag: if # if else
-- iteration label: forEach # for loop
     
How to use JSTL Library
Import ----- taglib instruction
 

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!-- use taglib Instruction introduction JSTL library -->
    <!-- prefix="" Commands for label Libraries -->
    <!-- uri="" Files imported into label Library -->
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
	<!-- 
		JSTL
			1.from JSP A set of label libraries provided internally
			Question: pure JSP Not allowed in page Java Code needs to be used JSTL Provide labels to replace.
			2.JSTL
				out,set,if,foreach
			3.Use steps:
				(1)Import dependent Libraries     lib
				(2)In the specified page taglib Instruction to introduce specific tag library dependency files
	 -->
	 <%
	 	//Save a value through a JSP script
	 	session.setAttribute("username", "admin");
	 	out.println(session.getAttribute("username"));
	 %>
	 <%=session.getAttribute("username") %>
	 ${sessionScope.username }
	 <!-- adopt JSTL In Library out Output tag value -->
	 <!-- default When value The default result is output when the result of value access does not exist  -->
	 <c:out value="${username }" default="sb"></c:out>
	 
	 <!-- adopt JSTL In Library set Label to set the value -->
	 <!-- 
	 	Properties:
	 		var  Stored variable name
	 		value Stored value
	 		scope Scope( pageContext request session application)
	  -->
	 <c:set var="uname" value="Breezy" scope="session"></c:set>
	 ${uname }
	 <c:out value="${uname }"></c:out>
	 
	 
	 <!-- adopt JSTL Provided in the library if Tag to realize effective judgment of data -->
	 <c:if test="${1==12 }">
	 	<c:out value="Your condition is OK of"></c:out>
	 </c:if>
	 
	 
	 <!-- adopt JSTL In Library if Tag implements a login case -->
	 <!-- 
	 	Logged in----Displays the current login name
	 	Not logged in ----Show form for login
	 -->
	  <%
	 	//obtain
	 	request.setCharacterEncoding("utf-8");
	 	String username = request.getParameter("username");
	 	if(username!=null){
	 		Student student = new Student(username,"male");
	 		session.setAttribute("student", student);
	 	}
	 %>
	 <c:if test="${empty student }">
	 	<form action = "demo4.jsp" method = "post">
	 		account <input type = "text" name = "username"/>
	 		<br/>
	 		<br/>
	 		password <input type = "password" name = "password"/>
	 		<br/>
	 		<br/>
	 		<input type = "submit" value = "Sign in"/>
	 	</form>
	 </c:if>
	 <c:if test="${not empty student }">
	 	<h4>Welcome back! ${student.username }</h4>
	 </c:if>
	  
	
	<!-- remove Label removal -->
	<c:set var="bb" value="123456"></c:set>
	Before removal: <c:out value="${bb }"></c:out>
	<!-- remove -->
	<hr/>
	<c:remove var="bb" />
	After removal:<c:out value="${bb }"></c:out>
	
	<!-- foreach Circular label -->
	<hr/>
	<!-- 
		sb  variable
		begin Starting value
		end  Final value
		step 2 per increase
		varStatus Get the line number corresponding to the data( Y1 stage J2EE  custom JSP (label)
	-->
	<c:forEach  var="sb" begin="1" end="100" step="2" varStatus="demo" >
		${sb }----${demo.index }----${demo.count } <br/>
	</c:forEach>
	
	<br/>
	<%
		List<Student> myList = new ArrayList<Student>();
		myList.add(new Student("Zhang san1","male"));
		myList.add(new Student("Zhang San 2","male"));
		myList.add(new Student("Zhang SAN3","male"));
		myList.add(new Student("Zhang San 4","male"));
		myList.add(new Student("Zhang San 5","male"));
		session.setAttribute("myList", myList);
	%>
	
	<c:forEach items="${myList }" var="stu">
		${stu.username }   ${stu.sex }
	
	</c:forEach>
	
	
	
	
	
	
	
	
	
	
	

Tags: Web Development

Posted by shutat on Sat, 16 Apr 2022 20:12:33 +0930