質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

1400閲覧

MVC pattern

acesu

総合スコア8

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/03/07 05:12

現在作っているプロジェクトの中でこんな感じなクラスがあります。
MVCフォーマットにしたいのですが、どの部分をControllerに入れるかとかわからないので、
教えてもらえれば助かります。

package servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

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;

import database.DbContract;

import java.sql.Statement;

/**

  • Servlet implementation class AddUser

*/
@WebServlet(description = "Create new user Servlet", urlPatterns = { "/Createuser.do" })
public class AddUser extends HttpServlet {

private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fname = request.getParameter("firstname"); String lname = request.getParameter("lastname"); String country = request.getParameter("country"); // TODO Auto-generated method stub try { Class.forName("org.postgresql.Driver"); // connecting to database // Connection c = DriverManager.getConnection( DbContract.HOST+DbContract.DB_NAME, DbContract.USERNAME, DbContract.PASSWORD); System.out.println("DB connected"); c.setAutoCommit(false); Statement stmt = null; // Inserting created data into Database // stmt = c.createStatement(); String sql = "INSERT INTO users (firstname,lastname,country) " + "VALUES ('"+fname+"', '"+lname+"','"+country+"');"; stmt.executeUpdate(sql); // Searching from database ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE user_id =12"); while ( rs.next() ) { int id = rs.getInt("user_id"); String dbfname = rs.getString("firstname"); String dblname = rs.getString("lastname"); String dbcountry = rs.getString("country"); // printing data System.out.println("ID = " + id); System.out.println("FIRST NAME =" + dbfname); System.out.println("LAST NAME =" + dblname); System.out.println("COUNTRY =" + dbcountry); System.out.println(); } stmt.close(); c.commit(); c.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } RequestDispatcher view = request.getRequestDispatcher("useradd.jsp"); view.forward(request, response); }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご要望の回答ではないことを先にお断りしておきます。
質問内容を拝見したうえで、懸念が有ります。ご自身の書いたコードのどの部分がControlか質問されていることに当たって「ここがContlrolに当たります」との回答を得たとしても、以降の作業でMVCモデルとしてアプリケーションを完成することが出来るのかという懸念です。
MVCモデルというのはアプリケーション構成を設計段階で分析し、Model/View/Controlの機能に分けて設計するのが目的で、出来上がったソースをMVCに分類することが目的では有りません。まずはModel、View、Controlがそれぞれ何なのか突き詰めて理解することが先決かと思います。
難しいことを書いてしまったかもしれませんが、参考書などでシンプルな構成のアプリでどのようにMVCを設計するのか学習されることをお勧めしたいと思います。そのうえで判らない点が有りましたら質問されてはどうでしょうか。

投稿2016/03/09 15:41

BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

1月経ってしまったので回答してもご覧いただけないかもしれませんが、回答を記します。

try - catch で囲まれている部分が Model にあたります。
それを囲む request.getParameter と request.getRequestDispatcher, view.forward が Controller にあたります。
useradd.jsp が View にあたります。

MVCモデルにするには、try - catch の部分を別のクラスに切り出すことをすれば良いと考えます。

BlueMoonさんの指摘には同意します。AddUserクラスということはUpdateUserやDeleteUserもあると推測します。アプリケーションを完成させるにはMVCモデルの考え方、設計というもの知識は必須です。
MVCモデルにはM,V,Cでそれぞれ役割が分けられています。この点をもう一度学習して、今回の回答をヒントにUpdateUserやDeleteUserに取り組むとMVCの理解が進むと思います。
みんな最初は「こうかな?」「ちがった、こうだったか」というのを繰り返し、その末に「そういうことか!」となります。是非取り組んでください。

投稿2016/04/23 06:55

Hiroshi-Aoki

総合スコア804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問