MVC な Java WEBアプリのサンプル

hoge.jsp

<%@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>