MVC模式:jsp+servlet+javabean

---- 网站开发模式(省去dao数据访问对象,便于理解) ------
模式一:
jsp+JavaBean :适合快速开发,但是jsp于javabean之间紧密耦合,开发维护造成麻烦。eg:美工和开发人员分工不明确,彼此依赖增强。
·jsp :会做模式二中jsp+servlet的工作
·javabean:同下
模式二:
jsp+servlet+javabean:适合于团队开发,速度相对较慢,但可维护性高。
·jsp:开发前台界面方便,做ui开发容易
·servlet:是java程序,安全性高,性能也高;但是显示不方便,也可以像jsp一样接受用户的请求参数
·javabean:可重复调用,需要接受用户的请求参数,进行相应的处理

如果将模式一的jsp的接受用户参数的功能部分交给servlet去做,则jsp就不用直跟javabean交流。

即:jsp -> servlet -> javabean

问题?
·jsp跳转到servlet可以吗?---------- 表单提交或超链接
·servlet跳转到jsp可以吗?---------- response,request(当数据只希望保存1次,用request范围保存属性,则要求是服务器端跳转)

/****
联想到jsp中两种跳转语句的区别:
·response.sendRedirect():客户端跳转,请求不保存
·<jsp:forward page = "" >:服务器端跳转,请求可以继续保存
jsp中属性保存的四种范围:
page request session application
****/

request怎么跳转呢?
RequestDispatcher 接口 ---------- 服务器跳转-------servlet跳转到jsp的服务器端
类似于<jsp:forward page=""/> ----------------------jsp跳转到servlet
eg:
RequestDispatcher rd = null;
rd = req.getRequestDispatcher("url");
rd.forward(req,res);
或者:req.getRequestDispatcher("url").forward(req,res);


----------------- mvc例子 ---------------- ----------- 案例描述:
htm: 表单
servlet: 接受姓名,调用javabean判断结果,显示成功/失败的页面
javabean:判断姓名是否为空

----------- 详细描述:
mvc_login.htm中大致内容如下:
<form action = "mvcdemo.mldn" method = "post">
输入姓名:<input type = "text" name = "uname">
<input type = "submit" value="提交">
</form>

public class MVCServlet extends HttpServlet
{
public void doGet(.. req,... res)throws...
{
this.doPost(req,res);
}
public void doPost(.. req,... res)throws...
{
String name = req.getParameter("uname");
MVCCheck mc = new MVCCheck();
mc.setName(name); //请求对象设置到mc对象中去

String path = "";
if(mc.isValidate())
{
//保存名字在request范围中去
req.setAttribute("name",mc.getName());
path="mvc_success.jsp";
}
else
{
path = "mvc_failure.jsp";
}
//进行跳转
req.getRequestDispatcher(path).forward(req,res);
}
}

public class MVCCheck --------- 一个简单的bean
{
private String name;
... setName(...);
... getName(...);

public boolean isValidate()
{
if(this.name == null || "".equals(this.name))
{
return false;
}
else
{
return true;
}
}
}

mvc_success.jsp页面
<h1>输入成功><%= request.getAttribute("name")%></h1>

mvc_failure.jsp页面
<h1>输入失败</h1>
<h2><a>回去登陆</a></h2>

总结:
servlet中最好只有以下几种代码:
·接受参数 ·调用javabean ·进行跳转 ·有一些简单的逻辑判断

----------------- mvc进一步掌握案例 ---------------- ·mvc登陆的进阶案例(3个)
·mvc实现的图书管理程序(SmartUpload)
·mvc实现的购物车
·mvc列表案例
·mvc中如何进行分页

你可能感兴趣的:(MVC模式:jsp+servlet+javabean)