JavaWeb三层架构

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的简单使用!!!

猜你喜欢

转载自www.cnblogs.com/xjs1874704478/p/10877570.html