Session Tracking Example (Using URLRewriting and Hidden Form Fields)
Listing 1: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8.
<!-- [Link] --> <form action="login" method="post"><pre>UserName : <input type="text" name="uname"> Password : <input type="password" name="pass"> <input type="submit" value="LogIN"> </pre></form>
Listing 2: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
//[Link] package [Link]; import [Link].*; import [Link].*; import [Link].*; import [Link]; import [Link]; import [Link]; public class LoginServlet extends HttpServlet { private UserDAOI udao; public void init(){ udao=new UserDAO(); } public void doPost( HttpServletRequest req, HttpServletResponse res) throws Servlet Exception, IOException {
16. 17. String uname=[Link]("uname"); 18. String pass=[Link]("pass"); 19. 20. if ([Link](uname, pass)){ 21. RequestDispatcher rd= [Link]("userHome"); 22. [Link](req, res); 23. }else{ 24. [Link]("text/html"); 25. [Link]().println("Invalid User Login Details"); 26. RequestDispatcher rd= [Link]("[Link]"); 27. [Link](req, res); 28. }//else 29. }//doPost 30. }//class 31. Listing 3: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5.
//[Link] package [Link]; import [Link].*; import [Link].*; import [Link].*;
6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
import [Link]; import [Link]; import [Link]; public class UserHomeServlet extends HttpServlet { public void service( HttpServletRequest req, HttpServletResponse res) throws Servle tException, IOException { [Link]("text/html"); PrintWriter out=[Link](); String uname=[Link]("uname"); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); //Menu & body [Link](""); [Link](""); [Link](""); [Link](""); //Footer [Link](""); [Link](""); [Link]("<table border="1" width="100%" height="100%"><tbody><tr><td colspa n="2" align="center">"); [Link]("Session Tracking First Example"); [Link]("</td></tr><tr><td width="20%">"); //Menu [Link]("<a href="userHome?uname="+uname+"">Home</a><br>"); [Link]("<a href="viewProfile?uname="+uname+"">View Profile</a><br>"); [Link]("<a href="logout?uname="+uname+"">Logout</a>"); [Link]("</td><td>"); //Body [Link]("Welcome, "+uname); [Link]("</td></tr><tr><td colspan="2" align="center">"); [Link]("<center><i>Copyrights 2012-15</i></center>"); [Link]("</td></tr></tbody></table>"); [Link](""); } }
Listing 4: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
//[Link] package [Link]; import [Link].*; import [Link].*; import [Link].*; import [Link]; import [Link]; import [Link]; public class ViewProfileServlet extends HttpServlet {
11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
private UserDAOI udao; public void init(){ udao=new UserDAO(); } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletEx ception, IOException { [Link]("text/html"); PrintWriter out=[Link](); String uname=[Link]("uname"); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); //Menu & body [Link](""); [Link](""); [Link](""); [Link](""); //Footer [Link](""); [Link](""); [Link]("<table border="1" width="100%" height="100%"><tbody><tr><td colspa n="2" align="center">"); [Link]("Session Tracking First Example"); [Link]("</td></tr><tr><td width="20%">"); //Menu [Link]("<a href="userHome?uname="+uname+"">Home</a><br>"); [Link]("<a href="viewProfile?uname="+uname+"">View Profile</a><br>"); [Link]("<a href="logout?uname="+uname+"">Logout</a>"); [Link]("</td><td>"); //Body [Link]("Welcome, "+uname+"<br>"); UserDetails ud=[Link](uname); [Link]("<form action="updateProfile" method="post">"); [Link]("<input type="hidden" name="uname" value=""+uname+"">"); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link]("");
70. [Link]("<table border="0" align="center" width="100%"><tbody><tr><td>FirstName</td ><td><input type="text" name="fname" value=""+[Link]+""></td></tr><tr><td>LastName</t d><td><input type="text" name="lname" value=""+[Link]+""></td></tr><tr><td>Email</td> <td><input type="text" name="email" value=""+[Link]+""></td></tr><tr><td>Mobile</td>< td><input type="text" name="mobile" value=""+[Link]+""></td></tr><tr><td colspan="2" ><input type="submit" value="Update"></td></tr></tbody></table>"); 71. [Link]("</form>"); 72. [Link]("</td></tr><tr><td colspan="2" align="center">"); 73. [Link]("<center><i>Copyrights 2012-15</i></center>"); 74. [Link]("</td></tr></tbody></table>"); 75. [Link](""); 76. 77. 78. } 79. } 80. Listing 5: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
//[Link] package [Link]; import [Link].*; import [Link].*; import [Link].*; import [Link]; import [Link]; import [Link]; public class UpdateProfileServlet extends HttpServlet { private UserDAOI udao; public void init(){ udao=new UserDAO(); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletE xception, IOException { [Link]("text/html"); PrintWriter out=[Link](); String uname=[Link]("uname"); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); [Link](""); //Menu & body [Link](""); [Link](""); [Link](""); [Link](""); //Footer [Link](""); [Link](""); [Link]("<table border="1" width="100%" height="100%"><tbody><tr><td colspa n="2" align="center">");
40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
[Link]("Session Tracking First Example"); [Link]("</td></tr><tr><td width="20%">"); //Menu [Link]("<a href="userHome?uname="+uname+"">Home</a><br>"); [Link]("<a href="viewProfile?uname="+uname+"">View Profile</a><br>"); [Link]("<a href="logout?uname="+uname+"">Logout</a>"); [Link]("</td><td>"); //Body [Link]("Welcome, "+uname+"<br>"); UserDetails ud=new UserDetails(); [Link]=[Link]("uname"); [Link]=[Link]("fname"); [Link]=[Link]("lname"); [Link]=[Link]("email"); [Link]=[Link]("mobile"); [Link](ud); [Link]("User Details Updated Successfully"); [Link]("</td></tr><tr><td colspan="2" align="center">"); [Link]("<center><i>Copyrights 2012-15</i></center>"); [Link]("</td></tr></tbody></table>"); [Link]("");
} }
Listing 6: [Link]
view plaincopy to clipboardprint
1. package [Link]; 2. 3. public class UserDetails { 4. public String uname, fname, lname, email, mobile; 5. } 6. Listing 6: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
//[Link] package [Link]; import [Link]; public interface UserDAOI { boolean validate(String uname, String pass); UserDetails getUserDetails(String uname); void updateUserDetails(UserDetails ud); }
Listing 7: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4.
//[Link] package [Link]; import [Link]; import [Link].*;
5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
import [Link]; import [Link]; import [Link]; public class UserDAO implements UserDAOI{ public boolean validate(String uname, String pass){ Connection con=null; try { String sql="select count(uname) from userdetails where uname=? and pass=?"; con=[Link](); //Step 1 PreparedStatement ps= [Link](sql); [Link](1, uname); [Link](2, pass); ResultSet rs=[Link](); [Link](); return ([Link](1)==1); }catch (Exception ex){} finally{ try{[Link]();}catch(Exception ex){}} return false; } public UserDetails getUserDetails(String uname){ Connection con=null; try { String sql="select * from userdetails where uname=?"; con=[Link](); //Step 1 PreparedStatement ps= [Link](sql); [Link](1, uname); ResultSet rs=[Link](); [Link](); UserDetails ud=new UserDetails(); [Link]=[Link](1); [Link]=[Link](3); [Link]=[Link](4); [Link]=[Link](5); [Link]=[Link](6); return ud; }catch (Exception ex){} finally{ try{[Link]();}catch(Exception ex){}} return null; } public void updateUserDetails(UserDetails ud){ Connection con=null; try { String sql="update userdetails set fname=?, lname=?, email=?, mobile=? where un ame=?"; con=[Link](); //Step 1 PreparedStatement ps= [Link](sql); [Link](1, [Link](2, [Link](3, [Link](4, [Link]); [Link]); [Link]); [Link]);
65. [Link](5, [Link]); 66. 67. [Link](); 68. }catch (Exception ex){} 69. finally{ try{[Link]();}catch(Exception ex){}} 70. } 71. } 72. Listing 8: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
package [Link]; import [Link].*; import [Link].*; import [Link].*; public class STConnectionFactory { private static String url; private static Properties p; private static Driver d; static{ try{ InputStream fis= [Link]().getResourceAsSt ream("[Link]");
14. 15. p=new Properties(); 16. [Link](fis); 17. 18. Class c=[Link]( [Link]("driverClassName")); 19. 20. d=(Driver)[Link](); 21. 22. url= [Link]("[Link]"); 23. }catch(Exception e){ 24. [Link](); 25. throw new RuntimeException( "Error in loading STConnectionFactory"); 26. }//catch 27. }//static block 28. public static Connection getConnection() throws SQLException { 29. return [Link](url, p); 30. }//getConnection 31. }//class 32. Listing 8: [Link]
view plaincopy to clipboardprint
1. 2. 3. 4. 5. 6.
#[Link] driverClassName=[Link] [Link]=jdbc:oracle:thin:@localhost:1521:XE user=system password=manager
Listing 9: [Link]
view plaincopy to clipboardprint
1. <!-- [Link] -->
2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
<web-app> <servlet> <servlet-name>ls</servlet-name> <servlet-class> [Link] </servlet-class> </servlet> <servlet> <servlet-name>uhs</servlet-name> <servlet-class> [Link] </servlet-class> </servlet> <servlet> <servlet-name>vps</servlet-name> <servlet-class> [Link] </servletclass> </servlet> <servlet> <servlet-name>ups</servlet-name> <servlet-class> [Link] </servletclass> </servlet> <servlet-mapping> <servlet-name>ls</servlet-name> <url-pattern> /login</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>uhs</servlet-name> <url-pattern> /userHome</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>vps</servlet-name> <url-pattern> /viewProfile</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ups</servlet-name> <url-pattern>/updateProfile</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/[Link]</welcome-file> </welcome-file-list> </web-app>