基于Servlet实现MVC

目录

1.MVC相关概念

核心思想:

主要作用:

2.基于Servlet实现MVC

组成部分:

案例

实验步骤:

新建maven项目SpringMvcDemo

删除src目录并添加子模块MvcServlet

​编辑

导入相关依赖:

编写servlet

注册Servlet

编写输入页面index.jsp

编写结果回显页面result.jsp

3.配置Tomcat

操作步骤

配置tomcat---运行配置进入方式

配置tomcat---添加运行配置

配置tomcat---配置web服务器

配置tomcat---部署工件

配置tomcat---设置应用程序上下文

[​编辑 启动测试](#编辑 启动测试)


1.MVC相关概念

MVC 是模型 (Model) 、视图 (View) 、控制器 (Controller) 的简写,是一种软件设计规范
Model :提供要展示的数据,包含数据和行为
View :负责进行模型的展示并向控制器提交数据请求,一般即为用户界面
Controller :接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据传递给视图,由视图负责展示

核心思想:

将业务逻辑、数据、显示分离

主要作用:

降低视图与业务逻辑间的双向偶合

2.基于Servlet实现MVC

组成部分:

Model :一个或多个 JavaBean 对象(数据访问对象和业务逻辑对象)
View :一个或多个 JSP 页面,用于展示数据和提交表单请求
Controller :一个或多个 Servlet 对象,接收视图请求并交由 Model 处理,将处理结果输出给 View 显示

案例

基于 Servlet 的 MVC 模式实现
设计输入页面,输入用户名
提交 servlet
回显输入值,完成交互

实验步骤:

新建项目模块
导入相关依赖
编写 servlet
注册 servlet
编写输入页面
编写回显页面
配置 web 服务器
运行验证

新建maven项目SpringMvcDemo

删除src目录并添加子模块MvcServlet

导入相关依赖:

bash 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.flowerfog</groupId>
        <artifactId>SpringMvcDemo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>MvcServlet</artifactId>
    <packaging>war</packaging>
    <name>MvcServlet Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <!--junit5测试-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.3.1</version>
        </dependency>
        <!--spring-webmvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.1.13</version>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>MvcServlet</finalName>
    </build>
</project>

编写servlet

java 复制代码
package org.flowerfog.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.获取前端参数
        String userName = req.getParameter("userName");
        //2.调用业务层
        String result="欢迎:"+userName;
        //3.视图转发或者重定向
        req.getSession().setAttribute("msg",result);
        req.getRequestDispatcher("/result.jsp").forward(req,resp);
    }

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

注册Servlet

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>org.flowerfog.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

编写输入页面index.jsp

java 复制代码
<%--
  Created by IntelliJ IDEA.
  User: flowerfog
  Date: 2024/11/11
  Time: 8:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<%
  String prefix = request.getContextPath();
%>
<h2>Hello World!</h2>
<form action="<%=prefix%>/hello" method="post">
  <input type="text" name="userName" placeholder="请输入姓名" />
  <input type="submit" value="提交" />
</form>
</body>
</html>

编写结果回显页面result.jsp

java 复制代码
<%--
  Created by IntelliJ IDEA.
  User: flowerfog
  Date: 2024/11/11
  Time: 8:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello test</title>
</head>
<body>
<div>${msg}</div>
</body>
</html>

3.配置Tomcat

操作步骤

① 添加运行配置
② 配置 Web 服务器
③ 部署工件
④ 配置应用程序上下文

配置tomcat---运行配置进入方式

配置tomcat---添加运行配置

配置tomcat---配置web服务器

配置tomcat---部署工件

配置tomcat---设置应用程序上下文

启动测试

相关推荐
星秀日3 小时前
框架--SpringMVC
java·开发语言·servlet
天予不洗头7 小时前
Docker部署jenkins集成全自动打包部署
servlet
艾菜籽8 小时前
Spring Web MVC入门补充1
java·后端·spring·mvc
艾菜籽10 小时前
Spring MVC入门补充2
java·spring·mvc
风兮w12 小时前
MVC、MVP和MVVM的区别
mvc
李元豪1 天前
919服务器巡检
运维·服务器·servlet
蓝天智能1 天前
QT MVC中Model的特点及使用注意事项
qt·mvc
低音钢琴1 天前
【SpringBoot从初学者到专家的成长15】MVC、Spring MVC与Spring Boot:理解其差异与联系
spring boot·spring·mvc
.NET修仙日记1 天前
2025年ASP.NETMVC面试题库全解析
面试·职场和发展·c#·asp.net·mvc·面试题·asp.net mvc
William_cl2 天前
C# MVC网页调试的方法
开发语言·c#·mvc