There are two data types in Java : Primitive and Reference.

They are the basic of basic in Java and very important to know to jump to the next step, so let's make them familiar!

Source : Javarevisted

 

Primitive Type

Type Size Description
byte 1 byte Stores whole numbers from -128 to 127
short 2 bytes Stores whole numbers from -32,768 to 32,767
int 4 bytes Stores whole numbers from -2,147,483,648 to 2,147,483,647
long 8 bytes Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float 4 bytes Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits
double 8 bytes Stores fractional numbers. Sufficient for storing 15 decimal digits
boolean 1 bit Stores true or false values
char 2 bytes Stores a single character/letter or ASCII values

Reference Type

Type Description
Class Describes the content of the object
Array Stores the elements of the same type
Interface A collection of abstract methods

The difference between Primitive and Reference Type is that

Source : Javarevisited

Variables 

Variable is a storage space for storing data on memor.

package p2022_06_21;

import java.util.ArrayList;

public class Variable {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 1. Integer Type
		byte b1 = 10; 			
		
		short s = 100; 
		
		int i = 1000; 
		long l = 100000L;  
		
		System.out.println("b1="+b1);
		System.out.println("s="+s);
		System.out.println("i="+i);
		System.out.println("l="+l);
		
		//2. Rational Type
		float ft1 = 3.14f;  
		// float ft1 = (float)3.14; 
		float ft2 = 3.14F; 
		double d = 42.195; 
		
		System.out.println("ft1="+ft1);
		System.out.println("ft2="+ft2);
		System.out.println("d="+d);
		
		
		System.out.printf("%.1f\n", d); 
		System.out.printf("%.2f", d); 
		System.out.printf("%.2f\n",d); 
		
		
		//3. Character Type
		char c1 = 'A';
		char c2 = '安'; 
		
		System.out.println("c1="+c1);
		System.out.println("c2="+c2);
		
		//4. Boolean Type
		boolean bn1 = true; 
		boolean bn2 = false;
		System.out.println("bn1="+bn1);
		System.out.println("bn2="+bn2);

		//Reference Type : Class
		String s1 = "Java";
		String s2 = new String("Java");
		
		System.out.println("s1="+s1);
		System.out.println("s2="+s2);
		if(s1 == s2){
			System.out.println("Same Address");
		} else {
			System.out.println("Different Address");
		}
		if(s1.equals(s2)){
			System.out.println("Same Value");
		} else {
			System.out.println("Different Value");
		}	
		
		//Reference variable : 배열- 동일한 자료형의 데이터를 저장하는 정적인 자료구조 
		int[] score = {80, 90, 100};
		
		for(int j=0; j<score.length; j++) {
			System.out.println(score[j]+"\t");
		}
		
		System.out.println();
			
		//Reference Type : Interface(List)
	
	  //List list = new List();  //Error 
		ArrayList list = new ArrayList(); //Upcasting
		list.add(30);
		list.add(3.14);
		list.add('j');
		list.add(true);
		list.add("Java");
		
		for(int k=0; k<list.size(); k++) {
		System.out.print(list.get(k)+"\t"); //\t는 insert a new tap 
		}

}

}

'Java' 카테고리의 다른 글

Java) Array  (0) 2022.09.04
Java) .length vs length()  (0) 2022.09.02
Java) Conditional statements and loops  (0) 2022.08.30
Java) Operators  (0) 2022.08.26
Java (Must know)  (0) 2022.08.25

Response Object is the object of  HttpServletResponse class associated with the response to the client. It is different from the request object since the request is the object of HttpServletRequest class associated with the request.

 

We will cover three ways to link pages with HTML, Javascript, and JSP. It is the same function, but each language has different codes to link the page. first.jsp is the file that we will link in each files. 

 

first.jsp

<%@ page contentType = "text/html; charset=utf-8" %>

<%

String str = request.getParameter("name");

%>

name : <%=str%>

 

meta.html

The good thing when you use the meta tag in HTML is that you can set the time.

<html>
	<head>

	<!-- mata tag -->
	<meta http-equiv="refresh" content="0;
		url=first.jsp?name=test">

	</head>
	<body>
	</body>
</html>

The url will link to the first.jsp file. This is a get method. If you are using a form, you can choose either get method or post method, but in this case, you cannot. 

 

With Javascript, you can use the alert() and location property.

location.html

<html>
	<head>
	<meta charset="utf-8">
	</head>
	<body>

	<script language="javascript">
		alert("Page link");
		location.href='first.jsp?name=test';
	</script>

	</body>
</html>

With JSP, you can use a response object. 

responseEx.jsp

<%@ page contentType="text/html;charset=utf-8"%>

<h1>Response Example</h1>
This page is from responseEx.jsp file.


<%	//Page link from JSP
     response.sendRedirect("first.jsp?name=test");
%>

 

'Java > JSP' 카테고리의 다른 글

JSP) Encoding Korean 한글 인코딩  (0) 2022.08.27
JSP) Implicit Objects 3 - Out Object  (0) 2022.08.27
JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26

 

Operators are used to performing operations on variables and values.

There are six types of operators, and it will be good for you once you understand how they work in Java because it will be very similar to other languages. 

  • Arithmetic Operators
    • +, -, *, /, % (remaining)
  • Comparison operators (=relational operator)
    • >=, <=, == (same), != (same)
    • ex) if(a == b){} // if a and b are equal
    • if(a!=b){} // if a and b are not equal
  • Condition operators = (conditional expression)
    • ? Value1: Value2;
      If the conditional expression is true, assign the value 1 to the variable
      If the conditional expression is false, assign the value 2 to the variable.
  • Logical operators
    • ||, &&,!
  • Extended substitution operators
    • +=, -=, *=, /=, %=
    • ex) a+=b; // a = a + b;
      a-=b; // a = a - b;
      a*=b; // a = a * b;
      a/=b; // a = a / b;
      a%=b; // a = a % b;
  • Increase/decrease operators
    • ++ Increasing by 1 ++a (pre-processing) // a=a+1;
      a++ (following) // a=a+1;
    • -- Decrease by one --a (pre-processing) // a=a-1;
      a--(following) // a=a-1;

Here are some examples of using the operators in Java. 

 

Arithmetic Operators

public class Oper01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 10, b = 3, c;
		
		c = a + b;
		System.out.println("a+b="+c);
		System.out.println("a+b="+(a+b));
		System.out.println("a-b="+(a-b));
		System.out.println("a*b="+(a*b));
		System.out.println("a/b="+(a/b)); 
		System.out.println("a%b="+(a%b)); 
		
        //Character
		String str1 = "Java";
		String str2 = str1 + "Oracle";
		System.out.println("Str1="+str1);
		System.out.println("Str2="+str2);
		
		String str3 = "Python";
		String str4 = "Spring";
		System.out.println(str3 + str4); 
		
		int i = 50; 
		System.out.println(str3 + i); 
		
		String str5 = str3 + 50;
		System.out.println("str5="+str5); 
			
	}

}

Comparison operators (=relational operator)

public class Oper03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// Comparison Operator: > , < , >= , <= , == , !=
		
		int num1 = 10; 
		int num2 = 10;
		
		boolean result1 = (num1 == num2);
		boolean result2 = (num1 != num2);
		boolean result3 = (num1 <= num2);
		System.out.println("result1="+result1);
		System.out.println("result2="+result2);
		System.out.println("result3="+result3);
		
		System.out.println(num1 > num2);
		
		char c1 = 'A'; //65
		char c2 = 'B'; //66
		boolean result4 = (c1 < c2);
		System.out.println("result4="+result4);

		// Comparison Operator2
		String str1 = "Java";
		String str2 = "Java";
		String str3 = new String("Java");
		
		// Comparing the addresses
		if(str1 == str2) {
			System.out.println("Same Address");
		}else {
			System.out.println("Different Address");
		}
		
		if(str1 == str3) {
			System.out.println("Same Address");
		}else {
			System.out.println("Different Address");
			
			// Comparing the values
			System.out.println(str1.equals(str2));
			System.out.println(str1.equals(str3));
		}
	}

}

Condition operators = (conditional expression)

import java.util.Scanner;

public class Oper6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// Condition Operator
        // Variable = (Conditional statement) ? Value1 : Value2;
        // True -> Value1 / False -> Value2

		// Maximum and minimum values out of the two integers entered on the keyboard.
		
		int n1, n2, max, min; 
		System.out.println("Enter two integers");
		
		Scanner sc = new Scanner(System.in);
		n1 = sc.nextInt();
		n2 = sc.nextInt();
		
		max = (n1 > n2) ? n1 : n2;
		min = (n1 < n2) ? n1 : n2;
		
		System.out.println("max="+max);
		System.out.println("min="+min);
		
	}

}

Logical Operators

 The results are treated as int-type if you perform arithmetic operations on the int-type and int-type variables. If the double and double types are performed, the result is treated as a double type. The results are treated as double types if you perform arithmetic operations of int and double types. 

import java.util.Scanner;

public class Oper07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// Write a program that determines whether you pass or fail 5 subjects when you enter them on the keyboard
		// Each subject's class is 40 points, and an average of 60 points or more is required to pass.
		
		int n1, n2, n3, n4, n5, total;
		double avg;
		System.out.println("Enter the scores of 5 subjects.");
		
		Scanner sc = new Scanner(System.in);
		
		n1 = sc.nextInt();
		n2 = sc.nextInt();
		n3 = sc.nextInt();
		n4 = sc.nextInt();
		n5 = sc.nextInt();
		

		total = n1 + n2 + n3 + n4 + n5;
		avg = (double)total / (double)5;
		System.out.println("avg="+avg);
		
		if(n1>=40 && n2>=40 && n3>=40 && n4>=40 && n5>=50 && avg>= 60) {
			System.out.println("Success");
		}else {
			System.out.println("Fail");
		}
		
}
}
public class Oper08 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		boolean b1 = true;
		boolean b2 = false;
		
		System.out.println(!b1);   
		//false !not operator changes to the opposite
		System.out.println(!b2);  
		System.out.println(!true);  
		System.out.println(!false);  
	}

}

Extended substitution operators

public class Oper09 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int a = 10, b = 3;
		System.out.println(a+=b); 
		// a=a+b
		System.out.println(a-=b); 
		System.out.println(a*=b); 
		System.out.println(a/=b); 
		System.out.println(a%=b); 
	}

}

Increase/decrease operators

public class Oper10 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int a=10, b=10, c=10, d=10;
		int a1, b1, c1, d1;
		
		a1 = ++a;  //Prefix Operator
		b1 = b++;  //Postfix Operator
		c1 = --c;  //Prefix Operator
		d1 = d--;  //Postfix Operator
		
		System.out.println("a1="+a1+" a="+a);
		System.out.println("b1="+b1+" b="+b);
		System.out.println("c1="+c1+" c="+c);
		System.out.println("d1="+d1+" d="+d);
		
		int a=10, b=10;
		System.out.println("a="+a++); //Postfix Operator : a=10
		System.out.println("a="+a); //a=11
		
		System.out.println("b="+(++b)); //Prefix Operator :b=11
		System.out.println("b"+b); //b=11
	}

}

 

'Java' 카테고리의 다른 글

Java) Array  (0) 2022.09.04
Java) .length vs length()  (0) 2022.09.02
Java) Conditional statements and loops  (0) 2022.08.30
Java) Data Types  (0) 2022.08.27
Java (Must know)  (0) 2022.08.25

Implicit Objects are the Java objects that the JSP Container makes available to the developers on each page, and we can call them directly without being explicitly declared. They are also called pre-defined variables. It can be new because there is no implicit objects in Java. There are nine implicit objects in JSP that you will see below : 

Object Actual Type Description
request java.servlet.http.HttpServletRequest/ 
javax.servlet.ServletRequest
Request information like a parameter, header information, server name, etc.
response javax.servlet.http.HttpServletResponse/ 
javax.servlet.ServletResponse
to content type, add cookie and redirect to response page
pageContext javax.servlet.jsp.PageContext to get, set and remove the attributes from a particular scope
session javax.servlet.http.HttpSession to get, set and remove attributes to session scope and also used to get session information
application javax.servlet.ServletContext to interact with the servlet container
out javax.servlet.jsp.jspWriter to access the servlet’s output stream
config java.servlet.servletConfig to get the initialization parameter in web.xml
page java.lang.Object Page implicit variable holds the currently executed servlet object for the corresponding jsp.
exception java.lang.Throwable It is used for exception handling in JSP.

These methods are available to the JSP implicit request object. In Model1, we don't use String getRequestURI() and String getContextPath() as much as in Model2.

Method Description
setCharacterEncoding(String env) processes encoding Korean.
Object getAttribute(String name) returns the value of the attribute named name.
Enumeration getAttributeNames() returns the name of all attributes in an HTTP request.
String getParameter() returns the value of request parameter as String or null if the parameter doesn't exist.
Enumeration getParameterNames() returns the names of all parameters in request.
String getContentType() returns the MIME type of the request or null for an unknown type.
String getProtocol() returns the name of the protocol and its version used by the request.
String getRemoteAddr() returns the IP address that the request came from.
String getServerName() returns the name of Server that received the request.
int getServerPort() returns Server port at which the request is received.
boolean isSecure() returns true if the request came from HTTPS protocol and false if it didn't.
Cookies getCookies() returns an array of Cookie objects that came along with this request.
String getMethod() returns the name of the method(GET, PUT, POST) using which the request was made.
String getRequestURI() returns the URI of the page that initiated the request.
String getContextPath() returns the context path(project name).

Let's see if we can find the methods on Java EE Api.

https://docs.oracle.com/javaee/7/api/toc.htm

 

Java(TM) EE 7 Specification APIs

 

docs.oracle.com

For example, you will click the package and the interface to find the methods in the request object. 

 

Request Example1 

<HTML>

<html>
<head>
	<meta charset="UTF-8">
	<title>request Example1</title>
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<script>
	$(document).ready(function(){
		$("form").submit(function(){
			if($("#name").val()==""){
				alert("Please insert your name.");
				$("#name").focus();
				return false;
			}
			if($("#studentNum").val()==""){
				alert("Please insert your student number.");
				$("#studentNum").focus();
				return false;
			}
			if($("#male").is(":checked")==false &&
			   $("#female").is(":checked")==false){
				alert("Please select your sex.");
				return false;
			}
			if($("#major").val()=="#"){
				alert("Please select your major.");
				$("#major").focus();
				return false;
			}
		});	
	});	
	</script>
</head>
<body>
<h1>Request Example1</h1>

<form name=myform method=post action="requestExample1.jsp">
 Name : <input type="text" name="name" id="name" autofocus="autofocus"><br>
 Student No. : <input type="text" name="studentNum" id="studentNum"><br>
 Sex : Male <input  type="radio" name="sex"  value="male" id="male">
      Female <input type="radio" name="sex" value="female" id="female"><br>
      Prefer not to say <input type="radio" name="sex" value="prefernottosay" id="prefernottosay"><br>
 Major : <select name="major" id="major">
			<option value="#">Select your major</option>
			<option value="CS">Computer Science</option>
			<option value="EL">English Literature</option>
			<option value="M">Mathmetics</option>
			<option value="PS">Political Science</option>
			<option value="BM">Business Management</option>
		</select><br>
<input type="submit" value="submit">
<input type="reset" value="cancel">
</form>

</body>
</html>

<JSP>

<%@ page contentType="text/html;charset=utf-8"%>

<%	
	request.setCharacterEncoding("utf-8");
%>

<html>
<h1>Request Example1</h1>

<%
	String name = request.getParameter("name");
	String studentNum = request.getParameter("studentNum");
	String sex = request.getParameter("sex");
	String major = request.getParameter("major");
/* 
	if(sex.equals("m")){
		sex = "male";
	}else{
		sex = "female";
	} */
%>

<body>
Name: <%=name%><p>
Student No.: <%=studentNum%><p>
Sex : <%=sex%><p>
Major : <%=major%>
</body>
</html>

When you click submit, you will see this.

There is a difference between the two methods: get and post. If you use the post method, you will not see anything on the URL; with the get method, you will see the input data on the URL. Because of security reasons, we usually use the post method. 

 

Request Example2

<HTML>

<html>
	<head><title>Your hobbies</title>	
	<meta charset="utf-8">
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<script>
	$(document).ready(function(){
//		$("form").submit(function(){
		$("#myform").submit(function(){
			/* var cnt=0;
			if($("#h1").is(":checked"))	cnt++;
			if($("#h2").is(":checked"))	cnt++;
			if($("#h3").is(":checked"))	cnt++;
			if($("#h4").is(":checked"))	cnt++;
			if($("#h5").is(":checked"))	cnt++;
			if($("#h6").is(":checked"))	cnt++;
			if($("#h7").is(":checked"))	cnt++;
			
			if(cnt < 2){
				alert("Select more than one.");
				return false;
			} */
			
			if($("input:checkbox[name='site']:checked").length < 2){
				alert("Select more than one.");
				return false;
			}			
			
		});
	});	
	</script>
	</head>
<body>

<form id="myform" name=myform  method=post action="check.jsp"> 

	Select your hobbies.<br><br> 
	<input type="checkbox" id="h1" name="site" value="Walking">Walking<br>
	<input type="checkbox" id="h2" name="site" value="Swimming">Swimming<br>
	<input type="checkbox" id="h3" name="site" value="Reading">Reading<br>
	<input type="checkbox" id="h4" name="site" value="Programming">Programming<br>
	<input type="checkbox" id="h5" name="site" value="Watching Movies">Watching Movies<br>
	<input type="checkbox" id="h6" name="site" value="Climbing">Climbing<br>
	<input type="checkbox" id="h7" name="site" value="Running">Running<br><br>

	<input type="submit" value="Submit">
	<input type="reset" value="Cancel">

</form> 

</body>
</html>

<JSP>

<%@ page contentType="text/html;charset=utf-8"%>

<html>
<body>

	<%
		request.setCharacterEncoding("utf-8");

		String[] choice = request.getParameterValues("site");
		String result = "";

		for (int i = 0; i < choice.length; i++) {
			result = result + choice[i] + " ";
		}
	%>

	<center>
		You like <font color=blue><%=result%></font>!
	</center>

</body>
</html>

Request Example3

<HTML>

<html>
	<head><title>radio button</title>
	<meta charset="utf-8">
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<script>
	$(function(){
		$("form").submit(function(){
			/* if($("#s1").is(":checked")==false &&
			   $("#s2").is(":checked")==false &&
			   $("#s3").is(":checked")==false &&
			   $("#s4").is(":checked")==false ){
				alert("Choose your favorite season.");
				return false;
			} */

				if($("input:radio[name='season']:checked").length<1){
					alert("Choose your favorite season.");
					return false;
				}
		});
	});	
	</script>
	</head>
	<body>
	Choose your favorite season.
	<p>

	<form name=syberpoll method=post action=result.jsp>
		<input type=radio id="s1" name=season value=Spring>Spring<br>
		<input type=radio id="s2" name=season value=Summer>Summer<br>
		<input type=radio id="s3" name=season value=Fall>Fall<br>
		<input type=radio id="s4" name=season value=Winter>Winter<br>
		<input type=submit value="투표">
	</form>

	</body>
</html>

<JSP>

<%@ page contentType="text/html;charset=utf-8" %>

<html>
	<head><title>Survey</title>
	</head>
	<body>

	<%
		request.setCharacterEncoding("utf-8");
	
		String choiceseason = request.getParameter("season");
		String result = "";

		/* if(choiceseason.equals("spring")){
			result = "Spring";
		} else if(choiceseason.equals("summer")){
			result = "Summer";
		} else if(choiceseason.equals("autumn")){
			result = "Fall";
		} else if(choiceseason.equals("winter")){
			result = "Winter";
		} */
	%>

		Your favorite season is <%=choiceseason%> !
	</body>
</html>

Request Example4

This example is to know the basic information of the client and server. Amongst them, we use getRemoteAddr(), getRequestURI(), getContextPath() the most. 

<JSP>

<%@ page contentType = "text/html; charset=utf-8" %>

<html>
<head><title>Client/ Server Information</title>
<meta charset="utf-8">
</head>
<body>

Client IP = <%= request.getRemoteAddr() %> <br>
Requested get content length = <%= request.getContentLength() %> <br>
Requested data Encoding = <%= request.getCharacterEncoding() %> <br>
Requested data content type = <%= request.getContentType() %> <br>
Requested data Protocol = <%= request.getProtocol() %> <br>
Reqeusted data transition method = <%= request.getMethod() %> <br>
Requested URI = <%= request.getRequestURI() %> <br>
Path of Context = <%= request.getContextPath() %> <br>
Server name= <%= request.getServerName() %> <br>
Server port = <%= request.getServerPort() %> <br>

</body>
</html>

Instead of localhost, insert your IP address to see the information. To find your IP address, in the command prompt, insert ipconfig.

Request Example5

<makeTestForm.jsp>

<%@ page contentType="text/html; charset=utf-8"%>

<html>
<head>
<title>Form</title>
</head>
<body>

	Please fill out the form and submit.
	<form method="post" action="viewParameter.jsp">
		Name: <input type="text" name="name" size="10"> <br>
		Address: <input type="text" name="address" size="30"> <br>
		Favorite Animal: <input type="checkbox" name="pet" value="dog">Dog
		<input type="checkbox" name="pet" value="cat">Cat <input
			type="checkbox" name="pet" value="pig">Pig <br> <input
			type="submit" value="Submit">
	</form>
</body>
</html>

<viewParameter.jsp>

<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.*"%>

<%
	request.setCharacterEncoding("utf-8");
%>

<html>
<head>
<title>Printing out request method</title>
</head>
<body>

	<b>request.getParameter() Method</b>
	<br> name Parameter =
	<%=request.getParameter("name")%>
	<br> address Parameter =
	<%=request.getParameter("address")%>
	<p>

		<b>request.getParameterValues() Method</b><br>
		<%
			String[] values = request.getParameterValues("pet");
		if (values != null) {
			for (int i = 0; i < values.length; i++) {
		%>
		<%=values[i]%>
		<%
			}
		}
		%>
	
	<p>

		<b>request.getParameterNames() Method</b><br>
		<%
			Enumeration num = request.getParameterNames();
		while (num.hasMoreElements()) {
			String name = (String) num.nextElement();
		%>
		<%=name%>
		<%
			}
		%>
	
	<p>

		<b>request.getParameterMap() Method</b><br>
		<%
			Map parameterMap = request.getParameterMap();
		String[] nameParam = (String[]) parameterMap.get("name");
		if (nameParam != null) {
		%>
		name =
		<%=nameParam[0]%>
		<%
			}
		%>
	
</body>
</html>

 

I would be happy to receive your comment. Please comment below:)

'Java > JSP' 카테고리의 다른 글

JSP) Implicit Objects 3 - Out Object  (0) 2022.08.27
HTML / JSP / Javascript) Implicit Objects 2 - Response Object and Page Link  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26
JSP) Importing / Classes  (0) 2022.08.25

There are four scopes in JSP. 

Scope Description
Page Stores a value to be shared within one JSP page.
Request Stores values to be shared on all JSP pages used to process a single request.
Session Shares information related to a user.
Application Stores information to be shared with all users.

For your better understanding, please refer to this picture. Page is the narrowest scope, and the application is the widest scope. 

The basic objects related to JSP's scopes are pageContext, request, session, and application.

 

Here are some examples of scopes. With them, you will have a better understanding of which data will be saved in which scope. 

AtrributeTest1_Form.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
<head>
<title>Attribute Test Form</title>
</head>
<body>
<h2>Scopes and properties</h2>
<form action="attributeTest1.jsp" method="post">
<table border="1">
	<tr><td colspan="2">Contents for Application</td></tr>
	<tr>
		<td>Name</td>
		<td><input type="text" name="name"></td>
	</tr>
	<tr>
		<td>ID</td>
		<td><input type="text" name="id"></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="전송"></td>
	</tr>
</table>
</form>
</body>
</html>

AttributeTest1.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
<head>
<title>Attribute Test</title>
</head>
<body>
<h2>Scopes and properties</h2>
<%
request.setCharacterEncoding("euc-kr");
String name=request.getParameter("name");
String id=request.getParameter("id");
if(name!=null&&id!=null){
	application.setAttribute("name",name);
	application.setAttribute("id",id);
}
%>
<h3>Welcome, <%=name %>.<br><%=name %>'s ID is <%=id %>.</h3>
<form action="attributeTest2.jsp" method="post">
<table border="1">
	<tr><td colspan="2">Contents for Session</td></tr>
	<tr>
		<td>E-mail</td>
		<td><input type="text" name="email"></td>
	</tr>
	<tr>
		<td>Address</td>
		<td><input type="text" name="address"></td>
	</tr>
	<tr>
		<td>전화번호</td>
		<td><input type="text" name="tel"></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="전송"></td>
	</tr>
</table>
</form>
</body>
</html>

AttributeTest2.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
<head>
<title>Attribute Test</title>
</head>
<body>
<h2>Scopes and properties</h2>
<%
request.setCharacterEncoding("euc-kr");
String email=request.getParameter("email");
String address=request.getParameter("address");
String tel=request.getParameter("tel");
session.setAttribute("email",email);
session.setAttribute("address",address);
session.setAttribute("tel",tel);

String name=(String)application.getAttribute("name");
%>
<h3><%=name %>'s data is successfully saved.</h3>
<a href="attributeTest3.jsp">Click to check</a>
</body>
</html>

 

AttributeTest3.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@page import="java.util.Enumeration"%>
<html>
<head>
<title>Attribute Test</title>
</head>
<body>
<h2>Scopes and properties</h2>
<table border="1">
	<tr><td colspan="2">Content for Application</td></tr>
	<tr>
		<td>Name</td>
		<td><%=application.getAttribute("name") %></td>
	</tr>
	<tr>
		<td>ID</td>
		<td><%=application.getAttribute("id") %></td>
	</tr>
</table>
<br>
<table border="1">
	<tr><td colspan="2">Content for Session</td></tr>
<%-- <%
Enumeration e=session.getAttributeNames();
while(e.hasMoreElements()){
	String attributeName=(String)e.nextElement();
	String attributeValue=(String)session.getAttribute(attributeName);
	%>
	<tr>
		<td><%=attributeName %></td>
		<td><%=attributeValue %></td>
	</tr>
	<%
}
%> -->

		<tr>
			<td>Email</td>
			<td><%=session.getAttribute("email")%></td>
		</tr>
		<tr>
			<td>Tel</td>
			<td><%=session.getAttribute("tel")%></td>
		</tr>
		<tr>
			<td>Address</td>
			<td><%=session.getAttribute("address")%></td>
		</tr>
</table>
</body>
</html>

Since the Name and the ID are shared by the application object, you can use that data in other scopse too, because the application object is the broadest scope. 

 

To set application Attribute

index.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
My first JSP program <br>

Value shared by application object : 
<%=application.getAttribute("test")%>

</body>
</html>

setApplicationAttribute.jsp

<%@ page contentType = "text/html; charset=euc-kr" %>
<%
   // String name = request.getParameter("name");
   // String value = request.getParameter("value");
    
    String name = "test";
    String value = "1234";
    
    if (name != null && value != null) {
        application.setAttribute(name, value);
      //application.setAttribute("test", "1234");
    }
%>

<html>
<head><title>Set application attribute</title></head>
<body>
<%
    if (name != null && value != null) {
%>
Set attribute of application basic objects:
 <%= name %>  = <%= value %>
<%
    } else {
%>
Application basic objects attribute is not set.
<%
    }
%>
</body>
</html>

These examples are focused on the application scope. If you want to see other examples of the session scope, please refer to this post of mine: 2022.08.29 - [JSP] - JSP) Session

 

JSP) Session

A session is a concept used by servers and clients to maintain a connection state. Usually, if the login is successful, it is connected to the client as a session on the server side. At this time, m..

www.agilemeadow.com

 

'Java > JSP' 카테고리의 다른 글

HTML / JSP / Javascript) Implicit Objects 2 - Response Object and Page Link  (0) 2022.08.26
JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26
JSP) Importing / Classes  (0) 2022.08.25
JSP Tags  (0) 2022.08.25

Hey there! In this post, we are going to cover commenting in JSP. 

 

There are two types of commenting in JSP: JSP Script Comments and JSP Script Comments. 

In terms of JSP Comments, you can comment in anywhere in the JSP file. Whereas, you will only write the JSP Script Comments inside of the tags. 

Here are some examples of them. Let's compare the comment tags with HTML too. 

<!-- HTML COMMENT -->
<%-- JSP COMMENT --%>
<% // ONE LINE COMMENT IN SCRIPTLET %>
<% /* MULTI 
		LINE 
          COMMENTS IN SCRIPTLET */ %>
<%=NAME /* EXPRESSION TAG COMMENT */ %>

COMMENT IN HTML

If the JSP tags are covered by the HTML comment tag, it won't show up on a browser, but you will see it in the source code.

<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page import = "java.util.Date" %>

<html>
<head><title>COMMENT IN HTML</title></head>
<body>

<!-- PROCESS TIME: <%= new Date() %> -->
HTML COMMENT

</body>
</html>

COMMENT IN JSP

<%@ page contentType = "text/html; charset=euc-kr" %>

<html>
<head><title>COMMENTS ON JSP</title></head>

<body>

	<%-- JSP COMMENT --%>
	JSP JSP JSP 

</body>

</html>

You will not see the JSP comment in the source code.

COMMENT IN JAVA

<%@ page contentType = "text/html; charset=euc-kr" %>

<%!
	public int add(int a, int b) {
		return a + b;
	}
%>

<html>
<head><title>COMMENT IN JAVA</title></head>

<body>

<%
	int val1 = 10; 
	int val2 = 20; 
	
	int result = add(val1, val2);
%>

<%= val1 %> + <%= val2 %> = <%= result %>

</body>
</html>

Again, you will not see the comment in the source code. 

 

So, If you want to show your comment on the source code, you have to use the html comment tag not the jsp, but if you don't want to show the comment, you have to use the jsp comment tag.

Here are some examples for your better understanding.

Example1

<%@ page contentType="text/html;charset=euc-kr" %>

<html>

<!-- HTML COMMENT-->

The result is : <br>

<%-- JSP COMMENT --%>

<body>

<%

int i=1;
int j=2;
i=i+j;

out.println("i+j = " + i); 
%>

</body>
</html>

Example2

<%@ page contentType="text/html;charset=euc-kr" %>

<html>
	<body>


<h1>Comment Example</h1>

<%
   String name = "You are my ";
%>

<!-- HTML COMMENT IS SHOWED IN THE SOURCE CODE. -->

<%-- 
This comment is not sent to the client web brower.
--%>

<!-- <%=name%> You will see this in the source code. -->

<%-- <%=name%> JSP COMMENT --%>

<%=name /* Expression tag comment*/ %> universe.

	</body>
</html>

'Java > JSP' 카테고리의 다른 글

JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Importing / Classes  (0) 2022.08.25
JSP Tags  (0) 2022.08.25
JSP  (0) 2022.08.25

There are several ways to Import in JSP, you can directly write page tags or Ctrl + Space bar to import automatically.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>

<!-- To import all in java.util package, you can use this code below -->
<%@ page import= "java.util.*" %>

Here are some classes that you need to import. 

1. Date / Timestamp Class

<%@page import="java.sql.Timestamp"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%

// java.util.Date d = new java.util.Date();
Date d = new Date(); // Ctrl + Space bar to Import

SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEEEEE");

Timestamp ts = new Timestamp(System.currentTimeMillis());
%>

Time :
<%=d%>
<br>
Time_Korean_Version :
<%=sd.format(d)%>
<br>
Time :
<%=ts%>
<br>

2. Calendar Class

<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%

Calendar c = Calendar.getInstance();

int y = c.get(Calendar.YEAR); // YEAR
int m = c.get(Calendar.MONTH) + 1; // MONTH(0~ 11)
int d = c.get(Calendar.DATE); // DATE

// 12-hour format 
int h1 = c.get(Calendar.HOUR);

// 24-hour format
int h2 = c.get(Calendar.HOUR_OF_DAY);

String h = "";
if (c.get(Calendar.AM_PM) == 0) { // AM_PM : 0 (AM)
	h = "AM"; // AM_PM : 1 (PM)
} else {
	h = "PM";
}

int mm = c.get(Calendar.MINUTE);
int s = c.get(Calendar.SECOND);


// Array : Sun = 1 , Mon = 2.... Sat = 7
int week = c.get(Calendar.DAY_OF_WEEK);  // Day of week(1 ~7)

String[] weekend = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri"};
%>

<%=week %> <br> <!-- 5 : Thursday -->

<!-- 12-hour format -->
<%=m%>-<%=d%>-<%=y%><%=weekend[week-1] %>
<%=h1%>:<%=mm%>:<%=s%><%=h%><br>
<!-- 24 hour format -->
<%=m%>-<%=d%>-<%=y%><%=weekend[week-1] %>
<%=h2%>:<%=mm%>:<%=s%><br>

3. Random Class

<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%
	// Random Class
Random r = new Random();

int r1 = r.nextInt(10); // 0 ~ 9 

// Random number between 1 and 45
int r2 = r.nextInt(45) + 1;
%>

Your lucky number of today :
<%=r1%>
<br>

 

'Java > JSP' 카테고리의 다른 글

JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26
JSP Tags  (0) 2022.08.25
JSP  (0) 2022.08.25

As in other languages, there are a few main tags in JSP. 

 

Scriptlet tag

A scriptlet tag is used to execute java source code in JSP.

<!-- Scriptlet Tag -->
<%
	// Basic variables 
int i = 30;
double d = 3.14;
char c1 = 'A';
char c2 = '자';
boolean b1 = true;
boolean b2 = false;

// Reference variables
// 1. Class
String str1 = "JSP";
String str2 = new String("JSP");

// 2. Array 
String[] str = { "Java", "JSP", "Oracle", "HTML", "Python" };

for (int j = 0; j < str.length; j++) {
	out.println(str[j] + "\t"); // println doesn't have a function of printing out in a new line.
}

out.println("<br>");
%>

<%
	for (String s : str) {
%>
<%=s%>
<br>
<%
	}
%>

<%
	// 3. Interface : List
List list = new ArrayList(); // Upcasting 
// You need to import with the page tag.
list.add(50);
list.add(50.33);
list.add('A');
list.add(true);
list.add("JSP");

for (int j = 0; j < list.size(); j++){
	 out.println(list.get(j)+"\t");
}
%>
<br>

Declaration tag

It is used to declare fields and methods.

The code written inside the JSP declaration tag is placed outside the service() method of the auto-generated Servlet.

<!-- Declaration tag -->
<!-- To declare methods -->
<%!
public int add(int a, int b){
	int c =  a + b;
	return c;
}

public int subtract(int a, int b){
	int c = a - b;
	return c;
}

public int multiply(int a, int b){
	int c = a * b;
	return c;
}

%>
<%
int result1 = add(3, 9); // To call add method
int result2 = subtract(3, 9); // To call add method
int result3 = multiply(3, 9); // To call add method
%>

3 + 9 = <%=result1 %> <br>
3 - 9 = <%=result2 %> <br>
10 * 25 = <%=result3 %> <br>
10 * 25 = <%=multiply(10, 25) %> <br>

 

Wait, what is the Servlet?

According to Oracle,  "A servlet is a Java programming language class that is used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by web servers. For such applications, Java Servlet technology defines HTTP-specific servlet classes."

 

The main difference between Servlet and JSP is that Servlet is java based, whereas JSP is HTML based. 

Let's get back to the tags then. 

 

Expression tag

It is to the output stream of the response.

<!-- Expression Tag -->
Print out :
<%="Print Success"%>
<br>
Result :
<%=1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10%>
<br>
i =
<%=i%>
<br>
d =
<%=d%>
<br>
c1 =
<%=c1%>
<br>
c2 =
<%=c2%>
<br>
b1 =
<%=b1%>
<br>
b2 =
<%=b2%>
<br>
str1 =
<%=str1%>
<br>
str2 =
<%=str2%>
<br>

Directive tag

Directive tag gives special instruction to Web Container at page translation time. There are three types of directive tags : page, include and taglib.

 

Page tag, is what you always see on the top of every JSP file, also to import, we use the page tags.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>

<!-- To import all in java.util package, you can use this code below -->
<%@ page import= "java.util.*" %>

We will study more about import in the next post.

Directive tag Description
<%@ page ... %> defines page dependent properties such as language, session, errorPage etc.
<%@ include ... %> defines file to be included.
<%@ taglib ... %> declares tag library used in the page

Action tag

Action tags are used to control the flow between pages and to use Java Bean. The JSP action tags are given below.

Action tag Description
jsp:forward forwards the request and response to another resource.
jsp:include includes another resource.
jsp:useBean creates or locates bean object.
jsp:setProperty sets the value of property in bean object.
jsp:getProperty prints the value of property of the bean.
jsp:plugin embeds another components such as applet.
jsp:param sets the parameter value. It is used in forward and include mostly.
jsp:fallback can be used to print the message if plugin is working. It is used in jsp:plugin.

 

'Java > JSP' 카테고리의 다른 글

JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26
JSP) Importing / Classes  (0) 2022.08.25
JSP  (0) 2022.08.25

This is a list of Must-know in Java that I made with the help of my instructor. 

As always, step by step, we will get there! 

  1. Data types
  2. Variables (regional variable, member variable, static variable)
  3. Operators
  4. Control statement (condition statement, repeat statement)
    Auxiliary control statement (break, continue)
  5. Call Methods
    (Call by Value, Call by Reference)
  6. Arrays
  7. classes, objects, constructors, methods
  8. Access Controllers
  9. Date, Timestamp, Calendar
  10. String-related classes (String, StringBuffer, StringTokenizer)
  11. Inheritance
    (Member variable, method, constructor)
  12. Abstract classes, interface
  13. Collection, Generic
    List, Map
  14. Transform data type
    1. Basic data type conversion ex) double <---> int
    2. Data type conversion using a wrapper (basic data type <---> reference type)
      ex) int <---> String Wrapper Class (Boxing and Unboxing)
      int n = Integer.parseInt("20");
    3. Reference Type Transformation
  15. Exception handling
  16. Thread
  17. java.io.* (BufferedReader, FileReader, FileWriter, File)
  18. java.net.* (Socket Communications)
  19. java.sql.* (Database interlocking)

'Java' 카테고리의 다른 글

Java) Array  (0) 2022.09.04
Java) .length vs length()  (0) 2022.09.02
Java) Conditional statements and loops  (0) 2022.08.30
Java) Data Types  (0) 2022.08.27
Java) Operators  (0) 2022.08.26

JSP stands for Java Server Pages, which creates dynamic web pages by inserting JAVA code into HTML code
It's a web application program. When JSP runs, it is converted to a Java servlet and runs on the web application server.
Perform the necessary functions and respond to the client with the web page with the generated data.

The following is the basic structure of JSP. 

 There are two models in JSP: model 1 and model2, and the structures are slightly different.

Source : dotnettutorials.net
Source : dotnettutorials.net

To configure JSP, we will download the free source, Apache Tomcat. Please refer to the link below to download it.

Apache Tomcat® - Welcome!

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the

tomcat.apache.org

Other than Apache Tomcat, there is another free source called Jetty by Eclipse Foundation. 

If you want to download Jetty instead, please click the link below. 

https://www.eclipse.org/jetty/

 

Eclipse Jetty | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.

www.eclipse.org

Once downloaded, Apache Tomcat has to be stopped running because Eclipse has to dominate the control. 

First, create a dynamic web project and name it jspproject

Next, create a new JSP file in the WebContent folder. Since they all have different usages, it is important to save the file in the WebContent folder, not in META-INF or WEB-INF.

JSP file will be looking like this:

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
My first JSP program
</body>
</html>

 

In the next post, we will discuss JSP's main tags, so don't worry if you can't understand the syntax above!

'Java > JSP' 카테고리의 다른 글

JSP) Implicit Objects 1 - Request Object  (0) 2022.08.26
JSP) Scopes - Basics / Application  (0) 2022.08.26
JSP) Comment  (0) 2022.08.26
JSP) Importing / Classes  (0) 2022.08.25
JSP Tags  (0) 2022.08.25

+ Recent posts