• StrutsMVC(简介)


    Domain Model(领域模型):核心业务也就是对象模型,以及对象之间的关系,DDD领域驱动设计。

    struts在表现层使用,spring主要在业务层使用,hibernate是持久层使用

    struts 里面对象导航,拦截起,类型转换。

    spring里面就一个依赖注入,声明式事务

    hibernate里面关键是hql,对象直接的关系,一对多,多对多

    一个业务逻辑如果要考虑sql的性能就把它封装到存储过程中,如果不考虑性能就不需要封装到存储过程中,因为存储过程的移植性不太好。

    多层架构中,层多则复用高,耦合低,可扩展性好,具体情况具体分析。

    工程根目录:192.168.1.109:8080/text_servlet/,表示的是index.jsp的路径

    如果写页面的相对路径,则把index.jsp做为参考,由上到下的写出路径,例如:

    在index.jsp中跳转到b.jsp页面: <a href="a/b/b.jsp">b.jsp</a>

     <body>b.jsp<br>
      由b.jsp跳转到a.jsp:<a href="a/a.jsp">a.jsp</a><br>
      由b.jsp跳转到c.jsp:<a href="a/b/c/c.jsp">c.jsp</a><br>
      由b.jsp跳转到d.jsp:<a href="a/d/d.jsp">d.jsp</a><br>
      由b.jsp跳转到e.jsp:<a href="e/e.jsp">e.jsp</a>
      </body>

    实例:

    index.jsp代码

    <body>
        <h1>测试Servlet</h1>
        <form action="servlet/TestServlet" method="post">
          <input type="text" name="username"/>
          <input type="submit" value="查询"/>
        </form>
        <a href="a/b/b.jsp">b.jsp</a>
      </body>

    a.jsp代码

     <body>
        a.jsp<br>
      </body>

    c.jsp代码

    body>c.jsp<br>
      
        <%
          List<String> userlist=(List<String>)request.getAttribute("userlist");
          out.println(userlist);
        %>
      
      </body>

    d.jsp代码

     <body>d.jsp<br>
      </body>

    e.jsp代码

     <body>e.jsp<br>
      </body>

    TestServlet代码:

    package com.bjsxt.test;

    import java.io.*;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;


    public class TestServlet extends HttpServlet {

     @Override
     protected void service(HttpServletRequest req, HttpServletResponse res)
       throws ServletException, IOException {
      
      //取得表单数据
      String username=req.getParameter("username");
      UserManager userManager=new UserManager();
      List<String> userlist=userManager.findUserByName(username);
         req.setAttribute("userlist", userlist);
      //转向到c.jsp,取出list中的数据
      req.getRequestDispatcher("/a/b/c/c.jsp").forward(req, res);
     }

    }

    UserManager代码

    package com.bjsxt.test;

    import java.util.ArrayList;
    import java.util.List;

    public class UserManager {

     public List<String> findUserByName(String name)
     {
      List<String> userList=new ArrayList<String>();
      userList.add("数据1");
      userList.add("数据2");
      return userList;
     }
    }

    该工程流程:

    1,客户端发送request请求到服务器web server

    2,web server调用servlet处理请求

    3,在servlet中获取数据

    4,servlet将获取的数据调用javabean业务逻辑方法处理数据

    5,javabean将结果返回到servlet

    6,在servlet中将结果设置到request中

    7,servlet选择jsp视图

    8,视图跳转请求道web server

    9,web server转向到视图

    10,视图页面获取数据

    11,视图页面到web serever(Tomcat)中生成了一个response

    12,返回客户端

  • 相关阅读:
    Flutter form 的表单 input
    FloatingActionButton 实现类似 闲鱼 App 底部导航凸起按钮
    Flutter 中的常见的按钮组件 以及自 定义按钮组件
    Drawer 侧边栏、以及侧边栏内 容布局
    AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换 通过TabController 定义TabBar
    清空路由 路由替换 返回到根路由
    应对ubuntu linux图形界面卡住的方法
    [转] 一块赚零花钱
    [转]在树莓派上搭建LAMP服务
    ssh保持连接
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1951812.html
Copyright © 2020-2023  润新知