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