四层架构
后台代码
entity(domain)
实体类,如等,便于dao获取和使用数据,与数据库字段内容进行映射
Dao
只是访问数据库,不做其他的,查数据,返回数据,也就是对数据库进行增删改查,返回数据
目录结构
- dao接口类:接口,将要实现的功能进行声明,这个接口的规范可以不用写,因为操作数据库就一些固定的方法,不过我还是觉得这样写了比较方便,以后这个还是看情况吧
- Impl包:
- DaoImpl类:继承dao,进行代码的编写
service执行业务
逻辑判断
-
通过实现DaoImpl的类,如:```private Dao dao = new DaoImpl()`
- 这样可以使用类名(dao)去调用DaoImpl里面的操作数据库的方法,
-
将需要实现的一个功能进行分析,清楚需要使用哪一些Dao里面的方法,然后使用类名(dao)去调用的daoImpl里面的方法,并对这些方法进行逻辑判断,将这一个功能封装为一个方法
目录结构
- Service接口类:接口,将要实现的功能进行声明,对ServiceImpl将要写的功能进行规范
- Impl包:
- ServiceImpl类:继承dao,进行代码的编写
controller(Servlet)
- **实现一个BaseServlet,**其他的Servlet去继承这个BaseServlet,然后就可以实现在一个Servlet里面实现多个功能,也就是实现多个方法,这样可以减少Servlet的创建,优化代码
控制数据流向视图层,也就是发送给浏览器。
-
可以实现service 如:
private Service service = new ServiceImpl()
- 这样可以使用类名(service)去调用ServiceImpl里面的操作数据库的所实现的功能
-
使用JSON进行数据的传输,储存数据
-
jackson去操作json,将对象或者是数据转换为json数据
-
//这个是将obj里面的内容(对象)通过response传输浏览器 mapper.writeValue(response.getOutputStream(),obj);
-
util
常用的工具类
- 存放工具类,
- 如操作mysql数据库的JDBCUtil工具类
- 操作Redis数据库的JedisUtil工具类
- 还有获取随机值的UuidUtil工具类
- 发送邮件的MailUtils工具类
- 将明文密码转换为MD5密码的Md5Util工具类等
前台代码
jsp和html页面,处理页面显示代码
视图层:操作html页面
html页面
-
JQuery
- 导入JQuery的js文件,
使用JS转换为jq对象:js->jq:$(js对象),然后通过选择器操作标签$(" ")
-
html可以使用ajax获取前面通过JSON返回的response响应的数据,
- ajax可以不重新加载整个页面的情况下,对网页的部分内容进行局部更新。
- 一般都是通过JQuery的get和post方式实现Ajax,通过get和post方法获取response返回的JSON数据
JSP页面
JSP用法详解
jsp页面与html页面类似,但是可以使用语法在jsp页面执行java代码
- 也可以使用JSP获取这些内容,JSP基于java语言,本质上就是Servlet
- 因为jsp可以写java代码,所以jsp可以与在Servlet(即继承HttpServlet的那个类里面的doPost方法里面),以同样的方法设置和获取四大域和九大隐式对象里面的数据
- EL表达式:在JSP页面获取,语法更加简单。
- EL表达式语法:${表达式内容}
- 功能较JSP更加简单,获取四大域对象的数据,根据名称从小到大在域对象中查找。
- EL表达式里面的隐式对象和JSP里面的隐式对象区别是什么?
- jsp和el及jstl详细解释
- JSTL通过一些标签对EL进行增强的使用,比如循环判断等…
- JSP所写的位置大概如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户登陆</h1>
<form action="LoginController" method="post">
用户名:<input name="username" value="${username}" type="text" size="12"><br/>
密码:<input name="pwd" type="password" size="12"><br/>
<input type="submit" value="登陆">
<c:if test="${msg != null}">
<div style="color:red;font-size:24px">${msg }</div>
</c:if>
</form>
</body>
</html>