Monthly Archives: March 2016
JSP EL – access to request parameters, cookies, and other request data
inputdemo.html
<html> <body> <form action="collection.jsp"> Enter your Name: <input type="text" name="nm" /> <select name="hobby" multiple > <option value="dance" > Dance </option> <option value="reading" > Reading </option> <option value="music" > Music </option> </select> <input type="submit" value="ok"/> </form> </body> </html>
collection.jsp
<body bgcolor="${(10>8)? 'pink' : 'YELLOW'}" > EL implicit Object : <br> ================== <br>Your name is : ${param.nm} <br> your hobbies are : ${paramValues.hobby[0]} ${paramValues.hobby[1]} ${paramValues.hobby[2]} <br> pageContext object : <br> Session : ${pageContext.session.id} <br> Method : ${pageContext.request.method} <br> initParam : <!-- in web.xml <context-param> <param-name>AppID</param-name> <param-value>123</param-value> </context-param> --> ${initParam.AppID} <br> Header : ${header.Accept} <br> OR <br> ${header["Accept"]} <br> Cookie : ${cookie.JSESSIONID.value} <% pageContext.setAttribute("name", "mca"); %> <br> Page Scope : ${pageScope.name}
JSP EL – Accessing Collection
EL\WEB-INF\classes\CollectionDemo.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class CollectionDemo extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String weekdays[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"}; List cl = new ArrayList(); cl.add("Rajkot"); cl.add("Surat"); cl.add("Ahmedabad"); cl.add("Morbi"); Map student = new HashMap(); student.put("fnm","Ram"); student.put("lnm","Sita"); HttpSession session = req.getSession(); session.setAttribute ("wd",weekdays); session.setAttribute ("city",cl); session.setAttribute ("stud",student); RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/CollectionDemo.jsp"); rd.forward(req,res); } }
EL\WEB-INF\CollectionDemo.jsp
${wd[0]}<br> ${city[0]} ${city[1]}<br> ${stud["fnm"]} ${stud["lnm"]}
JSP EL – Accessing Bean SubProperty
EL\WEB-INF\source\NameBean.java
package p1; public class NameBean { private String firstname="Missing first name"; private String lastname="Missing last name"; public NameBean(String firstName, String lastName) { setFirstName(firstName); setLastName(lastName); } public void setFirstName(String fn) { firstname=fn; } public void setLastName(String ln) { lastname=ln; } public String getFirstName() { return firstname; } public String getLastName() { return lastname; } }
EL\WEB-INF\source\CompanyBean.java
package p1; public class CompanyBean { private String companyname,business; public CompanyBean(String companyName, String business) { setCompanyName(companyName); setBusiness(business); } public void setCompanyName(String newCompanyName) { companyname = newCompanyName; } public void setBusiness(String newBusiness) { business = newBusiness; } public String getCompanyName() { return(companyname); } public String getBusiness() { return(business); } }
EL\WEB-INF\source\EmployeeBean.java
package p1; public class EmployeeBean { private NameBean name; private CompanyBean company; public EmployeeBean(NameBean name, CompanyBean company) { setName(name); setCompany(company); } public void setName(NameBean obj) { name=obj; } public void setCompany(CompanyBean obj) { company=obj; } public NameBean getName() { return name; } public CompanyBean getCompany() { return company; } }
EL\WEB-INF\source\Test.java
package p1; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Test extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { NameBean nobj=new NameBean("Marty","Hall"); CompanyBean cobj=new CompanyBean("coreservlet.com","J2EE Training and consulting"); EmployeeBean eobj=new EmployeeBean(nobj,cobj); request.setAttribute("employee", eobj); request.setAttribute("company",cobj); request.setAttribute("name",nobj); RequestDispatcher dispatcher = request.getRequestDispatcher("/EL.jsp"); dispatcher.forward(request, response); } }
EL\EL.jsp
FirstName : ${employee.name.firstName} LastName : ${employee.name.lastName} Company Name : ${ employee.company.companyName} Business : ${ employee.company.business} <br> From NameBean : <br> ${name.firstName} ${name.lastName} <br> From CompanyBean <br> ${company.companyName} ${company.business}
JSP EL : Accessing JSP Scoped Variable
EL\WEB-INF\classes\ScopeVar.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ScopeVar extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException { res.setContentType("text/html"); PrintWriter out=res.getWriter(); req.setAttribute("attribute1","request"); HttpSession session=req.getSession(); session.setAttribute("attribute2","session"); ServletContext a=getServletContext(); a.setAttribute("attribute3","application"); req.setAttribute("repeat","request1"); session.setAttribute("repeat","session1"); a.setAttribute("repeat","application1"); RequestDispatcher rd=req.getRequestDispatcher("result.jsp"); rd.forward(req,res); } }
EL\result.jsp
Request scope : ${attribute1} Session scope : ${attribute2} Application scope : ${attribute3} <br> <%-- If Key are same then priority(scope) will be as per following order : 1) page 2) request 3) session 4) application --%> same Key : ${repeat} <br> to access same key from different Scope : ${requestScope.repeat} ${sessionScope.repeat} ${applicationScope.repeat}
MVC Example -3
StudMVC\datainput.html
<html> <body> <form action="test.do" method="post"> Roll No: <select name="rno"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> <input type="submit" value="submit"> </form> </body> </html>
StudMVC\WEB-INF\web.xml
<web-app ....> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <servlet> <servlet-name>t</servlet-name> <servlet-class>controller.control</servlet-class> </servlet> <servlet-mapping> <servlet-name>t</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping> </web-app>
StudMVC\WEB-INF\source\control.java
package controller; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import model.*; public class control extends HttpServlet { public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { res.setContentType("text/html"); PrintWriter out=res.getWriter(); String rno=req.getParameter("rno"); Bean b=new Bean(); b=b.getDetail(rno); int total=b.getM1()+b.getM2() + b.getM3(); out.println("total " + total); double per=total/3; req.setAttribute("Result",b); req.setAttribute("total",total); req.setAttribute("per",per); String URL; if(per <50 ) URL="WEB-INF/LessResult.jsp"; else URL="WEB-INF/MoreResult.jsp"; RequestDispatcher rd=req.getRequestDispatcher(URL); rd.forward(req,res); } }
StudMVC\WEB-INF\MoreResult.jsp
<body bgcolor="BLUE"> Student Data : <jsp:useBean id="Result" type="model.Bean" scope="request" /> Roll no : <jsp:getProperty name="Result" property="rollno" /> </br> Name : <jsp:getProperty name="Result" property="name" /> </br> M1 : <jsp:getProperty name="Result" property="m1" /> </br> M2 : <jsp:getProperty name="Result" property="m2" /> </br> M3 : <jsp:getProperty name="Result" property="m3" /> </br> <% out.println("Total : "+request.getAttribute("total") + "<br>"); out.println("Percentage : " +request.getAttribute("per")); %> </body>
StudMVC\WEB-INF\LessResult.jsp
<body bgcolor="RED"> Student Data : <jsp:useBean id="Result" type="model.Bean" scope="request" /> Roll no : <jsp:getProperty name="Result" property="rollno" /> </br> Name : <jsp:getProperty name="Result" property="name" /> </br> M1 : <jsp:getProperty name="Result" property="m1" /> </br> M2 : <jsp:getProperty name="Result" property="m2" /> </br> M3 : <jsp:getProperty name="Result" property="m3" /> </br> <% out.println("Total : "+request.getAttribute("total") + "<br>"); out.println("Percentage : " +request.getAttribute("per")); %> </body>
StudMVC\WEB-INF\source\Bean.java
package model; import java.util.*; public class Bean { private int rno; private String name; private int m1,m2,m3; public Bean() { } public Bean(int rollno,String name,int m1,int m2,int m3) { rno=rollno; this.name=name; this.m1=m1; this.m2=m2; this.m3=m3; } public Bean getDetail(String key) { HashMap mp=new HashMap(); mp.put("1",new Bean(1,"Ram",76,86,87)); mp.put("2",new Bean(2,"Sita",52,65,73)); mp.put("3",new Bean(3,"Laxman",65,75,53)); mp.put("4",new Bean(4,"Hanuman",32,35,23)); mp.put("5",new Bean(5,"Bharat",42,55,63)); return ((Bean)mp.get(key)); } public int getRollno() { return rno; } public String getName() { return name; } public int getM1() { return m1; } public int getM2() { return m2; } public int getM3() { return m3; } }
Model View Controller (MVC) (Example-2)
MVC\datainput.html
<html> <body> <form action="test.do"> Enter your emp no : <select name="emp"> <option value="1"> 1</option> <option value="2"> 2 </option> </select> <input type="submit" value="ok"/> </form> </body> </html>
MVC\WEB-INF\source\Control.java
package controller; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import model.*; public class Control extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out=res.getWriter(); String s=req.getParameter("emp"); Bean b=new Bean(); b=b.getDetail(s); req.setAttribute("Result",b); RequestDispatcher rd=req.getRequestDispatcher("WEB-INF/Result.jsp"); rd.forward(req,res); } }
MVC\WEB-INF\source\Bean.java
package model; import java.util.*; public class Bean { private int empno=3; private String fn="mca",ln="4c"; private float salary=100; public Bean() { } public Bean(int eno,String firstname,String lastname, float salary) { empno=eno; fn=firstname; ln=lastname; this.salary=salary; } public Bean getDetail(String key) { HashMap m=new HashMap(); m.put("1",new Bean(1,"abc","xyz",25000f)); m.put("2",new Bean(2,"pqr","mno",26000f)); return ((Bean)m.get(key)); } public String getFirstName() { return fn; } public String getLastName() { return ln; } public int getEmpno() { return empno; } public float getSalary() { return salary; } }
MVC\WEB-INF\Result.jsp
<%@page import="model.Bean" %> Using JAVA: <% Bean b=(Bean)request.getAttribute("Result"); out.println(b.getEmpno()); out.println(b.getFirstName()); out.println(b.getLastName()); out.println(b.getSalary()); %> </br> Using Bean: <jsp:useBean id="Result" type="model.Bean" scope="request"/> <jsp:getProperty name="Result" property="empno" /> <jsp:getProperty name="Result" property="firstName" /> <jsp:getProperty name="Result" property="lastName" /> <jsp:getProperty name="Result" property="salary" /> </br> using EL : ${Result.empno} ${Result.firstName} ${Result.lastName} ${Result.salary}
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app ..> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <servlet> <servlet-name>t</servlet-name> <servlet-class>controller.Control</servlet-class> </servlet> <servlet-mapping> <servlet-name>t</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping> </web-app>
Model View Controller (MVC) ( Example-1)
MVC/datainput.html
<html> <body> <form action="test.do"> Enter your semester: <select name="sem"> <option value="sem3">Sem3 </option> <option value="sem4">Sem4 </option> </select> <input type="submit" value="ok" /> </form> </body> </html>
MVC/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app ... > <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <servlet> <servlet-name>test</servlet-name> <servlet-class>controller.control</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping> </web-app>
MVC/WEB-INF/source/Bean.java
package model; import java.util.*; public class Bean { private List subjects; public List getSubjectList(String sem) { subjects=new ArrayList(); if(sem.equals("sem3")) { subjects.add("SM"); subjects.add("OS"); } if(sem.equals("sem4")) { subjects.add("WTAD"); subjects.add("OR"); } return subjects; } }
MVC/WEB-INF/source/control.java
package controller; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import model.*; public class control extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException { res.setContentType("text/html"); PrintWriter out= res.getWriter(); String sem=req.getParameter("sem"); Bean b=new Bean(); List l=b.getSubjectList(sem); req.setAttribute("list",l); RequestDispatcher rd=req.getRequestDispatcher("WEB-INF/Result.jsp"); rd.forward(req,res); } }
To compile the javacode :
WEB-INF> javac -d ./classes source/*.java
/MVC/WEB-INF/Result.jsp
<%@page import="java.util.*" %> <% List result=(List)request.getAttribute("list"); for(int i=0;i<result.size();i++) { out.println(result.get(i)); } %>