MVC な Java WEBアプリのサンプル
<%@page contentType="text/html; charset=Windows-31J"%> <jsp:useBean id="hogeBean" class="hoge.HogeBean" scope="request"/> <html> <body> <form action="hoge" method="post"> <input name="dat1"/> <input type="submit"/> </form> <p>parameter is <jsp:getProperty name="hogeBean" property="dat1"/></p> <p>result is <jsp:getProperty name="hogeBean" property="result"/></p> </body> </html>
HogeServlet.java
package hoge; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HogeServlet extends HttpServlet{ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ try { HogeBean hogeBean = new HogeBean(); hogeBean.exeStoredFunction(request.getParameter("dat1")); request.setAttribute("hogeBean",hogeBean); getServletContext().getRequestDispatcher("/hoge.jsp").forward(request, response); } catch (Exception e) { throw new IllegalStateException(e); } } }
HogeBean.java
package hoge; import java.io.*; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; public class HogeBean implements Serializable{ private String result; private String dat1; public HogeBean(){ result = "none"; dat1 = "none"; } private static Connection getConnection() { try { Class.forName("oracle.jdbc.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@xx.xx.xx.xx:1521:SID", "user", "pass"); return con; } catch (Exception e) { throw new IllegalStateException(e); } } public void exeStoredFunction(String dat1) throws Exception{ Connection con = getConnection(); CallableStatement objSql = con.prepareCall("{? = call teststad_a (?,?,?)}"); objSql.registerOutParameter(1, java.sql.Types.VARCHAR); objSql.setString(2,dat1); objSql.setString(3,"dat2"); objSql.setString(4,"dat3"); objSql.execute(); con.close(); this.dat1 = dat1; this.result = objSql.getString(1); } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String getDat1() { return dat1; } public void setDat1(String dat1) { this.dat1 = dat1; } }
WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>hoge</servlet-name> <servlet-class>hoge.HogeServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hoge</servlet-name> <url-pattern>/hoge</url-pattern> </servlet-mapping> </web-app>