In this post, we will discuss JavaBean. 

Before, let us look at the JSP Model1 architecture.

JSP Model1 architecture

We already made a DTO class in Java, and that is JavaBean.

JavaBean is a component written in Java. 

There are some things that you need to consider when you make a Javabean.

1. In JavaBean, the member variable is called property.
2. Property is a field for storing values created by declaring the access controller private.
3. Properties are used as intermediate data storage when the contents of the JSP page are stored in the DB or when the contents stored in the DB are printed on the JSP page.
4. set() method and get() method are used a lot in JavaBean, and they
mainly use public access modifiers.
5. The Java Bean file's storage location should be in the WEB-INF/classes folder.

 

 

We will make a java file called "SimpleBean.java" in the src folder.

You can easily write generate getters and setters by right-clicking the mouse.

SimpleBean.java

// JavaBean, DTO Class(Data Transfer Object)

package javaBean;

public class SimpleBean {
	
	private String msg;	    // Property

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
}

There are three action tags related to JavaBean.

Action tags related to JavaBean Description
<jsp:useBean id=" " class=" " scope=" " /> to locate or instantiate a bean class
<jsp:setProperty name=" " property=" " value=" "/> to save a property value in a JavaBean object
<jsp:getProperty name=" " property=" " /> to bring the property value from the JavaBean object

 

<Example>

MemberInfo.java (JavaBean class)

package madvirus.member;

import java.sql.Timestamp;

public class MemberInfo {
    
    private String id;
    private String password;
    private String name;
    private String address;
    private Timestamp registerDate;
    private String email;
    
    public String getId() {
        return id;
    }
    public void setId(String val) {
        this.id = val;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String val) {
        this.password = val;
    }
    public String getName() {
        return name;
    }
    public void setName(String val) {
        this.name = val;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String val) {
        this.address = val;
    }
    public Timestamp getRegisterDate() {
        return registerDate;
    }
    public void setRegisterDate(Timestamp val) {
        this.registerDate = val;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String val) {
        this.email = val;
    }
}

 

 

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

JSP) Model1 vs Model2  (0) 2022.09.15
JSP) JSP and Oracle  (0) 2022.08.31
JSP) Action tags - include  (0) 2022.08.31
JSP) Handling Exceptions  (0) 2022.08.30
JSP) Action tags - forward  (0) 2022.08.30

The <jsp:include>action tag includes other pages along with (<%@include file=heheader.jsp" %>).
While the include directive simply contains text from a specific source, the <jsp:include> action tag includes the processing results of the page. You can include HTML, JSP, Servlet, and etc.

Let us look at the examples for a better understanding.

 

<Example 1>

incldeForm.jsp

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

<html>
	<body>

	<h1>include Example</h1>

	<form method=post action="includeMain.jsp">
	Name : <input type="text" name="name"><p>
	<input type="submit" value="Submit">
	</form>	

	</body>
</html>

includeMain.jsp

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

<html>
	<body>

	<h1>includeMain.jsp</h1>

	<%
		request.setCharacterEncoding("euc-kr");
	%>

	<hr>

	<jsp:include page="includeSub.jsp" flush="false"/>
	includeMain.jsp's content

	</body>
</html>

includeSub.jsp

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

<%
	String name = request.getParameter("name");
%>

 includeSub.jsp<p>
<b>Hey, <%=name%>!</b>
<hr>

So, in the browser, you will see includeMain.jsp page including includeSub.jsp page.

 

<Example 2>

incldeForm2.jsp

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

<html>
	<body>

	<h2>include Example2</h2>

	<form method=post action="includeMain2.jsp">
	Site Name : <input type="text" name="siteName1"><p>
				<input type="submit" value="Submit">
	</form>

	</body>
</html>

includeMain2.jsp

Here, <jsp:param> convey the "siteName" to this file from includeForm2.jsp.

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

<html>
	<body>
	
	<h2>includeMain2.jsp Page</h2>

	<%
		request.setCharacterEncoding("euc-kr");
		String siteName1 = request.getParameter("siteName1");
	%>

	<hr>
	<jsp:include page="includeSub2.jsp">
		<jsp:param name="siteName" value="<%=siteName1%>"/>
	</jsp:include>

	includeMain2.jsp Page Content<p>

	</body>
</html>

includeSub2.jsp

With the request object, the siteName is conveyed to the includeSub2.jsp.

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

<html>
	<body>

	<%
		String siteName = request.getParameter("siteName");
	%>

	includeSub2.jsp Page<p>

	<b><%=siteName%></b>
	<hr>

	</body>
</html>

Both include directive tag and include action tag are similar in that they all include other pages, but the include directive tag contains only the text, whereas the include action tag contains the results of the page's processing.

 

Here is another example. 

 

<Example 3>

includer.jsp

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

<html>
	<head><title>include Directive</title></head>
	<body>

<%
    int number = 10;
%>

<%@ include file="includee.jspf" %>

Common Variable DATAFOLDER = "<%= dataFolder %>"

	</body>
</html>

includee.jspf

The 'f' in jspf means 'fraction'.

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

Number saved in includer.jsp page: <%= number %>

<p>

<%
    String dataFolder = "c:\\data";
%>

 

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

JSP) JSP and Oracle  (0) 2022.08.31
JSP) JavaBean  (0) 2022.08.31
JSP) Handling Exceptions  (0) 2022.08.30
JSP) Action tags - forward  (0) 2022.08.30
JSP) Scopes - Page / Request Scopes  (0) 2022.08.29

There are two ways to handle exceptions in JSP: by errorPage and isErrorPage attributes of page directive and by <error-page> element in web.xml file. 

Let's first get to know about the formal way. 

 

Handling Exception using page directive attributes

Two attributes can be used in JSP: errorPage and isErrorPage.

 

errorPage 

 <%@page errorPage="url of the error page"%>

isErrorPage 

 <%@page isErrorPage="true"%>

If the attribute of isErrorPage is true, it is designated as an error page. 

 

Let's discuss it more with some examples. 

In this code, there is no value in the name parameter; yet, we didn't handle the exception, so you will encounter the HTTP status code 500.

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head><title>Print out Parameter</title></head>
<body>

Parameter value of name: <%= request.getParameter("name").toUpperCase() %>

</body>
</html>

with errorPage attribute

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page errorPage = "/error/viewErrorMessage.jsp" %>
<html>
<head><title>Print out Parameter</title></head>
<body>

Parameter value of name: <%= request.getParameter("name").toUpperCase() %>

</body>
</html>

vieErrorMessage.JSP

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page isErrorPage = "true" %>
<html>
<head><title>Error</title></head>
<body>

Sorry, an error occurred while processing your request.<br>
<p>
Error type: <%= exception.getClass().getName() %> <br>
Error message: <b><%= exception.getMessage() %></b>
</body>
</html>

You can also use try ~ catch like Java.

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head><title>Print out Parameter</title></head>
<body>

name parameter value: 
<% try { %>
<%= request.getParameter("name").toUpperCase() %>
<% } catch(Exception ex) { %>
Wrong name parameter.
<% } %>
</body>
</html>

 

The error data should exceed 512 bytes. If the length of the error page is less than 512 bytes, Internet Explorer does not print the error page that this page prints It outputs its own 'HTTP error message' screen. To print the contents of an error page correctly in Internet Explorer, you need to include the same in responding to this comment. 

 

errorPage 02

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page buffer="1kb" %>
<%@ page errorPage = "/error/viewErrorMessage.jsp" %>
<html>
<head><title>Buffer flush Exception</title></head>
<body>

<%  for (int i = 0 ; i < 300 ; i++) { out.println(i); }  %>

<%= 1 / 0 %>

</body>
</html>

So far, we have discussed the formal way of handling exceptions, but unless you have just several pages, you will need to use the latter way to handle exceptions using error-page element en web.xml file.

Instead of the errorPage directive, the error page can be specified in the web.xml file of <error-page> tags.

The web.xml file has to be in WEB-INF folder. Anything you need, to handle the exceptions, you have to put in the web.xml file. Here is the web.xml file.

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	id="WebApp_ID" version="4.0">
	<display-name>jspproject</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>

	<error-page>
		<error-code>404</error-code>
		<location>/error/error404.jsp</location>
	</error-page>

	<error-page>
		<error-code>500</error-code>
		<location>/error/error500.jsp</location>
	</error-page>

	<error-page>
		<exception-type>java.lang.NullPointerException</exception-type>
		<location>/error/errorNullPointer.jsp</location>
	</error-page>

</web-app>

 

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

JSP) JavaBean  (0) 2022.08.31
JSP) Action tags - include  (0) 2022.08.31
JSP) Action tags - forward  (0) 2022.08.30
JSP) Scopes - Page / Request Scopes  (0) 2022.08.29
JSP) Session  (0) 2022.08.29

Conditional statements and loops are used in Java and other languages since they simplify the codes. 

Conditional statements, also called Selection statements, consist of two big statements: If statements and Switch ~ case statements. 

Here are some examples for your better understanding. 

 

if

public class If01 {

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

		if(10>5) {
			System.out.println("Executed 1");
		}
		
        // {} can be omitted if it is a single line.
		if(10>5) System.out.println("Executed 2");
		
		if(true) {
			System.out.println("Execute unconditionally");
		}
		
		if(false) {
			System.out.println("Execution failed");
		}
		
		if(10 > 30)
			System.out.println("Failed to print out");
			System.out.println("Condition isn't applied on this execution");

	}

}

if ~ else ( Even? or Odd? )

import java.util.Scanner;

public class If02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println("Insert one integer.");
		
		Scanner sc = new Scanner(System.in);
		
		int n1 = sc.nextInt();
		
		if (n1 % 2 == 0) {
			System.out.println(n1+" is even.");			
		}else {
			System.out.println(n1+" is odd.");
		}
	}

}
// 0 is considered as even number.

if ~ else if ~ else (Maximum and Minimum)

import java.util.Scanner;

public class If03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int n1, n2, max, min; 
		
		System.out.println("Insert two integers.");
		
		Scanner sc = new Scanner(System.in);
		
		n1 = sc.nextInt();
		n2 = sc.nextInt();
		
		if (n1 > n2) {
			max = n1;
			min = n2;
			
		}else {
			max = n2;
			min = n1;
		}	
			System.out.println(max + " is the maximum.");
			System.out.println(min +" is the mininum.");
		
		
	}

}

Random number(Dice)

public class If06 {

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

		// Random numbers 
		// 	0.0 <= Math.random() < 1.0
		//   1                      6
		System.out.println("E="+Math.E);	
		System.out.println("PI="+Math.PI);	
		System.out.println(Math.random()); 
		
		int num = (int)(Math.random()*6) + 1;
		System.out.println("num=" +num);
		
		if(num == 1) {
			System.out.println("1");			
		}else if(num == 2){
			System.out.println("2");
		}else if(num == 3){
			System.out.println("3");
		}else if(num == 4){
			System.out.println("4");
		}else if(num == 5){
			System.out.println("5");
		}else {
			System.out.println("6");
		}
	}

}

Score 

import java.util.Scanner;

public class If05 {

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

		System.out.println("Insert your score.");
		
		Scanner sc = new Scanner(System.in);
		
		n1 = sc.nextInt();

		if(n1 >= 90) {
			System.out.println("A");
		}else if(n1 >= 80) {
			System.out.println("B");
		}else if(n1 >= 70) {
			System.out.println("C");
		}else if(n1 >=60) {
			System.out.println("D");
		}else {
			System.out.println("F");
		}
	
	}

}

This can also be written with Switch ~ case like below. Switch ~ case and If ~ else if ~ else statements do the same role, but the syntax is slightly different. 

 

Switch ~ case (Score)

package p2022_06_23;

import java.util.Scanner;

public class Switch01 {

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

		System.out.println("Insert your score (0 ~ 100).");
		Scanner sc = new Scanner(System.in);
		
		int s = sc.nextInt();  // s = 95
		s = s / 10;            // s /= 10
		switch (s) {
			case 10 :
			case 9: System.out.println("A");
			     	 break;
			case 8: System.out.println("B");
				 	 break;
			case 7: System.out.println("C");
				 	 break;
			case 6: System.out.println("D");
				 	 break;
			default:System.out.println("F");
		}

	}

}

While these conditional statements above are runned once, there are loops if you want to write repetitive statements. There are three types of loops : For, While, and Do ~ while. 

 

For01.java

public class For01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        
		int i; 
		for(i=1; i<=10; i++) { 
			System.out.println(i+"This is a for loop.");
		}
}
}

For02.java

public class For02 {

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

		// Sum of 1 ~ 10
		int sum = 0;  //Local Variable
		for(int i=1; i<=10; i++) { 
			sum = sum + i; 
		}
		// System.out.println("sum="+sum);
//		System.out.println("1~"+i+"="+sum);
		System.out.println("Sum="+sum);
	}
	
}

For03.java

public class For03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int odd = 0;
		int even = 0;

		for(int i=1; i<=100; i+=2)
			odd += i;

		for(int i=0; i<=100; i+=2)
		even += i;
		System.out.println("Sum of all odd numbers from 1 to 100: "+odd);
		System.out.println("Sum of all even numbers from 1 to 100: "+even);
		
	}
}

For04.java (Multiplication Table)

import java.util.Scanner;

public class For04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println("Insert one integer for a multiplication table.");
		Scanner sc = new Scanner(System.in);
		int dan = sc.nextInt();    // dan = 5
		
		System.out.println("["+dan+"]");
		for(int i=1; i<=9; i++)
			System.out.println(dan+"*"+i+"="+dan*i);
				
		
	}

}

Multiplication Table 

public class Multiplication Table {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		for(int i=2; i<10; i++) {
			System.out.print("["+i+"]"+"\t");
		}
		System.out.println();
		
		for(int j=1; j<10; j++) {
			for(int k=2; k<10; k++) {
				System.out.print(k+"*"+j+"="+k*j+"\t");
				
			}
			System.out.println();
		}
	}

}

While01.java

This is the same as For03.java, so you can choose one that makes your code more efficient. 

public class While01 {

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

		
		int i=1, odd=0, even=0;		
		while(i<=100) {				
			if(i%2 == 1) {		
				odd += i;
			}else {					
				even += i;
			}		
			i++;				
		}
		System.out.println("Sum of all odd numbers from 1 to 100: "+odd);
		System.out.println("Sum of all even numbers from 1 to 100: "+even);
	}

}

The output will be the same.

Dowhile01.java 

This is also the same as While01.java and For03.java.

public class DoWhile01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
				
		int i=1, odd=0, even=0;			
		do {
			if(i%2 == 1) {		
				odd += i;
			}else {				
				even += i;
			}
			i++;					
		}while(i<=100);				
		System.out.println("Sum of all odd numbers from 1 to 100: "+odd);
		System.out.println("Sum of all even numbers from 1 to 100: "+even);
	}

}

The result is also the same. 

As you can see, the conditional statements and the loops have multiple options for you to choose from when you make your program, but the first thing you need to consider is "Efficiency." When we code, we need to consider the processing time and the length of the codes

'Java' 카테고리의 다른 글

Java) Array  (0) 2022.09.04
Java) .length vs length()  (0) 2022.09.02
Java) Data Types  (0) 2022.08.27
Java) Operators  (0) 2022.08.26
Java (Must know)  (0) 2022.08.25

Action tags are one of the factors in JSP pages, along with scripts, comments, and directives. 

In JSP, action tags are implemented to perform some precise tasks. 

Here are some most used action tags :

 

<jsp:forward> : to forward the request and response to other resources.

<jsp:forward page = "URL of another static, JSP, OR Servlet page" />

<jsp:include> : to include another resource.

<jsp:include page = "Page URL"  flush = "Boolean Value" />

<jsp:param> : to set the parameter for (forward or include) value.

<jsp: param name = "param_name" value = "value_of_parameter" />

<jsp:usebean> : to create or locate bean objects.

<jsp: useBean id="unique_name_to_identify_bean" class="package_name.class_name" />

and so on. 

 

Here, let us take a peek at some examples of these action tags. 

 

<Forward Action Tag Example 1>

 

forwardForm1.jsp

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

<html>
	<body>
	<h1>Forward Example</h1>

	<form method=post action="forwardFrom1.jsp">
	ID : <input type="text" name="id"><p>
	Password : <INPUT TYPE="password" NAME="password"><p>
			   <input type="submit" value="Submit">
	</form>

	</body>
</html>

forwardFrom.jsp

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

<html>
<body>
	<h2>Page forwarding: forwardFrom1.jsp</h2>

	<%
		request.setCharacterEncoding("euc-kr");
	%>

	forwardFrom1.jsp content
	<br> You will not see this on a browser.

	<%
		// request object
	request.setAttribute("name", "Meadow");
	%>

	<jsp:forward page="forwardTo1.jsp" />

</body>
</html>

forwardTo1.jsp

You will not see the forwarded data on the browser.

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

<html>
	<body>
	<h2>Page forwarding: forwardTo1.jsp</h2>

	<%
		String id = request.getParameter("id");
		String password = request.getParameter("password");
	%>

	<b><%=id%></b>'s<p>
	password is <b><%=password%></b>.

	<jsp:forward page="forwardTo2.jsp"/>  

	</body>
</html>

forwardTo2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    
    ID : <%=request.getParameter("id")%> <br>
    password : <%=request.getParameter("password")%> <br>
    
    Print out the value shared by the request object.<br>
    <%=request.getAttribute("name")%>

<Forward Action Tag Example 2>

 

forwardForm2.jsp

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

<html>
	<head>
	<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
	<script>
	
	$(document).ready(function(){
		
		$(":submit").click(function(){
			
			if($("#name").val() == ""){
				alert("Insert your name.");
				$("#name").focus();
				return false;
			}
			
			if($("#a").is(":checked") == false &&
			   $("#b").is(":checked") == false &&	
			   $("#o").is(":checked") == false &&
			   $("#ab").is(":checked") == false){
				alert("Choose your bloodtype.");
				return false;
			}		
			
		});
		
	});	
	
	</script>
	</head>
	<body>

	<h1>Forwarding parameter value to next page</h1>

	<form method=post action="forwardFrom2.jsp">
	Name : <input type=text id="name" name="name"> <br><br>
	
	What is your bloodtype?<p> 
	
	<input type="radio" id="a" name="bloodType" value="a">A<br>
	<input type="radio" id="b" name="bloodType" value="b">B<br>
	<input type="radio" id="o" name="bloodType" value="o">O<br>
	<input type="radio" id="ab" name="bloodType" value="ab">AB<p>
	<input type="submit" value="Submit">
	</form>

	</body>
</html>

forwardFrom2.jsp

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

<html>
	<body>

	<h1>Page forwarding: forwardFrom2.jsp</h1>

	<%
		request.setCharacterEncoding("euc-kr");

		String bloodType = request.getParameter("bloodType") + ".jsp";
	
	%>

	<jsp:forward page="<%=bloodType%>"/>

a.jsp

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

<html>
	<body>

	<h1>Page forwarding(a.jsp)</h1>

	<%
		String name = request.getParameter("name");
		String bloodType = request.getParameter("bloodType");
	%>

	<b><%=name%></b>'s bloodtype is 
	<b><%=bloodType%></b> and did you know that <p>
	people with type B blood are more susceptible to gastroenteric cancers?

	</body>
</html>

b.jsp

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

<html>
	<body>

	<h1>Page forwarding(b.jsp)</h1>

	<%
		String name = request.getParameter("name");
		String bloodType = request.getParameter("bloodType");
	%>

	<b><%=name%></b>'s bloodtype is 
	<b><%=bloodType%></b> and did you know that <p>
	people of this blood type have a strong immune system and stable nervous system?

	</body>
</html>

ab.jsp

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

<html>
	<body>

	<h1>Page forwarding(ab.jsp)</h1>

	<%
		String name = request.getParameter("name");
		String bloodType = request.getParameter("bloodType");
	%>

	<b><%=name%></b>'s bloodtype is
	<b><%=bloodType%></b> and did you know that <p>
	type AB- is the rarest of all the blood types, with just 1% of the population having it?

	</body>
</html>

o.jsp

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

<html>
	<body>

	<h1>Page forwarding(o.jsp)</h1>

	<%
		String name = request.getParameter("name");
		String bloodType = request.getParameter("bloodType");
	%>

	<b><%=name%></b>'s bloodtype is
	<b><%=bloodType%></b>, and did you know that <p>
	people with the bloodtype O are less susceptible to malaria?

	</body>
</html>

<Forward Action Tag Example 3>

 

forwardForm3.jsp

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

<html>
	<body>

	<h2>Forward Example 3</h2>

	<form method="post" action="forwardFrom3.jsp">
	Name : <input type="text" name="name"><br><br>
	Your color : <br>
	<input type="radio" name="color" value="yellow">Yellow<br>
	<input type="radio" name="color" value="green">Green<br>
	<input type="radio" name="color" value="blue">Blue<br>
	<input type="radio" name="color" value="red">Red<p>
	<input type="submit" value="Confirm">
	</form>

	</body>
</html>

forwardFrom.jsp

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

<html>
	<body>

	<h2>Page forwarding: forwardTagFrom2.jsp</h2>

<%
   request.setCharacterEncoding("euc-kr");

   String name = request.getParameter("name");
   String selectedColor = request.getParameter("color");
%>

<jsp:forward page="<%=selectedColor+\".jsp\"%>">
    <jsp:param name="selectedColor" value="<%=selectedColor%>"/>
	<jsp:param name="name" value="<%=name%>"/>
</jsp:forward>

blue.jsp

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

<%
   String name = request.getParameter("name");
   String selectedColor = request.getParameter("selectedColor");
%>

<h2>Blue - <%=selectedColor+".jsp"%></h2>

<b><%=name%></b>'s color is "<%=selectedColor%>" and
it represents calmness and responsibility.<br><br>

<img src="<%=selectedColor+".jpg"%>" border="0" width="70" height="30">

green.jsp

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

<%
   String name = request.getParameter("name");
   String selectedColor = request.getParameter("selectedColor");
%>

<h2>Green - <%=selectedColor+".jsp"%></h2>

<b><%=name%></b>'s color is "<%=selectedColor%>" and
it represents growth and renewal, being the color of spring and rebirth.<br><br>

<img src="<%=selectedColor+".jpg"%>" border="0" width="70" height="30">

red.jsp

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

<%
   String name = request.getParameter("name");
   String selectedColor = request.getParameter("selectedColor");
%>

<h2>Red - <%=selectedColor+".jsp"%></h2>

<b><%=name%></b>'s color is "<%=selectedColor%>" and
it represents life, health, vigor, war, courage, anger, love and religious fervor.<br><br>

<img src="<%=selectedColor+".jpg"%>" border="0" width="70" height="30">

yellow.jsp

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

<%
   String name = request.getParameter("name");
   String selectedColor = request.getParameter("selectedColor");
%>

<h2>Yellow- <%=selectedColor+".jsp"%></h2>

<b><%=name%></b>'s color is "<%=selectedColor%>" and
it symbolizes happiness, warmth and sunshine.<br><br>

<img src="<%=selectedColor+".jpg"%>" border="0" width="70" height="30">

By designating the name of the jpg files to the selectedColor, you can directly load them to the forward pages.

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

JSP) Action tags - include  (0) 2022.08.31
JSP) Handling Exceptions  (0) 2022.08.30
JSP) Scopes - Page / Request Scopes  (0) 2022.08.29
JSP) Session  (0) 2022.08.29
JSP) Cookies  (0) 2022.08.28

The last post of mine was about the basics of the scopes and focused on the application and the session among four scopes: Page, Request, Session, and Application.

2022.08.26 - [JSP] - JSP) Scopes - Basics / Application

 

JSP) Scopes - Basics / Application

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 Sh..

www.agilemeadow.com

 

In this post, we will cover the page and the request scopes. 

Page and Request

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("pageScope", "pageValue");
request.setAttribute("requestScope", "requestValue");
%>

pageValue = <%=pageContext.getAttribute("pageScope") %><br>
requestValue = <%=request.getAttribute("requestScope") %>
</body>
</html>

With a forward action tag

With the forward action tag, you will not see anything on a browser, but it will still forward the data to the designated page.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("pageScope", "pageValue");
request.setAttribute("requestScope", "requestValue");
%>
<jsp:forward page="requestTest5Result.jsp"></jsp:forward>
</body>
</html>

Result page

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
pageValue = <%=pageContext.getAttribute("pageScope") %><br>
requestValue = <%=request.getAttribute("requestScope") %>
</body>
</html>

You cannot use the page scope anymore so it will turn out null.

 

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

JSP) Handling Exceptions  (0) 2022.08.30
JSP) Action tags - forward  (0) 2022.08.30
JSP) Session  (0) 2022.08.29
JSP) Cookies  (0) 2022.08.28
JSP) Encoding Korean 한글 인코딩  (0) 2022.08.27

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, member information is shared through the client's web browser connecting the session. Unlike cookies, the session does not store member information on the client's computer. Using a session, you don't have to take your membership information with you as you move the page. It is easier and safer to use than cookies.

 

Here are some basics about sessions. 

To set session

session.setAttribute ( java.lang.String name, java.lang.Object value);

To use session

session.getAttribute ( java.lang.String  name)

To set the expired time

session.setMaxInactiveInterval();

To delete session

session.removeAttribute ( java.lang.String  name );

To delete all current sessions

session.invalidate();

 

Let's see the examples of session objects and compare them to the cookies.

The examples of cookies are here: 2022.08.28 - [JSP] - JSP) Cookies

 

JSP) Cookies

Cookies are small blocks of data created by a web server while a user is browsing a website and placed on the user's computer or other devices by the user's web browser. Cookies are placed on the de..

www.agilemeadow.com

To set session

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

<html>
	<head><title>Session Example</title>
	</head>
	<body>

<%
	String id = "guardian23";
	String passwd = "1234";

	session.setAttribute("id", id);
	session.setAttribute("passwd", passwd);
%>
   The id and passwd property in the session are set.<br><br>

	<input type="button" value="Check properties in the session" onclick="javascript:window.location='viewSession.jsp'">
	</body>
</html>

To view session

You will see the id and the password with the enumeration type. This example is for when you don't know about the session name.

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

<html>
	<head><title>Session Example</title></head>
	<body>

<%
	Enumeration attr = session.getAttributeNames();

	while(	attr.hasMoreElements()	){
		String attrName = (String)attr.nextElement();
		String attrValue = (String)session.getAttribute(attrName);
		out.println("The name of the session is " + attrName + ", and  ");
		out.println("the value of the session is " + attrValue + ".<br><br>");
	}
%>

	</body>
</html>

If you know the session name, you will use it this way.

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

<html>
	<head><title>Session Example</title></head>
	<body>

<%
String id = (String)session.getAttribute("id"); //Downcast to String class
String passwd = (String)session.getAttribute("passwd");
%>

ID : <%=id %> <br>
Password : <%=passwd %> <br>


	</body>
</html>

The URL of the session is shared with the same browser. 

 

When you log out or delete your account, you need to delete the session on the browser. 

To close session

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

<%
	session.invalidate();
%>

<html>
<head>
<title>Closing Session</title>
</head>
<body>
	<script>
		alert("Log out");
		location.href = "../session/viewSession.jsp";
	</script>
</body>
</html>

After deleting the session

Now, let's make a log in program with session. 

sessionLoginForm.jsp

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

<html>
	<head><title>Log in</title></head>
	<body>

	<form action="<%= request.getContextPath() %>/sessionLogin.jsp" method="post">
		ID <input type="text" name="id" size="10">
		PASSWORD <input type="password" name="password" size="10">
			<input type="submit" value="Log in">
	</form>

	</body>
</html>

sessionLoginCheck.jsp

<%@ page contentType = "text/html; charset=euc-kr" %>
<%
    String memberId = (String)session.getAttribute("MEMBERID");

	//Ternary Operator 
	// (Statement) ? a : b
	// if the statement is true -> a 
    // if the statement is false -> b

    boolean login = (memberId == null) ? false : true;
%>

<html>
	<head><title>Log in Check</title></head>
	<body>

<%
    if (login) {
%>
		Hello, "<%= memberId %>"!
		
		<a href="sessionLogout.jsp">Log out</a><br>
<%
    } else {
%>
		<a href="sessionLoginForm.jsp">Log in</a><br>
		
		<a href="../../request/member/memberform.html">Sign up</a> <br>
<%
    }
%>

	</body>
</html>

sessionLogin.jsp

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

<%
    String id = request.getParameter("id");
    String password = request.getParameter("password");
    
    if (id.equals(password)) {
        session.setAttribute("MEMBERID", id);
%>

		<html>
			<head><title>Success</title></head>
			<body>
			<script>
				alert("Log in success.")
				location.href="sessionLoginCheck.jsp"
			</script>

			</body>
		</html>

<%
    } else { // log in failed
%>

		<script>
			alert("Failed to log in.");
	//		history.go(-1);
			history.back();
		</script>
<%
    }
%>

Once you link the log in to the log in form and the signup to the sign up form, it will load to the page.

sessionLogout.jsp

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

<%
    session.invalidate();
%>

<html>
	<head><title>Log out</title></head>
	<body>
	<script>
		alert("Log out");
		location.hret="sessionLoginForm.jsp"
	</script>
	</body>
</html>

If you want to know more about the sign up program, please refer to this post of mine :

2022.08.24 - [Codes & Projects] - jQuery/ JSP) Sign up Form

 

jQuery/ JSP) Sign up Form

Sign up Form member_join.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PU..

www.agilemeadow.com

 

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

JSP) Action tags - forward  (0) 2022.08.30
JSP) Scopes - Page / Request Scopes  (0) 2022.08.29
JSP) Cookies  (0) 2022.08.28
JSP) Encoding Korean 한글 인코딩  (0) 2022.08.27
JSP) Implicit Objects 3 - Out Object  (0) 2022.08.27

Cookies are small blocks of data created by a web server while a user is browsing a website and placed on the user's computer or other devices by the user's web browser. Cookies are placed on the device used to access a website, and more than one cookie may be placed on a user's device during a session.

The term "cookie" was coined by web-browser programmer Lou Montulli. It was derived from the term "magic cookie", a packet of data a program receives and sends back unchanged, used by Unix programmers. The term magic cookie derives from the fortune cookie, a cookie with an embedded message.(Wikipedia)

 

Usually, cookies are issued to connect the server and the client. The picture following is how the cookies work. 

Source:&nbsp;blog.csdn.net

The cookie is a concept used by servers and clients to maintain a connection state (login). Usually, if the login is successful, the server issues cookies and the cookies are issued by the client. The file is created in the temporary folder. On the server side, as you navigate the page, you can refer to the cookie information issued to the client's temporary folder. It is to maintain the connection status (login) between the server and the client. You don't have to take your membership information while moving the page with cookies.

 

Here are some basics of cookies in JSP.

To create cookies

Cookie cook = new Cookie (String name, String value);
Cookie cook = new Cookie ("id", "test");

To add cookies

response.addCookie(cook);

To edit the value of cookies

cook.setValue(newValue);

To set expired time

cook.setMaxAge(int expiry); // seconds
cook.setMaxAge(60*60); // an hour

To read cookies

Cookie[] cook = request.getCookie();

Name : cook.getNmae()
Value : cook.getValue()

If you feel you are more familiar with cookies, check out an example!

 

makeCookie.jsp

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

<html>
	<head>
		<title>To create cookies</title>
	</head>

<%
   String cookieName = "id";
   Cookie cookie = new Cookie(cookieName, "sheriff");
   cookie.setMaxAge(60*2); 
   cookie.setValue("guardian");
   response.addCookie(cookie);
%>

	<body>
	<h2>Cookie example</h2>
	<P>

"<%=cookieName%>" Cookie has been created.<br>

		<input type="button" value="Check Cookies" onclick="javascript:window.location='useCookie.jsp'">
	</P>
	</body>
</html>

useCookie.jsp

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

<html>
	<head>
		<title>Brining cookies from a browser</title>
	</head>
	<body>
	<h2>Brining cookies from a browser</h2>

<%
	Cookie[] cook = request.getCookies();

	if( cook != null ){
		for(int i=0; i<cook.length;++i){
			if(cook[i].getName().equals("id")){
%>

		Name of the cookie is "<%=cook[i].getName()%>" and 
		the value is "<%=cook[i].getValue()%>" .

<%
			}
		}
	}
%>

	</body>
</html>

To check the cookies that are created, on the browser that you want to check the cookies, enter F12 and see the cookies in the Application tap. The cookies will be there until the expired time you set. 

Cookies track your behavior on websites and browsers, and they can target with ever more personalized content based on users’ engagement on web pages. Cookies can also be used to identify unique and returning visitors to a website. When a user visits a website, the site creates a cookie that stores data that identifies that user. If the user leaves the website and visits again, the website will recognize the user as a returning user. A good example of why this can be a huge help would be an e-commerce website that remembers the products you added to your cart the last time you visited, even though you didn't complete the purchase. However, when you let people use your browser account, they can see what kinds of sites you visit by peeking at your browser file — unless you get rid of them.(AVG)

 

Here are some more examples of cookies. 

To create cookies

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

<% 
    Cookie cookie = new Cookie("name", URLEncoder.encode("Meadow"));
    response.addCookie(cookie); // To create cookies
%>

<html>
	<head><title>Creating Cookies</title></head>
	<body>

<%= cookie.getName() %> Value = "<%= cookie.getValue() %>"

	</body>
</html>

To view the cookies list

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

<html>
	<head><title>Cookies List</title></head>
	<body>
	Cookies List<br>

<%
    Cookie[] cookies = request.getCookies();

    if (cookies != null && cookies.length > 0) {
        for (int i = 0 ; i < cookies.length ; i++) {
%>

			<%= cookies[i].getName() %> = 
			<%= URLDecoder.decode(cookies[i].getValue()) %><br>

<%
        }//for end

    } else {
%>

		There is no cookies.
<%
    }
%>

	</body>
</html>

If you didn't set the expired time, the cookies will be deleted once you close the window. So, it would help if you opened the window to see the cookies. 

There are two ways to modify the values of the cookies.

To modify value1

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

<%
    Cookie[] cookies = request.getCookies();

    if (cookies != null && cookies.length > 0) {
        for (int i = 0 ; i < cookies.length ; i++) {

            if (cookies[i].getName().equals("name")) {
                Cookie cookie = new Cookie("name", URLEncoder.encode("JSP Programming"));
                response.addCookie(cookie);

            }// if end

        }//for end
    }
%>

<html>
	<head><title>Modifying Cookies</title></head>
	<body>
		Change the value of cookie "name".
	</body>
</html>

To modify value2

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

<%
    Cookie[] cookies = request.getCookies();

    if (cookies != null && cookies.length > 0) {
        for (int i = 0 ; i < cookies.length ; i++) {

            if (cookies[i].getName().equals("name")) {
                cookies[i].setValue(URLEncoder.encode("Java and JSP"));
                response.addCookie(cookies[i]);
            }// if end

        }//for end
    }
%>

<html>
	<head><title>Modifying Cookies</title></head>
	<body>
		Change the value of cookie "name".
	</body>
</html>

Unlike creating cookies, there is no function to delete cookies. However, there is another way to delete them.

You will create a cookie with the name with a null value. Set the expired time '0' and use the response object.

To delete cookies

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

<%
    Cookie[] cookies = request.getCookies();
    if (cookies != null && cookies.length > 0) {
        for (int i = 0 ; i < cookies.length ; i++) {

            if (cookies[i].getName().equals("name")) {
                Cookie cookie = new Cookie("name", "");
                cookie.setMaxAge(0);
                response.addCookie(cookie);
            }//if end

        }//for end
    }
%>

<html>
	<head><title>Delete Cookies</title></head>
	<body>
		Delete cookie "name".
	</body>
</html>

 

No cookies in the list.

To set the expired time.

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

<%
    Cookie cookie = new Cookie("oneh", "1time");
    cookie.setMaxAge(60 * 60); // 60sec * 60 = 1 hour
    response.addCookie(cookie);
%>

<html>
	<head><title>Cookie's expired time</title></head>
	<body>

	In one hour, this cookie will be deleted.

	</body>
</html>

 

본 내용은 아래 링크에 나온 Request Object Example1의 한글 인코딩과 관련된 포스팅입니다. 

This post is related to the Korean encoding of Request Object Sample1 shown in the link below.

https://agilemeadow.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F# 

 

TISTORY

나를 표현하는 블로그를 만들어보세요.

www.tistory.com

<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>

인코딩은 항상 위에서 먼저 해야 합니다. 그렇지 않으면 한글 값이 깨집니다.

Post 방식으로 값을 전달 할 때는 Tomcat이 자동으로 인코딩하지 않으므로 인코딩을 먼저 시킨다음 값을 받아야 합니다. 

대부분의 전송방식이 Post 방식이기 때문에 한글 인코딩은 항상 빠지지 않는 중요한 문제입니다. 

Encoding should always be done first above. Otherwise, the Korean value is broken.
Tomcat does not automatically encode the value when forwarding it in the Post method, so you must encode it first and then receive it. 
Since most transmission methods are Post, encoding Korean is always an important issue.

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

	
<%	
// 한글 인코딩
// 1. 폼 파일에서 한글값이 get방식으로 전송될 때는 tomcat이 자동으로 utf-8로 인코딩을 시켜준다. 
// 2. 폼 파일에서 한글값이 post 방식으로 전송될 때는 tomcat이 자동으로 인코딩을 시켜주지 않기 때문에 
//    아래의 코드로 직접 인코딩해야 한다. 
// 폼파일에서 한글값이 post방식으로 전송될때 utf-8로 인코딩을 시켜주는 역할

// Korean encoding
// 1. When the Korean value is transmitted in the form file by the get method, tomcat automatically encodes it to utf-8. 
// 2. Tomcat does not automatically encode the Korean value in the form file when it is sent in the post method 
//    It shall be encoded directly into the code below. 
// The role of encoding the Korean values in the form file to utf-8 when they are transmitted by post.

	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>

get방식과 post 방식의 차이에 대해 궁금하시다면 이 상단의 링크를 참조해주세요. 

If you are curious about the difference between get method and post method, please refer to the link above/ or refer to my last post, <JSP) Implicit Objects 1>.

 

Please comment below if you have any issues or questions about this post. 

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

JSP) Session  (0) 2022.08.29
JSP) Cookies  (0) 2022.08.28
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) Implicit Objects 1 - Request Object  (0) 2022.08.26

An out object is an output stream that transmits the results generated by the JSP page to the web browser, and all information that the JSP page sends to the web browser is transmitted through the out object.  All information includes both script and non-script elements such as HTML and general text. Here are some examples of the out object.

 

You can check the size and the use of Buffer. 

outEx.jsp

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

<%
	int totalBuffer = out.getBufferSize();
	int remainBuffer = out.getRemaining();
	int useBuffer = totalBuffer - remainBuffer;
%>

<h1>Out Example</h1>
<b>Buffer status on current page</b><p>

Total Buffer Size : <%=totalBuffer%>byte<p>
Current Use of Buffer : <%=useBuffer%>byte<p>
Remain Buffer Size : <%=remainBuffer%>byte<p>

useOut.jsp

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

<html>
<head><title>out Object2</title></head>
<body>

<%
    out.println("What's up?");
%>
<br>

This is the result of
<%
    out.println("the basic out object.");
%>

</body>
</html>

 

 

println in JSP does not change the line.

To change the line, you need to put the <br> tag like this :

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

<html>
<head><title>out Object2</title></head>
<body>

<%
    out.println("What's up?<br>");
    out.println("Let's change the line.<br>");
%>
<br>

This is the result of
<%
    out.println("<br>the basic out object.");
%>

</body>
</html>

<br> tags are used.

 

+ Recent posts