フロントシステム4:ページ表示の表示:コントローラークラスの作成;(ページングモジュールのコントローラー部分)

目次

I.概要

2:コントローラーパーツを作成します

その結果、コントローラーパーツとモデルパーツが開発されます。次のタスクは、ビューで値を取得してレンダリングすることです。


I.概要

この部分は、主にMVCアーキテクチャのコントローラーレイヤー部分です。

      (1) MVCコントローラーは、前と次を接続する役割を果たします。これは、パラメーターを受け入れ、ビジネスロジックを呼び出し、処理の結果を返すために使用されます。

     (2) MVCアーキテクチャパターン。JavaWebでは、サーブレットは通常コントローラーとして使用されます。

      (3) Java開発では、コントローラー(Controller)は通常*** Controllerのクラスです。


2:コントローラーパーツを作成します

コントローラパッケージの下に、サーブレットクラスPaintingControllerを作成します。 

package com.imooc.mgallery.controller;

import java.io.IOException;
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 com.imooc.mgallery.service.PaintingService;
import com.imooc.mgallery.utils.PageModel;

/**
 * Servlet implementation class PaintingController
 */
@WebServlet("/page")
public class PaintingController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	// 因为在Controller中,需要调用Service,所以这儿先创建PaintingService类的对象;
	private PaintingService paintingService = new PaintingService();
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PaintingController() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// 1.接受HTTP请求的参数
		String page = request.getParameter("p");
		String rows = request.getParameter("r");
		if(page == null) {    // 如果前台请求的时候没有附带“p”和“r”两个参数,那么page和rows都会是空的,
			page = "1";       // 这样下面的paintingService.pagination()会报空指针异常;所以这儿判断处理一下;
		}                      // 如果page或者rows为空,就给其附一个默认值;
		if(rows == null) {
			rows = "6";
		}
		// 2.调用Service方法,得到处理结果;
		PageModel pageModel = paintingService.pagination(Integer.parseInt(page), Integer.parseInt(rows));
		// 3.将结果放在当前的请求属性中;
		request.setAttribute("pageModel", pageModel);  // 这儿的pageModel必须是一个标准的javaBean,这样才能被前台的JSP的el表达式等识别获取
		// 4.请求转发至对应的JSP(view视图),进行数据展现;
		// 使用请求转发,将当前的请求转发到inde.jsp上;这儿的视图放在了/WEB-INF/jsp目录下;
		request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
	}

}

PaintingControllerクラスのいくつかの説明:

      (1) JavaWebでは、サーブレットクラスは通常、コントローラの実装クラスとして使用されます。

      (2) Controllerクラスは通常*** Controllerです;(クラス名にサーブレットはありません)

      (3)サービスを呼び出して得られた結果は、要求された属性として設定されます。JSPのel式などの識別と取得を容易にするため。

      (4) JSPなどのel式の識別と取得を容易にするために、Serviceを呼び出して得られる結果は標準のJavaBeanである必要があります。

      (5)このサーブレットは[query]を実装しているため、doget()メソッドのみが保持されます。


その結果、コントローラーパーツとモデルパーツが開発されます。次のタスクは、ビューで値を取得してレンダリングすることです。

おすすめ

転載: blog.csdn.net/csucsgoat/article/details/114849518