JavaWeb——Servlet与MVC分层开发

Servlet

Servlet做了什么?

  • 本身不做任何业务处理

  • 只是接收请求并决定调用哪个JavaBean去处理请求

  • 确定用哪个页面来显示处理返回的数据

Servlet是什么?

  • Server+Applet,是一种服务器端的Java应用程序

  • 只有当一个服务器端的程序使用了Servlet API的时 候,这个服务端的程序才能称之为Servlet

JSP与Servlet之间有什么关系?
Servlet是运行在服务器端的Java应用程序
在这里插入图片描述


1.创建Servlet

1.创建类实现javax.servlet.Servlet接口
2.创建类继承javax.servlet.GenericServlet类
3.创建类继承javax.servlet.http.HttpServlet类

示例:
通过实现javax.servlet.Servlet接口创建Servlet

package com.java.Servlet;

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 LoginServlet extends HttpServlet{ 	//实现javax.servlet.Servlet接口 

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("我是Servlet,我被访问了!");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	
}

需要实现doGet和doPost方法,因为有时候不知道在jsp的表单提交中method是get和post,所有在应该方法中调用另一个方法来保证不管是get还是post都能调用到自身的方法。

2.部署运行Servlet

修改web.xml(部署描述文件)

  1. 添加<servlet>:把Servlet内部名映射到一个Servlet类名

  2. 添加<servlet-mapping>:把用户访问的URL映射到Servlet的内部名

注意:
<servlet-mapping><servlet>中的<servlet-name>必须一致

  <servlet>
  	<servlet-name>loginServlet</servlet-name>
  	<servlet-class>com.java.Servlet.LoginServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>loginServlet</servlet-name>
  	<url-pattern>/loginServlet</url-pattern>
  </servlet-mapping>

通过URL访问Servlet:
在这里插入图片描述


MVC分层开发

一个网站的开发不可能是一个人活着几个人就能写出开的
所以在开发过程中一般都会用到分层开发
这里我们讲一下MVC模型

MVC模式(Model-View-Controller)是软件工程的一种软件框架,系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller):

Controller——负责转发请求,对请求进行处理
View——负责界面显示
Model——业务功能编写(例如算法实现)、数据库设计以及数据存取操作实现

分层思想:客户端URL访问 —> 表示层(JSP)—> servlet(控制器:1、获取请求参数2、调用业务逻辑3、分发转向)—> 业务层(调用业务逻辑层:service处理数据)—> 数据访问层(dao)—> db(MySQL)


servlet实现mvc

1.创建Model模型层(M)
要注意的是数据库存在外键映射时可在多的那一方添加额外的对象(多对一)或者在少的一方添加集合对象(一对多)

2.DBUtil包装JDBC
包装对数据库的增删改查
基本都是静态方法,静态属性

静态属性:数据库url,数据库登录名,登录密码 静态方法:
1.获取连接:返回一个连接对象
2.查询方法:参数(连接对象,查询语句,查询参数)
3.更新方法:参数(连接对象,查询语句,查询参数)
4.关闭连接:参数(连接对象)

3.DAO:data access object数据访问对象层:
每一个Model对象都有一个DAO,实现对各个对象的增上改查,实现相关“对象模型”的增删改查,操作对象是model对象。分为接口,实现类部分

4.创建View视图层(JSP生成动态页面)(V)

5.创建Control控制层(Servlet等java代码,业务逻辑层)(C)

有一个DAO对象,用于操作数据库,分为接口,实现类部分
view层的各种客户数据,以参数的形式传递给控制层的函数,通过这些参数构建Model对象,借助DAO层实现对相关Model的增删改查

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章