Friday, 29 April 2016

Header







Setting Header:

Benefit:
History Does not maintained into the browser thus we can't reach to the user page even after logged out BY pressing backslash or going back to the browser.
MOST common is below:

response.setHeader("Cache-Control","no-store, no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "-1");


Setting Timeout To session:


maintain follwing in WEB.XML file:

Way 1

 time in minutes


Way 2

In Servlet:

Session.getCreationTime();

Session.getLastAccessTime();
session.setMAxInactiveInternal(time in millisecond);




Setting permanent Cookie IN Browser


index.html

LoginServlet.java

package cookies.demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
   
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
Cookie c = null;
   String uname=request.getParameter("username");
   String color=request.getParameter("color");
boolean iscookie=false;

   if(uname.equals("inayat"))
   {
HttpSession session=request.getSession(true);
session.setAttribute("username", uname);

Cookie ColorArray[]=request.getCookies();

if(ColorArray!=null&&ColorArray.length>0){             ///if cookie available alreadty
for(Cookie cookie:ColorArray){
if(cookie.getName().equals("favcolor")){
iscookie=true;
break;
}
}
}

if(iscookie==true){

Cookie cookie=new Cookie("favcolor",color);     // Set if not available
cookie.setMaxAge(365*24*60*60);
   response.addCookie(cookie);
   
}
     out.println("vist your page")
        response.sendRedirect("welcome");
   



}else{
     out.println("wrong id...");
  }


}

}


Welcome.java
package cookies.demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


@WebServlet("/welcome")
public class welcome extends HttpServlet {
private static final long serialVersionUID = 1L;

     
 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String color=null;
HttpSession session=request.getSession(false);
 String name=(String) session.getAttribute("username");
  PrintWriter out=response.getWriter();
 out.print("LoggedIn:");
 out.println(name);

Cookie[] cookies=request.getCookies();
for(Cookie cookie:cookies){
if(cookie.getName().equals("favcolor")){
color=cookie.getValue();                           //  Fetching inserted value in Cookie Value
break;
}

}


out.println(" &nbsp");
PrintWriter out1=response.getWriter();
out.println("vist your page");
}
}


















07:45

session






Servlet using Eclipse and managing session:

The HttpServletRequest interface provides two methods to get the object of HttpSession:
  1. public HttpSession getSession()
  2. public HttpSession getSession(boolean create)

Commonly used methods of HttpSession interface

  1. public String getId():
  2. public long getCreationTime():
  3. public long getLastAccessedTime()
  4. public void invalidate()


example:


file1:index.html








file 2:Login.java(servlet)
package com.session.Demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


@WebServlet("/Login")
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
   
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
if(password.equals("admin")){
HttpSession session=request.getSession(true);
session.setAttribute("uname",username);
//response.sendRedirect("welcome");
PrintWriter out=response.getWriter();
out.println("welcome"+username);
out.println("

>visit your page

");
out.close();
}
else{
PrintWriter out=response.getWriter();
out.println("Sorry invalid username or password");
out.close();
}
}
}


File3:Welcome.java(Servlet)
package com.session.Demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


@WebServlet("/welcome")
public class Welcome extends HttpServlet {
private static final long serialVersionUID = 1L;
   
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
// HttpSession session=request.getSession(false);
   // String id= (String) session.getAttribute("uname");
String id=(String) request.getSession().getAttribute("uname");
    
    
    PrintWriter out=response.getWriter();
    out.println("welcome:"+id);
     
}

}





07:45

First Servlet




Crating First Servlet Application(Using Notepad)

Server-Tomcat Apache

Step1:Install jar file of Tomcat apache and save it anywhere.
Step2:Extract using winrar .
Step3:SetUp system Environment Variables:

a)var name-CATALINA_HOME
   value-Address of Tomcat apache before bin folder.
b)var name-JAVA HOME
   value-Address of jdk
c)var name-JRE_HOME
   value-Address of jre
d) var name-CLASSPATH
   value-address of servlet-api(eg. D:\apache-tomcat-9.0.0.M4\lib\servlet-api.jar)

Check if apache works???
Goto-->tomcat-->bin-->shift+rightclick-->open command window here-->type startup.bat-->see(startup in x seconds in new window)

Step4:create file structure as follow:

Step5:create a .java file using notepad and edit it as follow

///servlet class must be public
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class FirstServlet extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{

PrintWriter out=response.getWriter();   //provide location where to write
out.println("hello");
}

}

step 6:Save it.
Step7:compile it with follw to save its .class file to classes folder.
javac -d ../WEB-INF/classes FirstServlet.java.

CODE WILL COMPILE SUCCESSFULLY AND THE >CLASS FILE SAVE TO classes FOLDER.

Step 8:Create web.xml file as follow.

Save it in WEB-INF folder.

Step 9:deploy the servlet project
Copy the project and paste it under WEBAPPS folder
Step 9:start the server
Step 10:type into browser  to run as:
http://hostname:portno/projectfile name/urlpatternofservlet





07:44

servlet interface method


Servlet Interface MEthods:
See What is-
1.init() 
2.service()
3.destroy()  

Main code to understand:


import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class InitDestroDemo
 */
@WebServlet("/InitDestroDemo")
public class InitDestroDemo extends HttpServlet {
private static final long serialVersionUID = 1L;



public void init(){

System.out.println("It is under Init Method");
}



@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
       System.out.println("it is Service");
}

  
  
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("It is under doGet");


}

@Override
public void destroy() {
System.out.println("It is under destroy method");
}

}




1.init()

it loads when server starts

2.Service()



call each time servlet loads....
use service method in place ofdoPost and doGet that is not method specific and no fear of 405 error.


3.Destroy







06:28