今天学习时遇到的一些卡壳的问题:
1、MVC分层的原理及使用
2、设计模式的六大原则:
3、Ajax
4、Json、gson及xml
5、工厂模式,什么叫Connectionfactory
6、Sql语句,左连接右连接
7、什么叫DHCP创建连接池
一点一点抽时间空闲去解决吧。
1、MVC结构
答:Model模型:逻辑处理
View视图:页面的显示和样式展示
Controller控制器:用户与系统之间的连接
2、Dao层,Service层,Controller层,View层
答:①Dao层:接口,负责与数据库进行联络的一些任务都封装于此,在Spring的配置文件中定义此接口的实现类、数据源配置、有关数据库连接的参数。【比如增,删,改,查以及一些特殊的数据库访问方法】
②Service层:接口,负责业务模块的逻辑应用设计。也是在Spring配置文件中配置其实现的关联。【既调用Dao层的接口,又提供接口给Controller层的类调用,每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。】
③Controller层:负责具体的业务模块的流程控制。会调用到Service层的接口。也是在Spring的配置文件中配置控制。
④View层:负责前台的页面的表示。
注意事项:
①Dao层、Service层单独开发,Controller层、View层耦合度比较高,结合在一起开发。
②尽管Service层没有使用在Dao层定义的一些操作方法,但是Dao层操作方法还是要定义完全,因为经过抽象后基本上都是通用的,好处是在对Service层进行扩展的时候不需要再对Dao层进行修改,提高了程序的可扩展性。
3、Action层、Service层、Dao层:
答:Action层:管理业务调度和业务跳转,服务员
Service层:管理具体的功能,厨师,按照服务员送上来的菜单做菜
Dao层:增删改查,小工,和原材料打交道
4、json:
答:(1)定义:
json就是用JavaScript语法写的一个特殊的标记字符串,用于数据交换,JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。
(2)语法:
①数据在名称/值对中 eg. name : “dengqinyi”
②数据由逗号分隔 eg. name : “dengqinyi”, nickname : “remoa”
③花括号保存对象 eg. {name : “dengqinyi”, nickname : “remoa”}
④方括号保存数组
Eg {
people: [
{name : “dengqinyi”, nickname : “remoa”},
{name : “dengqinyi”, nickname : “remoa”},
{name : “dengqinyi”, nickname : “remoa”}
]}
(3)示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>json测试</title> <script type="text/javascript"> document.write("1、常规Javascript对象定义<br />"); function Student(name, studentId, sex){ this.name = name; this.studentId = studentId; this.sex = sex; }; var s1 = new Student("remoa", "3114005847", "boy"); document.write("姓名:" + s1.name + "<br />"); document.write("学号:" + s1.studentId + "<br />"); document.write("性别:" + s1.sex + "<br />"); document.write("2、使用json方式定义<br />"); var s2={ name : "remoa", studentId : 3114005847, sex : "boy" }; document.write("姓名:" + s2.name + "<br />"); document.write("学号:" + s2.studentId + "<br />"); document.write("性别:" + s2.sex + "<br />"); </script> <script type="text/javascript"> document.write("3、用json定义数组<br />"); var array = { course:[ {subject1 : "语文 Chinese", subject2 : "数学 Math", subject3 : "英语 English"}, {subject1 : "软件工程 Software Engineering", subject2 : "操作系统 Operating System", }, {subject1 : "人工智能 Artificial Intelligence", subject3 : "数据库 Database"} ] } for(var i = 0; i < array.course.length; i++){ document.write(array.course[i].subject1 + " " + array.course[i].subject2 + " " + array.course[i].subject3 + "<br />"); } document.write("数组未定义完整部分则显示undefined<br />"); </script> </head> <body> </body> </html>
运行结果:
5、fastJson:
答:(1)fastjson是Java语言编写的json处理器。
(2)示例:
①Person.java实体类
package domain; public class Person { private String name; private String id; private String sex; public Person(){ } public Person(String name, String id, String sex){ this.name = name; this.id = id; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "Person [name=" + name + ",id=" + id +"]"; } }
②JsonLearn.java常用方法测试类
package json; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SimplePropertyPreFilter; import domain.Person; public class JsonLearn { public static void main(String[] args) { Person person = new Person("remoa", "3114005847", "boy"); String json1 = JSON.toJSONString(person);//将实体类解析为json格式 System.out.println(json1); System.out.println("--------------------------------"); System.out.println(JSON.parseObject(json1, Person.class));//反序列化,将我们的str类型转换为class类型的对象 System.out.println(); List<Person> list = new ArrayList<Person>(); for(int i = 0; i < 5; i++){ Person per = new Person("person" + i, "311300584" + i, "boy"); list.add(per); } String json2 = JSON.toJSONString(list);//将列表解析成json格式的数组 System.out.println(json2); System.out.println("--------------------------------"); String json3 = JSON.toJSONString(list, true);//将其按照标准的json格式输出 System.out.println(json3); System.out.println("--------------------------------"); SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Person.class, "id", "sex");//此处只序列化id和sex的字段,获得字段为我们需要序列化的字段,如果实体类中没有该字段则不解析放弃该字段而不会报错。 String json4 = JSON.toJSONString(list, filter); System.out.println(json4); } }
运行结果: