1

I have a html file with the following link:

  <li><a class="active" href="PersonalInfoOutPut.java">View Personal Information</a></li>

When someone clicks on "View Personal Information", I want to redirect to a servlet, which is why I put:

href="PersonalInfoOutPut.java

But this is not working. It is returning:

HTTP Status 404 - /Payroll/PersonalInfoOutput.java

Here is PersonalInfoOutput.java servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class PersonalInfoOutput extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        HttpSession session = request.getSession(false);
        String employeeid = "";

        if (session != null) {
            employeeid = (String) session.getAttribute("employeeid");
        }

        boolean st = false;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", "");
            PreparedStatement ps = con.prepareStatement(
                    "select employeeID,  FirstName, LastName, Admin, DOB, Address, Email, HourlyRate, Gender, ALeaveBalance, SLeaveBalance, ActiveStatus, Role, BSB, BankName, AccNumber, SuperNumber, SuperCompany from payroll_system.employee_info where employeeID = ?");
            ps.setString(1, employeeid);
            ResultSet rs = ps.executeQuery();
            st = rs.next();
            if (st) {
                boolean adminTrue = rs.getBoolean("Admin");
                boolean activeTrue = rs.getBoolean("ActiveStatus");

                out.println("<html>");
                out.println("<head>");
                out.println("<style>");
                out.println(
                        "table { border-collapse: collapse; width: 50%; } th, td { text-align: left; padding: 8px; } tr:nth-child(even){background-color: #f2f2f2}");
                out.println("tr:hover {background-color: #e2f4ff;}");
                out.println("</style>");
                out.println("<link rel = stylesheet type = text/css href = main.css>");
                out.println("<title>Personal Information</title>");
                out.print("</head>");

                out.println("<body>");

                out.println("<h1>Personal Information</h1>");
                out.println("<table border =1>");

                out.println("<tr>");
                out.println("<td>Name</td>");
                out.println("<td>" + rs.getString("FirstName") + " " + rs.getString("LastName") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Employee ID</td>");
                out.println("<td>" + rs.getString("employeeID") + "</td>");
                out.println("</tr>");

                if (adminTrue) {
                    out.println("<tr>");
                    out.println("<td>Admin</td>");
                    out.println("<td>Yes</td>");
                    out.println("</tr>");
                } else {
                    out.println("<tr>");
                    out.println("<td>Admin</td>");
                    out.println("<td>No</td>");
                    out.println("</tr>");
                }

                out.println("<tr>");
                out.println("<td>Date Of Birth</td>");
                out.println("<td>" + rs.getString("DOB") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Residential Address</td>");
                out.println("<td>" + rs.getString("Address") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Email</td>");
                out.println("<td>" + rs.getString("Email") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Hourly Income</td>");
                out.println("<td>" + "$" + rs.getString("HourlyRate") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Gender</td>");
                out.println("<td>" + rs.getString("Gender") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Annual Leave Balance</td>");
                out.println("<td>" + rs.getString("ALeaveBalance") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Sick Leave Balance</td>");
                out.println("<td>" + rs.getString("SLeaveBalance") + "</td>");
                out.println("</tr>");

                if (activeTrue) {
                    out.println("<tr>");
                    out.println("<td>Currently Active</td>");
                    out.println("<td>Yes</td>");
                    out.println("</tr>");
                } else {
                    out.println("<tr>");
                    out.println("<td>Currently Active</td>");
                    out.println("<td>No</td>");
                    out.println("</tr>");
                }

                out.println("<tr>");
                out.println("<td>Role</td>");
                out.println("<td>" + rs.getString("Role") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>BSB</td>");
                out.println("<td>" + rs.getString("BSB") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Bank Name</td>");
                out.println("<td>" + rs.getString("BankName") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Bank Account Number</td>");
                out.println("<td>" + rs.getString("AccNumber") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Superannuation Company</td>");
                out.println("<td>" + rs.getString("SuperCompany") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Superannuation Number</td>");
                out.println("<td>" + rs.getString("SuperNumber") + "</td>");
                out.println("</tr>");

                out.println("</table>");
                out.println("</body>");
                out.println("</html>");

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        out.close();
    }
}
Programmer
  • 1,266
  • 5
  • 23
  • 44
  • 1
    [Call a servlet on click of hyperlink](http://stackoverflow.com/questions/1907482/call-a-servlet-on-click-of-hyperlink) ? – Perdomoff Jan 16 '16 at 04:04

2 Answers2

0

Long and winding road waits for you.. First of all, if you want to call your server, you should have some request mapping in your method, for example: /personal/infooutput/, then you need to pass this link to your html code:

<li><a class="active" href="/personal/infooutput/">View Personal Information</a></li>

or call the servlet:

<li><a class="active" href="PersonalInfoOutPut">View Personal Information</a></li>

Currently you do not have HTTP GET method, just HTTP POST, you need to add that too. HTTPS Status 404 means that server didn't find your mapping/link. Look here for some tutorial: http://tutorials.jenkov.com/java-servlets/index.html

m.aibin
  • 3,528
  • 4
  • 28
  • 47
0
<a href="updateClient.rec" id="sample_editable_1_new" class="btn green">
      New Something <i class="fa fa-plus"></i>
</a>

The updateClient.rec it's a rout servlet, then on your class Servlet:

String accion = request.getServletPath();
if ("/updateClient.rec".equals(accion)) {
            PrintWriter out = response.getWriter();
            request.getRequestDispatcher("solicitudWizard.jsp").forward(request, response);
            out.close();

} If you don't whant to redirect to an jsp, you can redirect to a method on your same class Servlet like this:

if ("/updateClient.rec".equals(accion)) {
            PrintWriter out = response.getWriter();
            String msg = this.getUpdateClint(request, response); //This redirect to a method of in the same class

private String getUpdateClint(HttpServletRequest request, HttpServletResponse response) {
    Integer pkClient = new Integer((String) request.getParameter("pkClient")); //Parameters of servlet
    //Other action 
    ClientPd cliPd = new ClientPd();
    String msg = null;
    msg = cliPd.getClient(pkClient);

    System.out.println(msg);
    return msg;
}

Regards.