一:AJAX
1 | 关于同步和异步: |
1.设置全局的绝对路径
1 | <% |
2.JSON
1 | 格式: //一般key和value都要加双引号,数字类型和boolean类型的valu可以不用加双引号 |
3.json应用
- 如果后端传入json,jsp中alert(data)的类型是object Object
servlet
1 | public class MyServlet02 extends HttpServlet { |
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
4.domin:领域模型
1 | pojo, bean, javabeen, 实体类 |
- 实体类的无参构造方法是为了反射
5.以后最常用的json格式
多个json对象的嵌套:
1 | {"s1":{"id":"?","name":"?","age":?},"s2":{"id":"?","name":"?","age":?}} |
取值:
1 | success : function (data) { |
6.jQuery存取值理解
1 | 相当于原生js的 document.getElementById(“”).value |
7.前后端传值方式
1 | 前端为后端传值,一般都叫做传参数 |

8.数据库补充
- OA–>办公自动化系统
- CRM—>客户关系管理系统
- CMS—>内容管理系统
以后一般都是一对多或者多对一的关系,设置外键时一般都在多的一方设置
9.UUID
1 | public class Test1 { |
实际项目开发中,很少使用整型作为主键来使用
实际项目开发中,使用字符串当做主键字段类型比较多
UUID
- 使用UUID会为我们生成一组由数字字母以及横杆所组成的随机串,这个随机串有36位,这个随机串一定是全世界唯一的。
char和varchar的区别
- char–>不可变长
- varchar–>可变长
- char类型可以提高sql效率,一般用于已知长度的定量
二:MyBatis
1.使用步骤
一张表操作对应一个mapper文件
1.xxxMapper.xml
创建与实体类对应
1 |
|
2.mybatis-config.xml
用来注册每个mapper文件
1 |
|
3.测试
1 | package com.bjpowernode.test; |
4.==注意事项==
- 我们未来所有的操作,使用的都是SqlSession对象session来完成
- 实体类pojo—>domain
- 所有的标签都必须要写id属性,
- 对于
这3个标签,通常我们只写id属性,其他属性一概不写 - MyBatis默认情况下是手动提交事务,需要手动seesion.commit()
- 最后要写session.close()
2.mybatis结合dao层开发
三:MyBatis配置文件
1.db.properties
1 | =com.mysql.jdbc.Driver |
2.mybatis-config.xml
1 |
|
3.mapper配置文件
- 使用简单类型(8基本数据类型+String)为参数
- 在#{}中的标识符可以随意去写,但是虽然可以随意写,还是要写的有意义
- 如果我们为sql语句传递的参数类型为一个domian引用类型
- 那么#{}中的标识符必须是domain类的属性名
- 模糊查询:
- ‘%’空格#{}空格’%’
- 以上空格不能省略
1 | 总结: |
1 |
|
test测试:
1 | 1.如果我们要为sql语句传递多个参数,我们应该将这多个参数封装到一个domain对象中,或者是打包到一个map集合中 |
1.map测试:
1 | /* |
当数据库表字段名称和domain类属性名称不一致时的处理:
2.1 起别名:
1 | <select id="select15" resultType="Student"> |
2.2 resultMap:
1 | <resultMap id="stuMap" type="Student"> |
3.动态sql–where
1 | <select id="select17" resultType="Student"> |
4.foreach
- 前端往后端传数据用数组,后端往前端传数据用集合
1 | <select id="select18" resultType="Student"> |
4.sql片段
1 | <!-- |
5.vo(value Object/ view Object)
是dao层查出数据往前端传
StudentAndClassroomVo.class:
- 原由:查询的内容来自不同的表,可以创建一个实体类合并
1 | package com.bjpowernode.vo; |
1 | //21.测试:多表联查 查询出学生和班级所有信息,加VO |
1 | <select id="select21" resultType="com.bjpowernode.vo.StudentAndClassroomVo"> |
四:Git
首先找到一个任意的路径当做本地库目录
例如:目录D:\git\test
点击右键 –> Git Bash Here
1.初始化本地库
1 | 命令:git init |
2. 设置签名
1 | 设置签名的作用:区分不同开发人员的身份 |
五:项目搭建
1.文件夹创建
- 在main文件夹下建立java文件夹和resources文件夹
- 与main文件夹平级创建一个test文件夹
- test文件夹下创建java文件夹和resources文件夹
==注意:为文件夹赋予功能(颜色)后,文件夹才会生效==
2.登录流程
用户 Controller service dao

1.将html文件转为jsp
加入
1
2
3
4
5
6
7
8
9<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">将html后缀名字改为jsp
2.注意细节
注意:
按钮写在form表单中,默认的行为就是提交表单
一定要将按钮的类型设置为button
按钮所触发的行为应该是由我们自己手动写js代码来决定
过滤器:
/* 表示过滤所有
通配符+后缀名—>*.do
错误方法:/abc/*.do
==转发重定向==:
转发:可以访问web-inf下面的资源
重定向:不可以访问web-inf下面的资源
1 | 重定向的路径怎么写? |
使login.jsp始终在顶层窗口中打开:
if(window.top!=window){
window.top.location=window.location;
}
3.市场活动
1.怎么让下拉列表默认选择一项
1 | $("#grade").val("2"); |
2.jsp中用el表达式
1 | 在js中使用el表达式,el表达式一定要套用在字符串中 |
3.日历控件
保存市场活动的时候,需要填写日期,一般情况下都是需要相关的日历控件的。
我们这里使用的前端UI框架是基于Bootstrap实现的,为了统一风格,所有的插件建议使用Bootstrap扩展的插件。
我们这里使用的是:bootstrap datetimepicker(日期拾取器)
1.引入
1 | <link href="jquery/bootstrap-datetimepicker-master/css/bootstrap-datetimepicker.min.css" type="text/css" rel="stylesheet" /> |
2.设置time类
1 | $(".time").datetimepicker({ |
1 | $(".time").datetimepicker({ |
3.在相关组件的class下引入time类标识
多个class之间可以用空格分开
1 | <div class="col-sm-10" style="width: 300px;"> |
4.分页
1.后端处理
1 | 1、给分页查询专门封装一个VO对象。(关于VO类的说明) |
2.前端
1 | $(function(){ |
3.使用分页插件
1 | 前端处理: |
5.全选
input[name=xz]—>表示name=xz的input输入框
1 | //为全选的复选框绑定事件,触发全选操作 |
6.隐藏域
1 | $("#searchBtn").click(function () { |
1 | function pageList(pageNo,pageSize) { |
7.textarea
1 | (1)一定是要以标签对的形式来呈现,正常状态下标签对要紧紧的挨着 |
8.更新后,停留分页
1 | 实现分页查询市场活动: |
- 做完添加操作后,应该回到第一页,维持每页展现的记录数
- 修改操作后,应该维持在当前页,维持每页展现的记录数
- 删除后,回到第一页,维持每页展现的记录数
1 | 关键代码 |
例子:
1 | /* |
9.foreach中动态拼接
注意:两个单引号转义后,还需要两个单引号,即必须套在单引号中拼接
1 | html += '<a class="myHref" href="javascript:void(0);" |
10.模态窗口的自动刷新
为关联市场活动模态窗口中的 搜索框 绑定事件,通过触发回车键,查询并展现所需市场活动列表
展现完列表后,记得将模态窗口默认的回车行为禁用掉
1 | //为关联市场活动模态窗口中的 搜索框 绑定事件,通过触发回车键,查询并展现所需市场活动列表 |
11.多个id追加
1 | //为关联按钮绑定事件,执行关联表的添加操作 |