Click here to Skip to main content
15,884,425 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hey,
I have an assignment of creating a login page.if the username and password is dolly it should redirect me to another servlet page telling valid user else it should show invalid user.
This is what i have done.The problem is i do not know how to redirect it to the other page.
It is redirecting to the other page but i want whether a valid or invalid user to be
displayed over there.
Please help me out.

Java
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "NewServlet", urlPatterns = {"/NewServlet"})

public class NewServlet extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<form action=http://localhost:9999/WebApplication4/NewServlet1 method=GET>");
            out.println("Login Form");
            out.println("<br>");
            out.println("Enter Username:<input type=text name=t1>");
            out.println("<br>");
            out.println("Enter password:<input type=password name=t2>");
            out.println("<br>");
            out.println("<input type=submit  value=submit");
             out.println("<br>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        
        PrintWriter pw=response.getWriter();
          String user=request.getParameter("t1")  ;
       
              String pass=request.getParameter("t2");
          if(user.equals("dolly") && pass.equals("dolly"))
             pw.println("Valid user");
             else
            pw.println("Invalid user");


              
          
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        
          
    }
    public String getServletInfo() {
        return "Short description";
    }
}


[torsten]added code block[/torsten]
Posted
Updated 28-Dec-12 8:23am
v2
Comments
Member 8512273 28-Dec-12 14:13pm    
I have used annotations in the above code.So there is no need of web.xml

1 solution

Shouldn't the server validate the name & password? I guess so.

So let the server answer with a suitable return value:
In case of true / "pass" you should grant access, in case of false / "no pass" you should present another page.


EDIT:

So you do NOT do Server-Requests. Then you should also not use a HTTPServlet.

Java
public class SimpleServlet extends GenericServlet {

 public void service(ServletRequest request, ServletResponse response)
        throws ServletException, IOException {

    // figure values from client's request
    String strParam = request.getParameter("param");
    String strNick  = request.getParamter("nick");
    String strPW  = request.getParamter("pw");

    if("login".equals(strParam) ){ // ask first, cause strNick & strPW could be NULL
        // present login
    }
    else if("dolly".equals(strNick) && "dolly".equals(strPW) ){ // login values fine
        response.getWriter().write("<html><body>Login granted</body></html>");
    }
    else { // login not granted
        response.getWriter().write("<html><body>OOOPS!</body></html>");
    }
  }
}


You simply present login (as you do in your code now) and call an internal function on click "login" to check the static nick/pw.
After that, you present
 
Share this answer
 
v2
Comments
Member 8512273 28-Dec-12 14:45pm    
But over here we are taking static values of username and password.that is if the username is dolly and if the password is dolly it is valid else it is not.Whether it is valid or invalid should be printed in a seperate servlet.
TorstenH. 28-Dec-12 14:53pm    
Then I don't even know why you are using a HTTPServlet with the methods doGet and doPost in there.
classic mislead selection of technique?

I will update the answer and show you a way to do it proper.
Here we go, please check out the "Edit"

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900