MVC设计模式
不是Java特有的,所有的B/S结构的项目都可以用这种设计模式。
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
*控制器Controller:对请求进行处理,负责请求转发;
*视图View:界面设计人员进行图形界面设计;
*模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理;
JavaWeb三层架构
web层:与web相关的内容(Servlet,JSP,Service相关的API;request、response、session、ServletContext)
业务层:业务对象的处理(Service)
Dao层:(DAO Data Access Object)操作数据库,所有对数据库的操作,不能跳出DAO层之外
注意:JSP响应到客户端浏览器,在页面上点击超链接,或者提交表单,是直接请求的Servlet。
使用这样的结构可以解耦合。
例子:
一个JavaBean:User
1 package cn.itcast.domain; 2 3 /* 4 *把数据库中查询的结果保存到这个对象中。 5 * */ 6 public class User { 7 private String username; 8 private String password; 9 10 public String getUsername() { 11 return username; 12 } 13 14 public void setUsername(String username) { 15 this.username = username; 16 } 17 18 public String getPassword() { 19 return password; 20 } 21 22 public void setPassword(String password) { 23 this.password = password; 24 } 25 26 @Override 27 public String toString() { 28 return "User [username=" + username + ", password=" + password + "]"; 29 } 30 31 public User() { 32 super(); 33 // TODO Auto-generated constructor stub 34 } 35 36 public User(String username, String password) { 37 super(); 38 this.username = username; 39 this.password = password; 40 } 41 }
UserDAO.java:
1 package cn.itcast.dao; 2 3 import cn.itcast.domain.User; 4 5 //数据层 6 public class UserDAO { 7 /* 8 * 把xml中的数据查询出来之后,封装到user对象中,然后返回 9 * */ 10 public User find(){ 11 return new User("张三","123"); 12 } 13 }
UserService.java:
1 package cn.itcast.service; 2 3 import cn.itcast.dao.UserDAO; 4 import cn.itcast.domain.User; 5 6 //业务层 7 public class UserService { 8 //service层依赖dao层 9 private UserDAO userdao=new UserDAO(); 10 11 /* 12 * service的查询 ,需要使用dao来完成 13 * 即调用dao层的方法 14 * */ 15 public User find(){ 16 return userdao.find(); 17 18 } 19 }
UserServlet.java:
1 package cn.itcast.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 import cn.itcast.domain.User; 12 import cn.itcast.service.UserService; 13 14 public class UserServlet extends HttpServlet { 15 16 //web层 17 public void doGet(HttpServletRequest request, HttpServletResponse response) 18 throws ServletException, IOException { 19 /* 20 * 在service中依赖service,然后通过service完成功能,把结果 21 * 保存到request中 22 * 转发到jsp显示。 23 * */ 24 UserService userService=new UserService(); 25 User user=userService.find(); 26 //保存到域中 27 request.setAttribute("user", user); 28 //显示 29 request.getRequestDispatcher("/show.jsp").forward(request, response); 30 } 31 }
index.jap:
... <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- 导入的标签库 --> ... <body> <!-- 当用户点击这个链接会执行doGet方法 --> <a href="<c:url value='/UserServlet'/>">点击这里</a> <c:url value="/UserServlet"></c:url> <!-- --> </body>
show.jsp:
<body> <!-- EL表达式 全域查找 javabean导航--> 用户名:${user.username }<br> 密 码:${user.password }<br> </body>
请求http://localhost:8080/day13_3/index.jap 后再点击链接跳转到show.jsp
显示: 用户名:张三
密 码:123
以上就是JavaWeb的简单使用!!!