In this chapter we discuss about filters for beginners , so many people develop small projects. For example user log in. In this project develop normally and develop some modules like log in, logout and etc..
whenever user click log out show some message like logout successfully log in again but after click log out when you click back on browser it going to show user login sucees page whenever you aren't log in again. I am resolve this problem Using Filters
logincheckfilter.java
---------------------------
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class logincheckfilter implements Filter
{
FilterConfig config;
public void init(FilterConfig config)
{
this.config=config;
}
public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain)throws IOException,ServletException
{
System.out.println("dofiltr()");
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)res;
HttpSession session=request.getSession(false);
if(session!=null)
{
chain.doFilter(request,response);
}
else
{
try{
String uname=request.getParameter("uname");
String pwd=request.getParameter("pwd");
logincheckjb lcjb=new logincheckjb();
boolean isAvailable=lcjb.checkUser(uname,pwd);
if(isAvailable)
{
session=request.getSession(true);
chain.doFilter(request,response);
}
else
{
RequestDispatcher rd=request.getRequestDispatcher("./login.jsp");
rd.forward(request,response);
}
}
catch(Exception e)
{
}
}
}
public void destroy()
{
}
}
logincheckjavabean
-------------------
import java.sql.*;
class logincheckjb
{
boolean checkUser(String uname,String pwd)throws SQLException
{
boolean flag=false;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
String query="select * from user where uname=? and pwd=?";
PreparedStatement st = conn.prepareStatement(query);
System.out.println(query);
st.setString(1,uname);
st.setString(2,pwd);
ResultSet rs=st.executeQuery();
if(rs.next())
{
flag=true;
}
else
{
}
}
catch(Exception e)
{
System.out.println(e.printStackTrace);
}
return flag;
}
}
and after we can configure in web.xml
login.jsp
-----------------
<%@ page session="false" %>
logout.jsp
---------------------
<%@ page session="false" %>
logout successfully
login again
<%
HttpSession session=request.getSession(false);
if(session!=null)
{
session.invalidate();
}
%>
successfully working ......
whenever user click log out show some message like logout successfully log in again but after click log out when you click back on browser it going to show user login sucees page whenever you aren't log in again. I am resolve this problem Using Filters
logincheckfilter.java
---------------------------
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class logincheckfilter implements Filter
{
FilterConfig config;
public void init(FilterConfig config)
{
this.config=config;
}
public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain)throws IOException,ServletException
{
System.out.println("dofiltr()");
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)res;
HttpSession session=request.getSession(false);
if(session!=null)
{
chain.doFilter(request,response);
}
else
{
try{
String uname=request.getParameter("uname");
String pwd=request.getParameter("pwd");
logincheckjb lcjb=new logincheckjb();
boolean isAvailable=lcjb.checkUser(uname,pwd);
if(isAvailable)
{
session=request.getSession(true);
chain.doFilter(request,response);
}
else
{
RequestDispatcher rd=request.getRequestDispatcher("./login.jsp");
rd.forward(request,response);
}
}
catch(Exception e)
{
}
}
}
public void destroy()
{
}
}
logincheckjavabean
-------------------
import java.sql.*;
class logincheckjb
{
boolean checkUser(String uname,String pwd)throws SQLException
{
boolean flag=false;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
String query="select * from user where uname=? and pwd=?";
PreparedStatement st = conn.prepareStatement(query);
System.out.println(query);
st.setString(1,uname);
st.setString(2,pwd);
ResultSet rs=st.executeQuery();
if(rs.next())
{
flag=true;
}
else
{
}
}
catch(Exception e)
{
System.out.println(e.printStackTrace);
}
return flag;
}
}
and after we can configure in web.xml
login.jsp
-----------------
<%@ page session="false" %>
logout.jsp
---------------------
<%@ page session="false" %>
logout successfully
login again
<%
HttpSession session=request.getSession(false);
if(session!=null)
{
session.invalidate();
}
%>
successfully working ......
Comments
Post a Comment