经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

首先介绍MVC:

M:model层,实现系统的业务逻辑,即javaBean

V:view层,负责与用户交互,即在界面展示,比如html,jsp

C:control层,是model层与View层之间的桥梁,它可介绍来自view层传来的请求分发给model层,然后再接收model的返回数据并选择恰当的视图给view层,让用户看到。

在别人的博客上copy了张图,很形象啊!

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

上图很形象的说明了servlet的MVC模式的运行原理。浏览器发送请求到jsp,所有的请求都会给servlet来处理,servlet通过对javaBean,即核心的model处理,得到处理结果,在返回给view层的jsp页面,jsp页面返回给浏览器最后的html网页。

其次,从图中可以看出model层关联前端和后台,是servlet的核心部分。

下面,用eclipse建一个最简单的servlet模式工程。

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

在eclipse的javaEE开发视图模式下,找到Project explorer 框,如上图,右键new–>选择Dynamic Web Project(动态web工程):

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

填写工程名,版本选2.5  ,tomcat选5,或6都行。别太低。Next–》

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

然后下一步,再出现一个视图,再直接finish就行了。

建好之后就有以下界面:

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

eclipse会给我们建好需要的文件夹,想webContent就是知道本地web工程的根文件夹。

完了之后,打开web-inf下的web.xml:

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

看上图的xml文件,标签<welcom-file-list>的意思是“欢迎文件集合‘想当与一个工程的首页,当启动工程后会进入到统一的Servlet,负责统一的中转,正如本文图一所示,首先找到<welcom-file-list>下的文件,到前端显示,这里在上上图中可以看到,小编在WebContent目录下建了一个index.jsp页面,在<body>标签中写了个success。这里注意的是,如果在index中输入中文字符,保存时会显示是否保存为utf-8格式。这里呢,先选择取消,然后在jsp文件中修改:

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

将所有的charset的字符设置成utf-8格式,保存,最后启动tomcat。

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

在流量器中输入:http://localhost:8080/Servlet/

会有:经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

这样一个简单的Servlet模式的工程就建好了。

接下来如果想更深一步的了解mvc工资模式可以看如下:

在index.jsp中增加了两个链接,上面是直接跳转。下面要通过servlet控制器分发。

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

这个是跳转后的second.jsp页面

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

启动工程后,在页面点击index的第二个链接,进入到servlet分发器的xml中,找到first,进入到Servlet.First这个类。

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

在下图的First类中,转发到second.jsp页面。

经典Servlet+JSP+JavaBean开发模式(MVC)原理与创建工程

代码部分:

package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class First extends HttpServlet{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	ServletContext servletContext = getServletContext();
	RequestDispatcher dispatcher = servletContext.//直接转发到second页面
			getRequestDispatcher("/second.jsp");
	dispatcher.forward(request, response);
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106310.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Rider2021 激活码(注册激活)[通俗易懂]

    (Rider2021 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    1.5K
  • ftp扫描软件下载_ftp扫描文件夹连接失败

    ftp扫描软件下载_ftp扫描文件夹连接失败不知道大家用过哪几种ftp扫描工具,是不是感觉都是大同小异的呢?其实市面上的ftp扫描工具功能都是差不多的,当然也还是有一点差别的,那一点的差别可能就是我们选择那一种ftp扫描工具的原因。不论怎么说,也都是要选择自己喜欢的ftp扫描工具来使用。第一款:IIS7服务器管理工具这款工具里面的ftp扫描工具体验感是比较好的,除了一般ftp扫描工具里面都有的批量管理,它还有很多自己设计的功能。可以说这就是它成功的关键。它还能够进行定时上传下载、定时备份和多任务同时进行。哦对,它还有自动更新的功能。IIS7服务

    2022年10月1日
    2
  • Idea激活码永久有效Idea2022.1激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2022.1激活码教程-持续更新,一步到位Idea激活码永久有效2022.1激活码教程-Windows版永久激活-持续更新,Idea激活码2022.1成功激活

    2022年6月17日
    16.2K
  • 三种方式实现网页二级菜单

    三种方式实现网页二级菜单方法一:使用HTML和CSS实现 首先是Html代码,习惯上会将菜单放在一个div里,使用盒子模型,方便以后的操作和设置样式。二级菜单也就是在一级菜单中的li中再添加一个ul-li结构 &lt;divclass="test"&gt; &lt;ul&gt; &lt;li&gt;A&lt;/li&gt; &lt;li&gt;B&lt..

    2022年4月30日
    56
  • Vue生命周期函数执行顺序_生命周期函数

    Vue生命周期函数执行顺序_生命周期函数createdcreated在刚进入页面的时候,会触发该函数的方法。只在页面刚开始加载时执行一次。activated一进入页面就触发;可用于初始化页面数据等

    2022年8月30日
    2
  • 指纹识别模组厂家_指纹识别模块原理

    指纹识别模组厂家_指纹识别模块原理不管指纹识别的流程和传感器原理发展得有多快,如果需要商用到手机及终端设备这种民用产品上,还是有好多问题需要克服。比如我们会看到指纹模块在正面,在背面,在侧面,其原因都是sensor性能、模组结构设计、手机ID设计以及量产工艺的限制多重因素辅助、妥协形成的。一、模组位置正面毋庸置疑,代表作当然是iPhone。其实指纹识别应用在手机上并不是APPLE首次尝的禁果,HTC、Sharp、Samsung都有过

    2022年8月10日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号