servlet实现mvc
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>20181022MVC</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><description></description><display-name>ControllerServlet</display-name><servlet-name>ControllerServlet</servlet-name><servlet-class>com.igeek.mvc.controller.ControllerServlet</servlet-class><init-param><param-name>addUser</param-name><param-value>com.igeek.mvc.controller.AddUserController</param-value></init-param><init-param><param-name>deleteUser</param-name><param-value>com.igeek.mvc.controller.DeleteUserController</param-value></init-param><init-param><param-name>updateUser</param-name><param-value>com.igeek.mvc.controller.UpdateUserController</param-value></init-param><init-param><param-name>queryUser</param-name><param-value>com.igeek.mvc.controller.QueryUserController</param-value></init-param><init-param><param-name>addStu</param-name><param-value>com.igeek.mvc.controller.AddStuController</param-value></init-param></servlet><servlet-mapping><servlet-name>ControllerServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
</web-app>
2.创建controller接口:
package com.igeek.mvc.controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** @author www.igeehome.com* * TODO** 2018年10月22日下午6:37:32*/
public interface Controller {public String execute(HttpServletRequest request,HttpServletResponse response);
}
3.所有控制类继承controller接口
package com.igeek.mvc.controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** @author www.igeehome.com* * TODO** 2018年10月22日下午6:58:11*/
public class AddStuController implements Controller {@Overridepublic String execute(HttpServletRequest request, HttpServletResponse response) {System.out.println("添加学生的Controller");System.out.println("调用添加学生的service");return "addStuSuc.jsp";}}
package com.igeek.mvc.controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** @author www.igeehome.com* * TODO** 2018年10月22日下午6:38:46*/
public class DeleteUserController implements Controller {@Overridepublic String execute(HttpServletRequest request, HttpServletResponse response) {System.out.println("删除用户的controller");return "deleteUserSuc.jsp";}}
4.创建servlet:
package com.igeek.mvc.controller;import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Map;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class ControllerServlet*/
public class ControllerServlet extends HttpServlet {private static final long serialVersionUID = 1L;Map<String,Controller> controllers = new Hashtable<>();public ControllerServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String url = request.getRequestURI().toString();System.out.println("请求的url:"+url);//解析URL得到keyint startIndex = url.lastIndexOf("/")+1;int endIndex = url.indexOf(".do");url = url.substring(startIndex, endIndex);System.out.println("key:"+url);System.out.println(controllers);//通过Key取出controller对象Controller controller = controllers.get(url);//执行controller的execute方法String jspName = controller.execute(request, response);response.sendRedirect(jspName);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}@Overridepublic void init(ServletConfig config) throws ServletException {//获取初始化参数,初始化所有的controller对象Enumeration<String> names = config.getInitParameterNames();while(names.hasMoreElements()){String name = names.nextElement();String className = config.getInitParameter(name);//利用反射创建对象try {Class<?> clazz = Class.forName(className);Controller obj = (Controller)clazz.newInstance();//将对象添加到集合中 controllers.put(name, obj);} catch (Exception e) {e.printStackTrace();}}}}
servlet实现mvc相关推荐
- 信息管理系统(Servlet+jsp+mvc+jdbc)
技术需求: Servlet+jsp+mvc+jdbc 软件需求:开发工具:myEclipse 数据库: mySql 服务器:tomcat 浏览器:Firefox 硬件需求: 一台电脑 功能需求: 完成 ...
- 框架:servlet和MVC
一.概述 B/S与C/S最主要的区别在于分发方面. 二.通过Servlet讲解MVC框架的基本实现原理 servlet里需要参数,转换类型,处理业务逻辑和写死跳转页面,而且取得参数都是字符串. 这 ...
- java web: Servlet JSP MVC
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容. JSP ...
- 基于Servlet的MVC模式用户登录实例
关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...
- servlet入门MVC
一.servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...
- 基于Servlet的MVC模式
MVC模式介绍 MVC的全名是Model View Controller,是模型(model)-视图 (view)-控制器(controller)的缩写,是一种软件设计典范. 它是用一种业务逻辑.数据 ...
- 【Servlet】Servlet与MVC分层开发
处理数据的业务逻辑servlet与开发分层 一.处理数据的业务逻辑servlet 1.Servlet是什么 1.1Servlet是运行在tomcat服务器端的一个java程序: 2.Servlet能干 ...
- Servlet学习-MVC开发模式
MVC模型: M:模型层(业务,dao,持久.) V:视图层 C:controller,控制器 1.业务逻辑代码和界面分离 2.把常用的代码(数据库连接和操作)封装到工具类 数据库每张表要对应一个do ...
- MVC 模式/Servlet/JSP 编译原理剖析:Servlet 组件到底属于 MVC 模式的哪一层?
文章目录 前言 一.回忆什么是 MVC 模式? 1.1.Model.View.Controller 组件介绍 1.2.明确 View 与 Controller 组件区别 二.什么是 Servlet? ...
最新文章
- 服务器融合系统,全球领先的企业级服务器、存储、融合系统及解决方案-H3C与HPE...
- ngCloak 实现 Angular 初始化闪烁最佳实践
- 采样次数不同平均值不一样_不同的真石漆装饰效果也是不一样的
- eclipse远程调试liunx下的tomcat
- 【01】如何在XMind中排列自由主题
- 空字符串(“”)和null的区别
- Cannot convert a symbolic Tensor (simple_rnn/strided_slice:0) to a numpy array. 报错 (解决方法)
- unity中显示fps
- 把老婆训练成女黑客的漏洞大神黄正|宅客故事
- 【山外笔记-计算机网络·第7版】第10章:计算机网络重要概念
- ps保存图片时为了可以发送到微信中(微信大于25M的图片不能发送) 应该这样保存图片!!!...
- VS Code利用CMake工具编译Cpp文件报错
- Centos7中创建RSA非对称密钥对及搭建私有CA并为客户端颁发证书
- 带宽,吞吐量描述与区别 影响吞吐量因素
- 上海人工智能领军企业中集飞瞳ceaspectusS成熟船公司航运人工智能,集装箱运输各节点验箱上报箱况+箱轨迹,集装箱套箱云堆场
- AcWing417. 不高兴的津津
- 聊城大学计算机科学导论期末考试,09101计算机导论试卷a(含答案
- 2020年团体程序设计天梯赛-总决赛 L3-3 可怜的复杂度
- 黑马头条(学习笔记)
- ubuntu mate在树莓派2上的安装