经典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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot+eureka集群搭建

    springboot+eureka集群搭建eureka集群搭建此集群共有三个eureka台组成eureka集群的核心思想就是互相注册,相互守望,你中有我,我中有你(个人理解)意思就是第一台机器01注册地址defaultZone中的地址是02,03的,02的注册地址是01,03的。03的注册地址是01,02的首先新建三个项目来代表eureka的三台机器父类的pom文件大家可以一起用<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http://maven.ap

    2022年5月21日
    67
  • webservice优缺点以及使用框架_web前端主流框架有哪些

    webservice优缺点以及使用框架_web前端主流框架有哪些原文:https://www.cnblogs.com/firstdream/p/5575928.html1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框架的介绍,但是很少有针对不同框架性能测试数据…

    2022年9月16日
    3
  • ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一[通俗易懂]

    ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一[通俗易懂]ORA-01017:invalidusername/password;logondenied错误(程序中的用户和密码无法登录,登录被拒)。Oracle11g版本初次安装使用报错:解决方法1创建新用户:打开sqlplus以系统身份登录:指令如下sys/managerassysdba;创建新用户:语法:createuser用户名identifiedb…

    2022年5月6日
    650
  • centos8安装pycharm_pycharm激活教程

    centos8安装pycharm_pycharm激活教程Linuxcentos7下pycharm的安装教程Pycharm是一个十分优秀的PythonIDE,Windows下的软件都一个德行,傻瓜式下一步安装,除了一些大型软件,在Windows下有一个不好,Python编译器等等这些Python环境需要自己安装,Linux下天然支持Python,因为内核已经集成了Python2.7,如果需要更换Python3也可以很快的就安装上(相比c语言,要友好太多了,gcc由于与内…

    2022年8月28日
    2
  • Python-opencv读取深度图像

    Python-opencv读取深度图像由于实验需要用到Kinect2.0采集的深度图像,但是用以下程序读取深度图片的时候显不方便观察temp_img=’cup_depth.png’depth_filename=os.path.join(image_dir,depth_img)temp_filename=os.path.join(image_dir,temp_img)im…

    2022年5月24日
    207
  • 一篇文章读懂企业如何升级到云安全体系

    一篇文章读懂企业如何升级到云安全体系

    2022年3月6日
    44

发表回复

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

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