1.基本介绍
spring 是一个一站式框架,也就是有了它 web 层,service 层还有 dao 层都能直接搞定而不需使用其他的框架。
这三层分别就是:
- SpringMVC
- ioc
- JdbcTemplate
当一些方法的返回值一样的时候并且需要跳转的页面也一样的时候就可以使用全局结果页面。
1 | <package name="struts" extends="struts-default" namespace="/"> |
注意他只是太某一个package中,而不是整个项目
jar包主要需要导入的有两个文件夹下面的jar包
1 | <class name="类路径" table="表名"> |
1 |
|
1 | public class Main { |
首先需要一个对象,这个也就是实体类的对象,然后设置字段的值,最后只需要调用session.save(user)即可插入一条数据。
根据id查询,直接使用session.get(User.class,id) 第一个参数就是类,第二个是id值。最后返回的不是数组或者list什么的,而是一个实体类的对象。
首先就需要进行查询,然后修改实体的属性,最后再使用update方法保存即可。save方法也可以,但是如果记录不存在他就会添加。
还是先查到该对象,然后在调用delete方法。
Hibernate的一级缓存默认是开启的,他的范围是在session开启导session关闭之间的,一级缓存的存放的对象只能就是持久太的数据。
一级缓存一个简单的例子就是,我们第一次查询一条数据的时候这条数据就被被放在内存中,而第二次再次查询此数据的时候他不会取数据库获取数据,而是直接从内存中取到这条数据。
Hibernate也是有耳机缓存的,但是现在基本不再使用,而是通过一些NoSQL数据库来完成,存放类似于SessionFactory对象之类的东西。
因为session是单例的不可以多个线程同时访问,我们可以使用threadLocal来绑定session和Thread,但是这样比较麻烦,我们Hibernate已经提供了session和thread绑定的方法。
首先需要配置核心配置文件
然后SessionFactory.getCurrentSession()就是获得的与本地线程绑定的线程。线程结束以后session自动被销毁,不需要我们自己关闭session,否则会报错。
1 | Query query=session.createQuery("hql"); //执行hql |
1 | Criteria criteria=session.createCriteria(User.class); //实体类的class |
1 | SQLQuery sql=session.createSQLQuery("sql");//执行sql |
我们常用的 jsp 标签有两种,实际上有三种 jsp 标签。
其实JSP最终还是一个Servlet,主要他的优点在于,可以在一个Servlet中直接写html代码,防止我们去写很多 out.print(“html代码”) ,或者说我们可以在html中写 java 脚本。但是并不是说我们使用了jsp 就不再使用Servlet,他们之间是有区别的,分工不一样。
指定jsp的编码
设置响应头这两个东西其实使用任意一个即可。
如果这个页面抛出异常以后重定向到哪一个页面。
标记这个页面可使用 expection 对象,其他页面不行。
当前页可使用 session 对象
他是静态包含和RequestDispatcher类似,但是就是包含的时期不一样。 静态包含就是在jsp编译成java的时候形成的,也就是最终是两个文件合并成了一个class,最后形成一个class文件。
RequestDispatcher则是动态包含,他们在显示之前始终是两个java文件,两个class,在最后需要显示的时候才把内容整合发送给客户端。
prefix制定标签库的前缀,uri就是标签库的位置。
EL表达式主要就是用来代替JSP中的 <%= %> 这个标签的,他可以简单的用于输出语句
JSTL是EL的扩展,因为EL只是进行输出而已,但是有一些判断,遍历等等,这些操作就是JSTL。他需要引入jstl.jar
他有四大库,但是常用的只有两个一个是core另外一个就是formate标签库
注意导入的时候uri是jsp/core 或者 jsp/formate
1 | <c:choose> |