传媒工程系
计算机科学与技术专业(本科)
JavaWeb 结业
报告 JavaBean(M)+JSP(V)+Servlet(C)实现MVC模式
一、实验要求:1.前台代码能够正常显示即可
2. Servlet与JavaBean必须明确功能
二、实现步骤:
(1)定义Bean来表示数据
(2)使用Servlet来处理请求
(3)填写Bean
(4)将Bean存储到请求(request).会话(session)或servlet上下文(ServletContext)
(5)将请求转发到JSP页面
(6)从Bean中读取数据
JSP+Servlet+JavaBean
? 对于DAO模式的不足进行弥补 ? 解决JSP和
JavaBean之间紧密耦合的
问题 分析 ?
JSP优点:开发前台界面方便,做UI开发容易
? Servlet优点:本身是java程序,性能效率高,安全,也可以像JSP一样接 受用户请求参数
? JavaBean优点:可重复调用,需要接受用户的请求参数,进行相应的处理
? Servlet缺点:不方便显示
三、实现过程:
客户端(entry.jsp)向Servlet控制器(Controller.java)提交表单,表单中包含name和sex两种元 素。在Serlet控制器中,把表单数据填入Bean(Model.java)中,然后将Bean放入request范 围。根据参数sex的不同,跳转到不同JSP页面。男(Vboy.jsp),女(Vgirl.jsp),在不同的视图 中, 提取Bean的信息, 然后显示出来。 使用MVC开发程序, 代码稍显复杂。 JSP和JavaBean 之间没有什么特别明显的直接关系。Servlet根据JavaBean返回的内容跳转。 (1)登录界面:
(2)用户为女性:
显示结果:
(3)用户是男性:
显示结果:
四、程序代码:
程序名称:Model.java(Model)
package mvc;
public class Model
{
private String name;
private String sex;
public void setName(String n)
{name=n; }
public String getName()
{return name; }
public void setSex(String s)
{sex=s; }
public String getSex()
{return sex; }
}
程序名称:Controller.java(Controller)
package mvc;
import javax.servlet.*;
import javax.servlet.http*;
public class Controller extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws java.io.IOException,ServletException
{
Model model=new Model();
//填充Bean之前应该用Servlet对传入的数据进行验证
model.setName(req.getParameter("name"));
model.setSex(req.getParameter("sex"));
//将bean加入request范围
req.setAttribute("m",model);
if(model.getSex().equals("boy"))
{
req.getRequestDispatcher("Vboy.jsp").forward(req,res);
}
else if(model.getSex().equals("girl"))
{ req.getRequestDispatcher("Vgirl.jsp").forward(req,res);
} }}
程序名称:entry.jsp(入口)
程序名称:Vboy.jsp(View)
You are a boy!
Hi !
程序名称:Vgirl.jsp(View)
Hello! girl!
I got your name:
程序名称:web.xml(配置文件)
MVC
MVC
controller
mvc.Controller
controller
/controller