· 6 years ago · Oct 05, 2019, 01:04 AM
11a. Create a simple calculator application using servlet.
2
3Create a new project
4
5
6Select java web web Application
7
8index.html
9<html><head><title>Calculator App</title></head><body>
10<form action="CalculatorServlet" >
11 Enter First Number <input type="text" name="txtN1" ><br>
12 Enter Second Number <input type="text" name="txtN2" ><br>
13 Select an Operation
14<input type="radio" name="opr" value="+">ADDTION
15<input type="radio" name="opr" value="-">SUBSTRACTION
16<input type="radio" name="opr" value="*">MULTIPLY
17<input type="radio" name="opr" value="/">DIVIDE <br>
18<input type="reset">
19<input type="submit" value="Calculate" >
20</form></body></html>
21
22Add a new Servlet to source package
23
24
25Name the servlet and package
26
27
28
29Check “Add information to deployment descriptor” to add servlet into web.xml But preferably use annotation.
30
31CalculatorServlet.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CalculatorServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet CalculatorServlet</title></head><body>"); double n1 = Double.parseDouble(request.getParameter("txtN1")); double n2 = Double.parseDouble(request.getParameter("txtN2")); double result =0;
32 String opr=request.getParameter("opr");
33if(opr.equals("+")) result=n1+n2; if(opr.equals("-")) result=n1-n2; if(opr.equals("*")) result=n1*n2; if(opr.equals("/")) result=n1/n2; out.println("<h1> Result = "+result); out.println("</body></html>");} }
34
351b. Create a servlet for a login page. If the username and password are correct then it says message “Hello <username>” else a message “login failed”
36
37index.html
38<html><head><title>Login Form</title></head>
39<form action="LoginServlet" >
40 Enter User ID<input type="text" name="txtId"><br>
41 Enter Password<input type="password" name="txtPass"><br>
42<input type="reset"><input type="submit" value=" Click to Login "></form></html>
43
44LoginServlet.java package mypack; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();
45out.println("<html><head><title>Servlet LoginServlet</title></head>");
46 String uname = request.getParameter("txtId");
47 String upass = request.getParameter("txtPass"); if(uname.equals("admin") && upass.equals("12345")){ out.println("<body bgcolor=blue >"); out.println("<h1> Welcome !!! "+uname+"</h1>");
48 }
49else{ out.println("<body bgcolor=red >");out.println("<h1> Login Fail !!! </h1>");
50 }
51
52
531c. Create a registration servlet in Java using JDBC. Accept the details such as Username, Password,
54Email, and Country from the user using HTML Form and store the registration details in the database.
55
56MySql queries create database LoginDB; use LoginDB;
57
58create table user(username varchar(20) PRIMARY KEY, password varchar(20), email varchar(20), country varchar(20));
59
60insert into user values ('admin','admin','admin@admin.com','India');
61
62select * from user;
63
64
65
66 x Add jar file <<Netbean Folder>>\ide\modules\ext\mysql-connector-java-5.1.23-bin.jar
67
68index.html
69<html><head><title>Registration Page</title></head>
70<body>
71<form action="RegisterServlet" >
72<H1>Welcome to Registration page</H1>
73 Enter User Name <input type="text" name="txtUid"><br>
74 Enter Password <input type="password" name="txtPass"><br>
75 Enter Email <input type="text" name="txtEmail" ><br>
76 Enter Country <input type="text" name="txtCon" ><br>
77<input type="reset" ><input type="submit" value="REGISTER" >
78</form>
79</body></html>
80
81RegisterServlet.java package mypack; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*;
82
83public class RegisterServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
84 PrintWriter out = response.getWriter();
85 String id = request.getParameter("txtUid");
86 String ps = request.getParameter("txtPass");
87 String em = request.getParameter("txtEmail"); String co = request.getParameter("txtCon"); try{
88Class.forName("com.mysql.jdbc.Driver");
89 Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/logindb"); PreparedStatement pst = con.prepareStatement("insert into user values(?,?,?,?)"); pst.setString(1,id); pst.setString(2,ps); pst.setString(3,em); pst.setString(4,co); int row = pst.executeUpdate(); out.println("<h1>"+row+ " Inserted Succesfullyyyyy");
90}catch(Exception e){out.println(e);}
91}
92}
93
94
95
962a. Using Request Dispatcher Interface create a Servlet which will validate the password entered by the user, if the user has entered "Servlet" as password, then he will be forwarded to Welcome Servlet else the user will stay on the index.html page and an error message will be displayed.
97
98index.html
99<html><head><title>Login Form</title></head>
100<form action="LoginServlet" >
101 Enter User ID<input type="text" name="txtId"><br>
102 Enter Password<input type="password" name="txtPass"><br>
103<input type="reset">
104<input type="submit" value=" Click to Login ">
105</form>
106</html>
107LoginServlet.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.RequestDispatcher; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head>");
108out.println("<title>Servlet LoginServlet</title></head>");
109 String uname = request.getParameter("txtId");
110 String upass = request.getParameter("txtPass"); if(uname.equals("admin") && upass.equals("servlet")){
111 RequestDispatcher rd = request.getRequestDispatcher("WelcomeServlet"); rd.forward(request, response);
112 }
113else{ out.println("<body bgcolor=red >"); out.println("<h1> Login Fail !!! </h1>");
114 RequestDispatcher rd = request.getRequestDispatcher("index.html"); rd.include(request, response);
115 }
116out.println("</body>"); out.println("</html>");
117 }
118 }
119WelcomeServlet.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.RequestDispatcher; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head>");
120out.println("<title>Servlet LoginServlet</title></head>");
121 String uname = request.getParameter("txtId"); String upass = request.getParameter("txtPass"); if(uname.equals("admin") && upass.equals("servlet")){
122 RequestDispatcher rd = request.getRequestDispatcher("WelcomeServlet"); rd.forward(request, response);
123 }
124else{ out.println("<body bgcolor=red >"); out.println("<h1> Login Fail !!! </h1>");
125 RequestDispatcher rd = request.getRequestDispatcher("index.html"); rd.include(request, response);
126 }
127out.println("</body>"); out.println("</html>");
128 } }
129
130
131
132
1332b. Create a servlet that uses Cookies to store the number of times a user has visited servlet.
134
135index.html <html>
136<head><title>Cookie Demo</title></head>
137<body>
138<form action="Page1" >
139 Enter Your Name <input type="text" name="txtName"><br>
140<input type="submit" value="~~~ Click to Enter ~~~">
141</form>
142</body>
143</html>
144Page1.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Cookie; public class Page1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Page1</title></head>"); out.println("<body bgcolor=pink >");
145 String uname = request.getParameter("txtName"); out.println("<h1>~~~ Welcome "+uname+"</h1>");
146 Cookie ck1 = new Cookie("username", uname); Cookie ck2 = new Cookie("visit","1"); response.addCookie(ck1); response.addCookie(ck2); out.println("<h1><a href=Page2 >Click to visit Page 2 </a></h1>"); out.println("</body>"); out.println("</html>");
147 }
148 }
149Page2.java package mypack; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*; public class Page2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Page2</title></head>"); out.println("<body bgcolor=yellow >");
150 Cookie [] ck = request.getCookies(); for(int i=0;i<ck.length;i++){ if(ck[i].getName().equals("visit")){ int count = Integer.parseInt(ck[i].getValue())+1; out.println("<h1>Visit No : "+count+"</h1>"); ck[i] = new Cookie("visit",count+""); response.addCookie(ck[i]);
151 }
152else { out.println(ck[i].getName()+ " = "+ck[i].getValue()); } out.println("<h1><a href=Page3 >Click to visit Page 3 </a></h1>"); out.println("<h1><a href=Page4 >Click to visit Page 4 </a></h1>"); out.println("<h1><a href=Page5 >Click to visit Page 5 </a></h1>"); out.println("</body>"); out.println("</html>");
153 } }
154Repeat the code from Page2.java for Page3.java, Page4.java and Page5.java with relevant changes.
155
156
157
158
159
1602c.Create a servlet demonstrating the use of session creation and destruction. Also check whether the user has visited this page first time or has visited earlier also using sessions.
161
162index.html <html>
163<head><title>Session Demo</title></head>
164<form action="Page1" method="get" >
165 Enter User ID <input type="text" name="txtName"><br>
166<input type="reset" ><input type="submit" >
167</form>
168</html>
169Page1.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class Page1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet Page1</title></head>");
170
171 HttpSession hs = request.getSession(true); if(hs.isNew()){
172out.println("<body bgcolor=yellow>");
173 String name = request.getParameter("txtName"); hs.setAttribute("uname", name); hs.setAttribute("visit", "1"); out.println("<h1>Welcome First Time</h1>");
174 }
175else{ out.println("<h1>Welcome Again</h1>");
176int visit = Integer.parseInt((String)hs.getAttribute("visit"))+1; out.println("<h1>You Visited "+visit+"Times</h1>"); hs.setAttribute("visit", ""+visit);
177 }
178out.println("<h1>Your Session ID "+hs.getId()+"</h1>"); out.println("<h1>You Logged in at "+new java.util.Date(hs.getCreationTime())+"</h1>"); out.println("<h1><a href=Page2>Click for Page 2 </a></h1>"); out.println("<h1><a href=Page3>Click for Page 3 </a></h1>");
179out.println("<h1><a href=Page4>Click for Page 4 </a></h1>"); out.println("<h1><a href=LogoutServlet>Click to Terminate Session </a></h1>"); out.println("</body>"); out.println("</html>");
180 }
181 }
182Page2.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class Page2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet Page2</title></head>");
183
184 HttpSession hs = request.getSession(false); out.println("<h1>Welcome Again on Page No. 2</h1>"); int visit = Integer.parseInt((String)hs.getAttribute("visit"))+1; out.println("<h1>You Visited "+visit+"Times</h1>"); hs.setAttribute("visit", ""+visit);
185
186out.println("<h1>Your Session ID "+hs.getId()+"</h1>"); out.println("<h1>You Logged in at "+new java.util.Date(hs.getCreationTime())+"</h1>"); out.println("<h1><a href=Page1>Click for Page 1 </a></h1>"); out.println("<h1><a href=Page3>Click for Page 3 </a></h1>"); out.println("<h1><a href=Page4>Click for Page 4 </a></h1>"); out.println("<h1><a href=LogoutServlet>Click for Terminate Session </a></h1>"); out.println("</body>"); out.println("</html>");
187 } }
188Repeat the code from Page2.java in Page3.java and Page4.java with relevant changes.
189
190LogoutServlet.java package mypack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LogoutServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet LogoutServlet</title></head>"); out.println("<body>"); javax.servlet.http.HttpSession hs = request.getSession(); if(hs != null) hs.invalidate(); out.println("<h1>You are Logged out now........</h1>"); out.println("</body>"); out.println("</html>");
191 }
192 }
193
194
195
196
197
198
199
200Q.3 a) Create a Servlet application to upload and download a file.
201CODE:
202Uploading a file
203Index.html
204<form action="FileUploadServlet" method="post" enctype="multipart/form-data">
205Select File to Upload:<input type="file" name="file" id="file">
206Destination <input type="text" value="/tmp" name="destination"> <br>
207<input type="submit" value="Upload file" name="upload" id="upload"> </form>
208FileUploadServlet.java package fileservletapp; import java.io.*; import javax.servlet.*; import javax.servlet.annotation.MultipartConfig; import javax.servlet.http.*; @MultipartConfig public class FileUploadServlet extends HttpServlet { public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
209{ res.setContentType("text/html"); PrintWriter out = res.getWriter();
210
211
212String path=req.getParameter("destination"); Part filePart=req.getPart("file");
213String sfilePart=req.getPart("file").toString(); out.print("<br> filePart: "+sfilePart);
214String filename=filePart.getSubmittedFileName().toString(); out.print("<br><br><hr> file name: "+filename); OutputStream os=null; InputStream is=null;
215try {
216os=new FileOutputStream(new File(path+File.separator+filename)); is=filePart.getInputStream(); int read=0; byte[] b=new byte[1024];
217while ((read = is.read(b)) != -1) { os.write(b, 0, read);
218} out.println("<br>file uploaded sucessfully...!!!");
219} catch(FileNotFoundException e){out.print(e);}
220} }
221Downloading a file
222Index.html
223<body>
224<h1>File Download Application</h1>
225Click <a href="DownloadServlet?filename=SampleChapter.pdf">Sample Chapter</a> <br/><br/>
226
227
228Click <a href="DownloadServlet?filename=TOC.pdf">Table Of Contents</a> </body>
229DownloadServlet.java package filedownloadapp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class DownloadServlet extends HttpServlet
230{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
231{ response.setContentType("APPLICATION/OCTET-STREAM");
232String filename = request.getParameter("filename");
233ServletContext context = getServletContext();
234InputStream is = context.getResourceAsStream("/" + filename); ServletOutputStream os = response.getOutputStream(); response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
235// if comment this statement then it will ask you about the editor with which you want to open the file int i;
236byte b[]=new byte[1024]; while ((i=is.read(b)) != -1) { os.write(b);
237} is.close();
238os.close();
239}
240
241
2423b. Develop Simple Servlet Question Answer Application using Database.
243
244create database qadb; use qabd; create table quiz (qno varchar(5) PRIMARY KEY,question varchar(100), op1 varchar(50), op2 varchar(50), op3 varchar(50), op4 varchar(50), ans varchar(50)) insert into quiz values('001','What is the capital of India??','New Delhi','Kolkata','Chennai','Mumbai','New Delhi'); insert into quiz values('002','Who was the First President of India??','Dr. Rajendra Prasad','Dr. S. Radhakrishnan','Ram Nath Kovind','V. V. Giri','Dr. Rajendra Prasad');
245insert into quiz values('003','What is ORM','Object Ratio Mean','Object Rotation Measure','Object Relation Mapping','Oracle Request Management','Object Relation Mapping'); insert into quiz values('004','Unit of Energy is ___','Dozon','Kilo Meter ','Joul','Hertz','Joul')
246insert into quiz values('005',' --- is the smallest memory unit.','bit','byte','Kilo Byte','Giga Byte','bit') index.html
247<html><head><title>Quiz Application</title></head>
248<body>
249<h1>Welcome to Quiz Servlet </h1>
250<h1><a href="QuizServlet" >CLICK TO START QUIZ</a></h1>
251</body>
252</html>
253QuizServlet.java package mypack;
254
255import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*;
256
257public class QuizServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<form action=ShowResult >"); try {
258Class.forName("com.mysql.jdbc.Driver");
259 Connection con =
260DriverManager.getConnection("jdbc:mysql://localhost:3306/qadb","root","root"); Statement stmt = con.createStatement();
261ResultSet res = stmt.executeQuery("select * from quiz"); out.println("<table border=1 >"); int qno=0; while(res.next()){ qno++; out.println("<tr><td>"+res.getString(1)+"</td>"); out.println("<td>"+res.getString(2)+"</td></tr>"); out.println("<tr><td><input type=radio name="+qno+" value="+res.getString(3)+"></td><td>"+res.getString(3)+"</td></tr>"); out.println("<tr><td><input type=radio name="+qno+"
262value="+res.getString(4)+"></td><td>"+res.getString(4)+"</td></tr>"); out.println("<tr><td><input type=radio name="+qno+" value="+res.getString(5)+"></td><td>"+res.getString(5)+"</td></tr>"); out.println("<tr><td><input type=radio name="+qno+" value="+res.getString(6)+"></td><td>"+res.getString(6)+"</td></tr>"); }
263}catch(Exception e){out.println(e);} out.println("</table>"); out.println("<input type=reset >"); out.println("<input type=submit value=SUBMIT >"); out.println("</form>"); } }
264---------------------------------------------- ShowResult.java-------------------------------- package mypack; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class ShowResult extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try {
265Class.forName("com.mysql.jdbc.Driver");
266 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/qadb","root","root");
267Statement stmt = con.createStatement();
268ResultSet res = stmt.executeQuery("select ans from quiz"); int count =0, qno=0; while(res.next()){ if(res.getString(1).equals(request.getParameter(""+(++qno))))
269{ count++; out.println("<h1>Correct </h1>");
270 } else { out.println("<h1>Incorrect </h1>");
271 }
272} out.println("<h1>Your Score is "+count+" </h1>");
273}catch(Exception e){out.println(e);}}}
274
275
276
277QuizServlet ShowResult
278
279
280
2813c. Create simple Servlet application to demonstrate Non-Blocking Read Operation.
282<html>
283<head>
284<title>Non Blocking IO</title>
285<meta charset="UTF-8">
286<meta http-equiv="Refresh" content="0; URL=NonBlockingServlet">
287</head>
288<body>
289</body>
290</html>
291----------------------------------------------- NonBlockingServlrt.java --------------------- package nonblkapp;
292
293import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; public class NonBlockingServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) {
294 /* TODO output your page here. You may use following sample code. */ out.println("<h1>FileReader</h1>");
295 String filename="/WEB-INF/booklist.txt";
296 ServletContext c=getServletContext();
297 InputStream in=c.getResourceAsStream(filename);
298 String
299path="http://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/Rea dingNonBloclingServlet";
300 URL url=new URL(path);
301 HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setChunkedStreamingMode(2); conn.setDoOutput(true); conn.connect(); if(in!=null)
302 {
303 InputStreamReader inr=new InputStreamReader(in);
304 BufferedReader br = new BufferedReader(inr); String text="";
305System.out.println("Reading started....");
306 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(conn.getOutputStream())); while((text=br.readLine())!=null){ out.print(text+"<br>");
307try{
308Thread.sleep(1000); out.flush();
309 }
310catch(InterruptedException ex){} }out.print("reading completed...."); bw.flush(); bw.close();
311
312 }
313 }
314 }
315}
316------------------------------------- ReadingListener.java -----------------------------
317
318package nonblkapp; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.AsyncContext; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream;
319
320public class ReadingListener implements ReadListener
321{ private ServletInputStream input = null; private AsyncContext ac = null;
322
323ReadingListener(ServletInputStream in, AsyncContext c) { input = in; ac = c;
324 }
325 @Override public void onDataAvailable() throws IOException {
326 }
327public void onAllDataRead() throws IOException { ac.complete();
328 }
329public void onError(final Throwable t) { ac.complete();
330t.printStackTrace();
331 }
332}
333---------------------------------- ReadingNonBlockingServlet.java -------------------------------- package nonblkapp;
334
335import java.io.IOException; import java.io.PrintWriter; import javax.servlet.AsyncContext; import javax.servlet.ServletException; import javax.servlet.ServletInputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /**
336 *
337 * @author Beena
338 */
339@WebServlet (name = "ReadingNonBlockingServlet", urlPatterns = {"/ReadingNonBlockingServlet"},asyncSupported = true ) public class ReadingNonBlockingServlet extends HttpServlet {
340@Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");
341 AsyncContext ac = request.startAsync(); ServletInputStream in=request.getInputStream(); in.setReadListener(new ReadingListener(in,ac));
342 }
343}
344
3454a. Develop a simple JSP application to display values obtained from the use of intrinsic objects of various types.
346<%@page contentType="text/html" pageEncoding="UTF-8"%>
347<html><head><title>JSP Page</title></head>
348<body>
349<h1>Use of Intrinsic Objects in JSP</h1>
350<h1>Request Object </h1>
351 Query String <%=request.getQueryString() %><br>
352 Context Path <%=request.getContextPath() %><br>
353 Remote Host <%=request.getRemoteHost() %><br>
354<h1>Response Object </h1>
355 Character Encoding Type <%=response.getCharacterEncoding() %><br>
356 Content Type <%=response.getContentType() %><br>
357 Locale <%=response.getLocale() %><br>
358<h1>Session Object </h1>
359 ID <%=session.getId() %><br>
360 Creation Time <%=new java.util.Date(session.getCreationTime()) %><br>
361 Last Access Time<%=new java.util.Date(session.getLastAccessedTime()) %><br>
362</body>
363</html>
364
3654b. Develop a simple JSP application to pass values from one page to another with validations.
366 (Name-txt, age-txt, hobbies-checkbox, email-txt, gender-radio button).
367
368index.html
369
370<html><head><title>User Information Paage</title>
371</head>
372<body>
373<form action="Validate.jsp">
374 Enter Your Name<input type="text" name="name" ><br>
375 Enter Your Age<input type="text" name="age" ><br>
376 Select Hobbies
377<input type="checkbox" name="hob" value="Singing">Singing
378<input type="checkbox" name="hob" value="Reading">Reading Books
379<input type="checkbox" name="hob" value="Football">Playing Football<br>
380 Enter E-mail<input type="text" name="email" ><br>
381 Select Gender
382<input type="radio" name="gender" value="male">Male
383<input type="radio" name="gender" value="female">Female
384<input type="radio" name="gender" value="other">Other<br>
385<input type="hidden" name="error" value="">
386<input type="submit" value="Submit Form">
387</form>
388</body> </html>
389------------------------------------------ Validate.jsp----------------------------------------------------
390<%@page import="mypack.*" %>
391<html><head><title>JSP Page</title></head>
392<body><h1>Validation Page</h1> <jsp:useBean id="obj" scope="request" class="mypack.CheckerBean" >
393<jsp:setProperty name="obj" property="*"/>
394</jsp:useBean>
395<% if (obj.validate()) { %>
396<jsp:forward page="successful.jsp"/>
397<% } else {%>
398<jsp:include page="index.html"/>
399<% } %> <%=obj.getError() %>
400</body></html>
401----------------------------------------CheckerBean.java------------------------------------------- package mypack;
402
403public class CheckerBean { private String name, age, hob, email, gender, error; public CheckerBean(){error="";}
404public void setName(String n){name=n;} public void setAge(String a){age=a;} public void setHob(String h){hob=h;} public void setEmail(String e){email=e;} public void setGender(String g){gender=g;} public void setError(String e){error=e;} public String getName(){return name;} public String getAge(){return age;} public String getHob(){return hob;} public String getEmail(){return email;} public String getGender(){return gender;} public String getError(){return error;} public boolean validate(){ boolean res=true; if(name.trim().equals("")) {error+="<br>Enter First Name";res=false;} if(age.length() > 2 ){error+="<br>Age Invalid";res=false;} if(email.indexOf(“@”) <0 ) {error+="<br>E-Mail Invalid";res=false;} return res;
405}
406}
407
4084c. Create a registration and login JSP application to register and authenticate the user based on username and password using JDBC.
409--------------------------------------Register.html--------------------------------------
410<html><head><title>New User Registration Page</title></head>
411<body>
412<form action="Register.jsp" >
413<h1> New User Registration Page</h1>
414 Enter User Name <input type="text" name="txtName" ><br>
415 Enter Password <input type="password" name="txtPass1" ><br>
416 Re-Enter Password<input type="password" name="txtPass2" ><br>
417 Enter Email<input type="text" name="txtEmail" ><br>
418 Enter Country Name <input type="text" name="txtCon" ><br>
419<input type="reset" ><input type="submit" value="REGISTER" >
420</form>
421</body>
422</html>
423----------------------------------------Register.jsp-------------------------------------------
424<%@page contentType="text/html" import="java.sql.*"%>
425<html><body>
426<h1>Registration JSP Page</h1>
427<%
428 String uname=request.getParameter("txtName");
429 String pass1 = request.getParameter("txtPass1");
430 String pass2 = request.getParameter("txtPass2");
431 String email = request.getParameter("txtEmail"); String ctry = request.getParameter("txtCon"); if(pass1.equals(pass2)){ try{
432Class.forName("com.mysql.jdbc.Driver");
433 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/logindb"); PreparedStatement stmt = con.prepareStatement("insert into user values (?,?,?,?)"); stmt.setString(1, uname); stmt.setString(2, pass1); stmt.setString(3, email); stmt.setString(4, ctry); int row = stmt.executeUpdate(); if(row==1) { out.println("Registration Successful"); } else {
434out.println("Registration FFFFFAAAIIILLLL !!!!");
435 %><jsp:include page="Register.html" ></jsp:include>
436<%
437 }
438}catch(Exception e){out.println(e);}
439 } else
440 {
441out.println("<h1>Password Mismatch</h1>");
442 %>
443<jsp:include page="Register.html" ></jsp:include> <% }
444 %>
445</body>
446</html>
447
448
449
450
451
452------------------- Login.html -----------------------------------
453<html>
454<body>
455<h1>Login Page</h1>
456<form action="Login.jsp" >
457 Enter User Name <input type="text" name="txtName" ><br>
458 Enter Password <input type="password" name="txtPass" ><br>
459<input type="reset" ><input type="submit" value="~~~LOGIN~~" > </form>
460</body>
461</html>
462------------------- Login.jsp----------------------------------
463<%@page contentType="text/html" import="java.sql.*"%>
464<html><body>
465<h1>Registration JSP Page</h1>
466<%
467 String uname=request.getParameter("txtName"); String pass = request.getParameter("txtPass"); try{
468Class.forName("com.mysql.jdbc.Driver");
469 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/logindb"); PreparedStatement stmt = con.prepareStatement("select password from user where username=?"); stmt.setString(1, uname);
470 ResultSet rs = stmt.executeQuery(); if(rs.next()){ if(pass.equals(rs.getString(1)))
471 {
472out.println("<h1>~~~ LOGIN SUCCESSFULLL ~~~ </h1>");
473 }
474 } else{ out.println("<h1>User Name not exist !!!!!</h1>"); %>
475<jsp:include page="Register.html" ></jsp:include>
476<%
477 }
478}catch(Exception e){out.println(e);}
479 %>
480</body></html>
4815a. Create an html page with fields, eno, name, age, desg, salary. Now on submit this data to a JSP page which will update the employee table of database with matching eno.
482
483create table emp
484(
485empid varchar(10) PRIMARY KEY, ename varchar(50), salary varchar(50), age varchar(50) )
486
487insert into emp values('1','aaa','221234','11'); insert into emp values('2','bbb','334567','22'); insert into emp values('3','ccc','44454','33'); insert into emp values('4','ddd','55123','44');
488---- index.html ---------
489<html>
490<body>
491<form action="UpdateEmp.jsp" >
492 Enter Employee Number<input type="text" name="txtEno" ><br>
493 Enter Name<input type="text" name="txtName" ><br>
494 Enter age<input type="text" name="txtAge" ><br>
495 Enter Salary<input type="text" name="txtSal" ><br>
496<input type="reset" ><input type="submit">
497
498</form>
499</body>
500</html>
501------------------- UpdateEmp.jsp -------------------------------- <%@page contentType="text/html" import="java.sql.*" %>
502<html><body>
503<h1>Employee Record Update</h1>
504<%
505 String eno=request.getParameter("txtEno");
506 String name=request.getParameter("txtName");
507 String age = request.getParameter("txtAge"); String sal = request.getParameter("txtSal"); try{
508Class.forName("com.mysql.jdbc.Driver");
509 Connection con = DriverManager.getConnection
510("jdbc:mysql://localhost:3306/empdb",”root”,”root”); PreparedStatement stmt = con.prepareStatement
511("select * from emp where empid=?");
512stmt.setString(1, eno);
513 ResultSet rs = stmt.executeQuery(); if(rs.next()){
514out.println("<h1>~~~ Employee "+name+" Exist ~~~ </h1>");
515 PreparedStatement pst1= con.prepareStatement
516("update emp set salary=? where empid=?");
517pst1.setString(1, sal); pst1.setString(2, eno); pst1.executeUpdate(); } else{ out.println("<h1>Employee Record not exist !!!!!</h1>");
518 }
519}catch(Exception e){out.println(e);}
520 %></body></html>
521
522
523
524
525
526
527
5285b. Create a JSP page to demonstrate the use of Expression language.
529
530<%! int a=10, b=20 %>
531Add ${a+b} <hr>
532Sub ${a-b} <hr>
533Mul ${a*b} <hr>
534Div ${a/b} <hr>
535
536
5375c. Create a JSP application to demonstrate the use of JSTL.
538<c:set var = "dt" value = "<%=new java.util.Date()%>" />
539<hr>FULL FORMAT<br>
540<fmt:formatDate type = "both” dateStyle = "full" timeStyle = "full" value = "${dt}" />
541
542<hr>LONG FORMAT<br>
543<fmt:formatDate type = "both" dateStyle = "long" timeStyle = "long" value = "${dt}" />
544
545<hr>Medium FORMAT<br><fmt:formatDate type = "both" dateStyle = "medium" timeStyle = "medium" value ="${dt}" />
546
547<hr>SHORT FORMAT<br>
548<fmt:formatDate type = "both" dateStyle = "short" timeStyle = "short" value = "${dt}" />
549<hr>DEFAULT FORMAT<br>
550<fmt:formatDate type ="both" dateStyle = "default" timeStyle = "default" value =”${dt}" />
551
552
553
5546a. Create a Currency Converter application using EJB.
555------------------- index.html ------------------------------------
556<html><head><title>Currency Converter</title></head> <body>
557<form action="CCServlet" >
558 Enter Amount <input type="text" name="amt"><br>
559 Select Conversion Type
560<input type="radio" name="type" value="r2d" checked>
561Rupees to Dollar<br>
562<input type="radio" name="type" value="d2r" >Dollor to Rupees<br> <input type="reset" ><input type="submit" value="CONVERT" >
563</form>
564</body>
565</html>
566-------------------------------- CCServlet.java -------------------------- package mypack; import java.io.*;
567import javax.servlet.*; import javax.servlet.http.*; import javax.ejb.EJB; import mybeans.CCBean; public class CCServlet extends HttpServlet {
568 @EJB CCBean obj; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); double amt = Double.parseDouble(request.getParameter("amt")); if(request.getParameter("type").equals("r2d"))
569{ out.println("<h1>"+amt+ " Rupees = "+obj.r2Dollor(amt)+" Dollors</h1>");
570} if(request.getParameter("type").equals("d2r"))
571{ out.println("<h1>"+amt+ " Dollors = "+obj.d2Rupees(amt)+" Rupees</h1>");
572}
573
574}}
575------------------------- CCBean ----------------------------
576Create a stateless session bean
577----------------------------------------------------------------- package mybeans;
578
579import javax.ejb.Stateless;
580
581@Stateless public class CCBean { public CCBean(){} public double r2Dollor(double r){ return r/65.65; } public double d2Rupees(double d){ return d*65.65; } }
582
583
584
5856b. Develop a Simple Room Reservation System Application Using EJB.
586
587Create table rookbook(RoomId varchar(4) PRIMARY KEY, RoomType varchar(20), charges number(5,2), cust varchar(20), mob varchar(20) , status varchar(10)) insert into roombook values('1001','Delux',5000.00,'','','Not Booked') insert into roombook values('1002','Super Delux',7000.00,'','','Not Booked') insert into roombook values('1003','Suit',9500.00,'','','Not Booked') insert into roombook values('2001','Delux',5000.00,'','','Not Booked') insert into roombook values('2002','Super Delux',7000.00,'','','Not Booked') insert into roombook values('2003','Suit',9500.00,'','','Not Booked')
588
589-------------------------------------RoomBook.html ------------------------------------ <form action="RBServlet" >
590 Select a room Type
591<input type="radio" name="txtType" value="Delux">Delux
592<input type="radio" name="txtType" value="Super Delux">Super Delux
593<input type="radio" name="txtType" value="Suit">Suit<br>
594 Enter Your Name<input type="text" name="txtCust" ><br>
595 Enter Mobile No.<input type="text" name="txtMob" ><br>
596<input type="reset" ><input type="submit" value="Book Room">
597</form>
598------------------------------------------RBServlet-------------------------------------- package mypack; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.ejb.EJB; import mybeans.RRBean; public class RBServlet extends HttpServlet {
599@EJB RRBean obj; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ PrintWriter out=response.getWriter(); String rt=request.getParameter("txtType");
600String cn=request.getParameter("txtCust");
601String cm=request.getParameter("txtMob"); String msg = obj.roomBook(rt, cn, cm); out.println(msg); }}
602-------------------------------------------RRBean.java ---------------------------------- package mybeans; import javax.ejb.Stateless; import java.sql.*; @Stateless public class RRBean {
603public RRBean(){}
604public String roomBook(String rt, String cn, String cm){ String msg=""; try{
605Class.forName("com.mysql.jdbc.Driver");
606Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/rrdb","root","root");
607String query="select * from roombook where RoomType=? and status='Not Booked'"; PreparedStatement pst = con.prepareStatement(query); pst.setString(1,rt);
608ResultSet rs= pst.executeQuery(); if(rs.next()){
609 String rno=rs.getString(1);
610PreparedStatement stm1 = con.prepareStatement("update roombook set cust=? where RoomId=? ");
611PreparedStatement stm2 = con.prepareStatement("update roombook set mobile=? where RoomId=? "); PreparedStatement stm3 = con.prepareStatement("update roombook set status=? where RoomId=? "); stm1.setString(1,cn); stm1.setString(2,rno); stm2.setString(1,cm); stm2.setString(2,rno); stm3.setString(1, "Booked"); stm3.setString(2,rno); stm1.executeUpdate(); stm2.executeUpdate(); stm3.executeUpdate(); msg = "Room "+rno+ " Booked <br> Charges = "+rs.getString(3);
612} else { msg = "Room "+rt+ " currently Not available";
613}
614}catch(Exception e){msg=""+e;} return msg;}}
615
616
6176c. Develop simple shopping cart application using EJB [Stateful Session Bean].
618
619CODE:
620Step 1 creating application
621File -> new project-> java web->web application -> Prac6CShoppingCartApp -> select Use dedicated folder for storing libraries -> finish Step 2: Creating a stateful session bean
622Source package -> new -> other -> enterprise java beans -> session bean -> next -> new session bean -> ejb name: ->ShoppingCart -> package: -> ejb -> session type option -> Stateful -> finish. ShoppingCart.java package ejb; import java.sql.*; import java.util.*; import javax.ejb.*; @Stateful public class ShoppingCart { List<String> contents; String customerName; private Connection conn = null; private ResultSet rs; private Statement stmt = null; private String query = null; public void initialize(String person)
623{ if (person != null) {
624customerName = person;
625try {
626Class.forName("com.mysql.jdbc.Driver").newInstance();
627
628
629conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cartdb", "root", "tiger"); } catch(ClassNotFoundException | IllegalAccessException | InstantiationException |
630SQLException e) {
631System.err.println("Sorry failed to connect to the Database." + e.getMessage());
632}
633}
634contents = new ArrayList<>();
635}
636public void addBook(String title) { try {
637stmt = conn.createStatement();
638query = "INSERT INTO cart VALUES('" + customerName + "','" + title + "')"; stmt.executeUpdate(query);
639} catch(SQLException e) {
640System.err.println("Sorry failed to insert values from the database table. " + e.getMessage());
641}
642}
643public void removeBook(String title) { try { stmt = conn.createStatement();
644query = "DELETE FROM cart WHERE UserName='" + customerName + "' AND ItemName='" + title + "'"; stmt.executeUpdate(query);
645} catch(SQLException e) {
646System.err.println("Sorry failed to delete values from the database table. " + e.getMessage());
647}
648
649 }
650public List<String> getContents() { try { stmt = conn.createStatement(); query = "SELECT * FROM cart WHERE UserName='" + customerName + "'"; rs = stmt.executeQuery(query); while(rs.next()) { contents.add(rs.getString("ItemName"));
651}
652} catch(SQLException e) {
653System.err.println("Sorry failed to select values from the database table. " + e.getMessage());
654}
655return contents;
656}
657@Remove()
658public void remove() { contents = null;
659}
660}
661Step 3: creating a web client using index.jsp
662Right click on wewb pages -> new -> JSP -> filename -> index -> finish.
663<%@page import="java.util.Iterator, java.util.List, javax.naming.InitialContext, ejb.ShoppingCart"%>
664<%@page contentType="text/html" pageEncoding="UTF-8"%>
665<!DOCTYPE html> <%!
666private static ShoppingCart cart;
667
668
669public void jspInit() { try {
670InitialContext ic = new InitialContext(); cart = (ShoppingCart) ic.lookup("java:global/Prac6CShoppingCartApp/ShoppingCart"); } catch (Exception ex) {
671System.out.println("Could not create cart bean." + ex.getMessage());
672}
673}
674%>
675<%
676if(request.getParameter("txtCustomerName") != null) { cart.initialize(request.getParameter("txtCustomerName"));
677} else { cart.initialize("Guest");
678}
679if (request.getParameter("btnRmvBook") != null) { String books[] = request.getParameterValues("chkBook"); if (books != null) { for (int i=0; i<books.length; i++) { cart.removeBook(books[i]);
680}
681}
682}
683if (request.getParameter("btnAddBook") != null) { String books[] = request.getParameterValues("chkBook"); if (books != null) {
684
685
686
687for (int i=0; i<books.length; i++) { cart.addBook(books[i]);
688}
689}
690}
691%>
692<html>
693<head>
694<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Shopping Cart</title>
695</head>
696<body style="background-color: pink;">
697<h1 style="text-align: center;">Books For Sale</h1><br>
698<form method="post">
699Customer Name: <input type="text" name="txtCustomerName" value=<%= request.getParameter("txtCustomerName")%> /><br>
700<b>Book Titles</b><br>
701<input type="checkbox" name="chkBook" value="Struts 2.0 For Beginners">Struts 2.0 For
702Beginners<br>
703<input type="checkbox" name="chkBook" value="Oracle 11g For Professionals">Oracle 11g
704For Professionals<br>
705<input type="checkbox" name="chkBook" value="Hibernate 3 For Beginners">Hibernate 3
706For Beginners<br>
707<input type="checkbox" name="chkBook" value="Java Persistence API In EJB 3 For
708Beginners">Java Persistence API In EJB 3 For Beginners<br>
709<br>
710<input type='submit' value='Add To My Basket' name='btnAddBook'>
711
712
713<input type='submit' value='Remove From My Basket' name='btnRmvBook'><br><br><br>
714<%
715if(cart!=null)
716{
717out.print("<b>Basket</b><br>");
718List<String> bookList = cart.getContents(); Iterator iterator = bookList.iterator(); while (iterator.hasNext())
719{
720String title = (String) iterator.next();
721%>
722<%= title %><br>
723<%
724}
725}
726%>
727</form>
728</body>
729</html> Step 4:
730Create database and database table
731Services -> create database -> cartdb ->select cartdb - > right click -> create table -> cart -> UserName varchar 35
732ItemName varchar 50 Finish.
733
734
735Step 5.
736Add mysql connector to the library under project tab.
737Step 6: build and run the application.
738OUTPUT:
739
7407a. Develop simple EJB application to demonstrate Servlet Hit count using Singleton Session Beans. Organization of file in Project Folder
741
742
743----------------------- CounterBean.java ------------------------------------ package counter.ejb; import javax.ejb.Singleton;
744
745@Singleton public class CounterBean { private int hits = 1;
746
747 // Increment and return the number of hits public int getHits() { return hits++;
748 }
749}
750------------------------------------ Count.java ------------------------------------ package mypack; import java.io.Serializable; import javax.ejb.EJB;
751import javax.enterprise.context.ConversationScoped; import javax.inject.Named; import counter.ejb.CounterBean;
752@Named("count") @ConversationScoped public class Count implements Serializable {
753 @EJB
754private CounterBean counterBean;
755
756private int hitCount;
757
758public Count() { this.hitCount = 0; }
759
760public int getHitCount() { hitCount = counterBean.getHits(); return hitCount;
761 }
762
763public void setHitCount(int newHits) { this.hitCount = newHits;
764 }
765}
766
767--------------------------------------------- HitCountPage.xhtml -----------------------
768<?xml version='1.0' encoding='UTF-8' ?>
769<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
770"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
771<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head>
772<title>Page Hit Counter Using Singleton Session Bean ~~~~ </title>
773</h:head>
774<h:body>
775<h1>Welcome to Hit Count Page</h1>
776 Page was hit #{count.hitCount} times
777</h:body>
778</html>
779
780Run this file to get the output
781
782
7838b. Develop a Guestbook Application Using JPA.
784
785JPA Practical using GuestBook
786
787Steps:
7881. Create Web Application with dedicated folder for Library
789
7902. Add Simple java class or Persitent Entity class from Database (code below GuestBook.java)
7913. Add SQL Connector Jar file to Library
7924. Create Persistence Unit using jdbc connection to MySQL database 5. Create the JSP files (codes given below)
7936. Run the Application.
794
795GuestBook.java ~~~~~~~~~~~~~
796package asif;
797import javax.persistence.*;
798
799@Entity
800@Table(name="GuestBook") public class GuestBook {
801 @Id
802 @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="VisitorNo", unique=true, updatable=false) private Integer visitorNo;
803 @Column(name="VisitorName") private String visitorName; @Column(name="Message") private String message;
804 @Column(name="MessageDate")
805 private String messageDate;
806
807 public GuestBook() {
808 }
809
810 public Integer getVisitorNo() {
811 return visitorNo;
812 }
813 public void setVisitorNo(Integer visitorNo) {
814 this.visitorNo = visitorNo;
815 }
816
817 public String getVisitorName() { return visitorName;
818 }
819 public void setVisitorName(String visitorName) { this.visitorName = visitorName;
820 }
821
822 public String getMessage() { return message;
823 }
824 public void setMessage(String message) {
825 this.message = message;
826 }
827
828 public String getMessageDate() { return messageDate;
829 }
830 public void setMessageDate(String messageDate) { this.messageDate = messageDate;
831 }
832}
833
834
835
836
837index.jsp
838~~~~~~~~~~
839<%@page contentType="text/html" pageEncoding="UTF-8"%>
840<!DOCTYPE html>
841<html>
842 <body style="background-color: pink;">
843 Sign the Guest Book
844 <form action="GuestBookView.jsp" method="post">
845 Visitor Name: <input name="guest" maxlength="25" size="50" />
846 Message: <textarea rows="5" cols="36" name="message"></textarea>
847 <input type="submit" name="btnSubmit" value="Submit" />
848 </form>
849 </body>
850</html>
851
852
853GuestBookView.jsp
854~~~~~~~~~~~~~~~~~
855<%@page import="java.util.*,javax.persistence.*,asif.GuestBook" %>
856<%@page contentType="text/html" pageEncoding="UTF-8"%>
857<!DOCTYPE html> <%!
858 private EntityManagerFactory entityManagerFactory; private EntityManager entityManager; private EntityTransaction entityTransaction;
859 List<GuestBook> guestbook; %>
860<%
861 entityManagerFactory = Persistence.createEntityManagerFactory("JPAApplication1PU");
862 entityManager = entityManagerFactory.createEntityManager();
863 String submit = request.getParameter("btnSubmit");
864 if(submit != null && ("Submit").equals(submit)) { try {
865 String guest = request.getParameter("guest");
866 String message = request.getParameter("message");
867 String messageDate = new java.util.Date().toString();
868
869 GuestBook gb = new GuestBook(); gb.setVisitorName(guest); gb.setMessage(message); gb.setMessageDate(messageDate);
870
871 entityTransaction = entityManager.getTransaction();
872 entityTransaction.begin(); entityManager.persist(gb); entityTransaction.commit(); } catch (RuntimeException e) {
873 if(entityTransaction != null) entityTransaction.rollback(); throw e;
874 }
875 response.sendRedirect("GuestBookView.jsp");
876 }
877 try {
878 guestbook = entityManager.createQuery("SELECT g from GuestBook g").getResultList();
879 } catch (RuntimeException e) { } entityManager.close();
880%>
881<html>
882 <body>
883 View the Guest Book <b>Click <a href="index.jsp"> here</a> to sign the guestbook.</b>
884
885 <hr />
886 <%
887 Iterator iterator = guestbook.iterator();
888 while (iterator.hasNext()) {
889 GuestBook obj = (GuestBook) iterator.next();
890 %>
891 On <%= obj.getMessageDate() %>,<br />
892 <b><%= obj.getVisitorName() %>:</b>
893 <%= obj.getMessage() %>
894 <br /><br />
895 <%
896 }
897 %>
898
899 </body>
900</html>
901
9028c. Create simple JPA application to store and retrieve Book details.<<similar to above example >> 9a. Develop a JPA Application to demonstrate use of ORM associations.
9039b. Develop a Hibernate application to store Feedback of Website Visitor in MySQL Database.
904
905create database feedbackdb; create table GuestBook(
906vno int PRIMARY KEY AUTO_INCREMENT,
907vname varchar(50), msg varchar(100), mdate varchar(50)
908)
909
910------------------------------- GuestBookBean.java ---------------------------------------------- package mypack; import javax.persistence.*;
911@Entity
912@Table(name="guestbook") public class GuestBookBean implements java.io.Serializable {
913 @Id
914 @GeneratedValue
915@Column(name="vno")
916private Integer visitorNo;
917@Column(name="vname") private String visitorName;
918@Column(name="msg") private String msg;
919@Column(name="mdate") private String msgDate; public GuestBookBean() { } public Integer getVisitorNo() { return visitorNo; } public String getVisitorName() { return visitorName; } public String getMsg() { return msg; } public String getMsgDate() { return msgDate; } public void setVisitorNo(Integer vn) { visitorNo = vn ; } public void setVisitorName(String vn) { visitorName = vn; } public void setMsg(String m) { msg = m; } public void setMsgDate(String md) { msgDate=md; } }
920Source packages new othersselect category Hibernate Hibernate Configuration Wizard
921
922<hibernate-configuration>
923<session-factory>
924<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
925<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
926<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/feedbackdb?zeroDateTimeBehavior=co nvertToNull</property>
927<property name="hibernate.connection.username">root</property>
928<property name="hibernate.connection.password">root</property>
929
930<mapping class="mypack.GuestBookBean" />
931</session-factory>
932</hibernate-configuration>
933
934-------------------------------- index.html----------------------------------------------------
935<h1>Website Feedback Form for google.con </h1>
936<form action="fb.jsp" >
937 Enter Your Name: <input type="text" name="name" ><br>
938 Enter Your Message : <textarea rows="10" cols="50" name="message" ></textarea><br>
939<input type="submit" value="Submit My FeedBack "> </form>
940-------------------------------- fb.jsp----------------------------------------------------
941<%@page import="org.hibernate.*, org.hibernate.cfg.*, mypack.*" %>
942<%! SessionFactory sf;
943org.hibernate.Session hibSession;
944%>
945<%
946sf = new Configuration().configure().buildSessionFactory(); hibSession = sf.openSession();
947Transaction tx = null;
948GuestBookBean gb = new GuestBookBean(); try{
949tx = hibSession.beginTransaction();
950String username = request.getParameter("name");
951String usermsg = request.getParameter("message"); String nowtime = ""+new java.util.Date(); gb.setVisitorName(username); gb.setMsg(usermsg); gb.setMsgDate(nowtime); hibSession.save(gb); tx.commit(); out.println("Thank You for your valuable feedback....");
952}catch(Exception e){out.println(e);} hibSession.close();
953%>