MVC即把交互系统分为模型、视图、控制器三部件,其中:
(1)模型:业务的流程、状态的处理、业务规则的制定
(2)视图:用户界面
(3)控制器:接受用户请求,分配合适的模型和视图
在Java Web中,模型由JavaBean充当,View由JSP充当,Servlet负责控制器。当然MVC增加了系统结构和实现的复杂性,而之后介绍的SSH框架将会简化这种复杂性,但首先必须学会MVC的思想。
//一个MVC登陆案例:
/** Login.jsp */
<form action="LoginConf" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="upassword"></td>
</tr>
<tr>
<td><input type="submit" value="登陆"></td>
</tr>
</table>
/**登陆失败成功页面Login_success.jsp*/
<%
if(session.getattribute("login")!=null && session.getattribute("login").equals(true)){
%>
<h2>登陆成功</h2>
<%
}else{
%>
<jsp:forward page="Login.jsp"></jsp:forward>
<%
}
%>
/**失败页面Login_failure.jsp*/
<h2>登录失败</h2>
/**业务逻辑组建LoginCheck.java */
public boolean isLogin(String username,String password){
if("James".equals(username)&&("123456").equals(password)){return true;}
else{return false;}
}
/**Servlet控制器,接受参数,调用模型,视图*/
public class LoginConf extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServeltResponse response)throws ServletException,IOException{
String username = request.getParameter("uname");
String password = request.getParameter("upassword");
//获取session对象
HttpSession session = request.getSession();
//new一个Logincheck对象
LoginCheck lc = new LoginCheck();
//调用业务逻辑组件判断功能
if(lc.isLogin(username,password)){
//合法,则添加login属性,并跳转到login.jsp
session.setAttribute("login","true");
request.getRequestDispatcher("Login_success.jsp").forward(request,response);
}else{
//非法,转到登录失败页面
request.getRequestDispatcher("Login_failure.jsp").forward(request,response);
}
}
public void doPost(...){
doGet(request, response);
}
}
//web-xml配置文件如下:
<servlet>
<servlet-name>LoginConf</servlet-name>
<servlet-class>com.yl.test.LoginConf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginConf</servlet-name>
<url-pattern>/LoginConf</url-pattern>
</servlet-mapping>