Update a database through a portlet
susitha Apr 6, 2006 6:58 AMHi!
I am using JBServer-4.0.2 and JBPortal-2.0. I am going to update a table in a Oracle database. I am calling a jsp page to a portlet and thruogh that jsp file I am going to call a servlet to update the database.
NewStudentDetailsServlet.java
package classes;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class NewStudentDetailsServlet extends HttpServlet {
Connection con=null;
PreparedStatement stmt=null;
public void init(ServletConfig config) throws ServletException {
}
public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
PrintWriter out=res.getWriter();
res.setContentType("text/html");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@cmbrnd5:1521:sedna","ip_jpf","ip_jpf");
stmt=con.prepareStatement("INSERT INTO PERA VALUES(?,?,?)");
stmt.clearParameters();
stmt.setString(1,req.getParameter("name"));
stmt.setString(2,req.getParameter("address"));
stmt.setString(3,req.getParameter("regno"));
stmt.executeUpdate();
out.println("Thank you!");
}
catch(Exception e){
e.printStackTrace();
}
}
public void destroy()
{
try {
if(con!=null)
con.close();
}
catch(Exception e) {}
}
}
NewStudentPortlet.java
package classes.newstudent;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.UnavailableException;
import javax.portlet.*;
import java.io.IOException;
public class NewStudentPortlet extends GenericPortlet
{
private static final String JSP_PATH = "/WEB-INF/jsp";
public void init()
{
}
protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException, UnavailableException
{
res.setContentType("text/html");
PortletRequestDispatcher prd = this.getPortletContext().getRequestDispatcher(JSP_PATH + "/index.jsp");
prd.include(req, res);
}
public void processAction(ActionRequest aRequest, ActionResponse aResponse) throws PortletException, PortletSecurityException, IOException
{}
public void render(RenderRequest req, RenderResponse res) throws PortletException, IOException
{
res.setTitle(getTitle(req));
doDispatch(req, res);
}
}index.jsp
<html> <body bgcolor="#FFDDCC"> <form name="New" method="GET" action="/servlet/NewStudentDetailsServlet"> <align="center"> <BR> <table> <tr> <TH><B><h2>Enter your details</h2></b></TH> </TR><TR> <td><b>NAME</b></td> <td><input type=text name="name"></td> </tr><tr> <td><b>ADDRESS</b></td> <td><TEXTAREA COLS=30 ROWS=4 NAME="address"></textarea></td> </tr><tr> <td><b>REG.NO</b></td> <TD><input type=text name="regno"></TD> </tr><tr> <TD><input type=submit value="SUBMIT"></TD> <TD><input type=reset value="CANCEL"></TD> </TR> </TABLE> </align> </form> </body> </html>
web.xml
<?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>NewStudentDetailsServlet</servlet-name> <servlet-class>NewStudentDetailsServlet</servlet-class> </servlet> <servlet-mapping> <url-pattern>/servlet/NewStudentDetailsServlet</url-pattern> <servlet-name>NewStudentDetailsServlet</servlet-name> </servlet-mapping> </web-app>
The jsp is loading correctly to the portlet. But after I click submit it gives 404- page not found. Can somebody tell me what is the error...
Thanx...