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,返回客户端

原文地址:https://www.cnblogs.com/jinzhengquan/p/1951812.html