首先介绍MVC:
M:model层,实现系统的业务逻辑,即javaBean
V:view层,负责与用户交互,即在界面展示,比如html,jsp
C:control层,是model层与View层之间的桥梁,它可介绍来自view层传来的请求分发给model层,然后再接收model的返回数据并选择恰当的视图给view层,让用户看到。
在别人的博客上copy了张图,很形象啊!
上图很形象的说明了servlet的MVC模式的运行原理。浏览器发送请求到jsp,所有的请求都会给servlet来处理,servlet通过对javaBean,即核心的model处理,得到处理结果,在返回给view层的jsp页面,jsp页面返回给浏览器最后的html网页。
其次,从图中可以看出model层关联前端和后台,是servlet的核心部分。
下面,用eclipse建一个最简单的servlet模式工程。
在eclipse的javaEE开发视图模式下,找到Project explorer 框,如上图,右键new–>选择Dynamic Web Project(动态web工程):
填写工程名,版本选2.5 ,tomcat选5,或6都行。别太低。Next–》
然后下一步,再出现一个视图,再直接finish就行了。
建好之后就有以下界面:
eclipse会给我们建好需要的文件夹,想webContent就是知道本地web工程的根文件夹。
完了之后,打开web-inf下的web.xml:
看上图的xml文件,标签<welcom-file-list>的意思是“欢迎文件集合‘想当与一个工程的首页,当启动工程后会进入到统一的Servlet,负责统一的中转,正如本文图一所示,首先找到<welcom-file-list>下的文件,到前端显示,这里在上上图中可以看到,小编在WebContent目录下建了一个index.jsp页面,在<body>标签中写了个success。这里注意的是,如果在index中输入中文字符,保存时会显示是否保存为utf-8格式。这里呢,先选择取消,然后在jsp文件中修改:
将所有的charset的字符设置成utf-8格式,保存,最后启动tomcat。
在流量器中输入:http://localhost:8080/Servlet/
会有:
这样一个简单的Servlet模式的工程就建好了。
接下来如果想更深一步的了解mvc工资模式可以看如下:
在index.jsp中增加了两个链接,上面是直接跳转。下面要通过servlet控制器分发。
这个是跳转后的second.jsp页面
启动工程后,在页面点击index的第二个链接,进入到servlet分发器的xml中,找到first,进入到Servlet.First这个类。
在下图的First类中,转发到second.jsp页面。
代码部分:
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);
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106310.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...