一、数据库
- Mysql关系型数据库:数据库服务为上层Web应用提供关系式或结构化的数据存储与查询支持。
1.注意
- 1.增删改查
- 2.建立主键和外键
- 3.掌握多表查询
二、JDBC
- Java与数据库建立连接,访问数据库的一套API应用程序编程接口。
1.步骤
- 加载驱动(添加mysql驱动jar包)
- 通过DriverManager工具类获取链接
- 静态sql,Statement处理完整的sql,可执行增删改的批处理
动态sql,PreparedStatement封装预编译的sql,可执行查询的批处理 - 执行sql,executeUpdate增删改,返回影响行数
executeQuery查询sql,返还结果封装到ResultSet结果集中,添加,执行,清除批处理 - 处理结果集(如果第四步是查询的话)
- 关闭连接
2.操作
①.事务控制
- conn.setAutoCommit (false),commit,rollback(手动提交,回滚,提交)
- 同一个项目,不同类都要连接数据库,但它们属于同一个线程,使用事务控制可减少资源浪费为,同一个线程保存同一个连接
- set,get,remove(添加,获取,移除当前线程中的对象)
②.DBCP连接池
- 创建多个properties文件,存储多个不同的连接池,需要导入三个dbcp相关jar包,并依赖到项目中
- 声明,创建连接池,从连接池里获取连接
3.ORM思想
- 数据库的属性映射到java实体类中
- 表-实体类,行-对象,列-属性,属性私有且类型选择包装类,getset方法,有参无参构造,toString方法
4.三层架构
- 表现层view(收集数据,展示数据)业务逻辑层service(分析校验处理业务逻辑程序)数据访问层dao(操作数据)
三、XML
1.XML简介
- 可扩展(用户可自己定义)标记语言,一个标签描述一段数据,XML用来存储和传输数据。
- web.xml配置页面,描述servlet,filter(过滤器),listener(监听器)等模块的先后关系
2.XML语法
- 文档声明,元素,属性,注释,CDATA区,特殊字符,处理指令,DTD约束和Schema约束(文档声明中standalone设置为no才可以使用两种约束)
- 有且只有一个根标签
- 空格缩进(换行)也会被当做文本处理
- XML声明之前不能写注释,注释会显示在网页中
- CDATA里面的内容会直接输出,不被解析
3.XML解析
①.dom编程
- 将xml文档的每个标签解析成Document对象,生成dom树
- 增删改查节点和节点属性
②.sax解析
- 边读物文档边解析
- 只能读取(速度快),不能修改
③.dom4j解析
- 将解析的根节点的子节点封装到一个一一映射的java实体类中
- 增删改查节点和节点属性
四、WEB服务器
1.服务器
- tomcat,websphere,weblogic,Apache
- 包括软件(操作系统和软件)和硬件(电脑)
- 保存大量数据,提供网上信息浏览服务,和各种页面(静态页面,动态页面)
- 用户发送请求,服务器解析请求,调用程序处理请求,响应请求,返回给客户端
- C/S架构:要安装软件,代码写在客户端,B/S架构:在浏览器打开,代码运行在服务器端
2.Tomcat服务器
- 端口号,首页面地址,启动文件(windows和linux)
- bin、conf、lib、logs、temp、webapps、work
- 静态页面(html)、动态页面(jsp和servlet)
- tomcat 既是web服务器,也是jsp和servlet的容器
- tomcat 作为servlet和jsp容器可编译运行jsp页面和Servlet,是一个运行环境。
- *tomcat作为web服务器特殊的是具有处理HTML页面的功能。
3.tomcate中发布web项目
- WebRoot
– html,jsp,servlets
– WEB-INF(web.xml,classes[存放运行完servlet产生的class文件],lib)
五、Servlet
- tomcate是servlet容器
- servlet文件是WEB服务器上一小段Java程序,使用HTTP协议
- 接收请求
- 静态直接由web服务器响应给客户端
- 动态交给servlet容器处理,得到请求结果,返回给web服务器,响应给客户端
1.生命周期
①.实例化(无参构造)
②.初始化(init)
③.就绪(service,继承HttpServlet抽象类)
④.销毁(destory)
2.web.xml
- servlet配置,servlet映射
- load-on-startup(servlet加载顺序)
- url-pattern(servlet访问路径)
- init-param(初始化参数值)
3.ServletConfig对象
java中获取init-param初始化参数值的
4.ServletRequest对象
5.ServletResponse对象
①.get、post请求
- get(参数在地址栏显示),post(参数放在Form Data请求体中,以键值对的形式存在)请求
②.200,404,500,302,304
- 200成功,404资源不存在,500服务器内部错误,302重定向,304查找本地缓存
③.过程
- 以form表单为例(超链接,地址)
- 设置请求方式method,和请求路径action
- 设置表单的name属性,例name=habit
- 用户输入参数
- 参数以键值对形式发送到服务器内部(即action所在路径的servlet),例habit=shopping
- ServletRequest接收参数,例getParameter(“habit”)
- ServletResponse的out.println( “html代码”)将结果响应到服务器端
④.乱码问题
- 客户端编码
- 服务器端解码(request,response)
⑤.重定向
- response.sendRedirect(“http://baidu.com”);
6.ServletContext对象
作用于整个web工程
- 获得上下文路径getContextPath
- 获得全局初始化参数getInitParameter
- 获取作为域数据getAttribute
- 设置作用域数据setAttribute
六、Jsp
- jsp文件:将servlet用于表现页面的内容提取出来写在jsp中。
1.jsp包含
- HTML,注释,Java代码(Jsp声明,小脚本,表达式),指令,内置对象
2.九大内置对象
- request,response,out,session,application,pageContext,page,config,exeception
- 任何一个Jsp最后都会翻译转化成servlet
- jsp中的小脚本或者表达式会当做service里面的核心代码翻译成servlet
3.四个作用域
- 从小到大:pageContext,request,session,application
- 可以调用setAttribute()存储值,getAttribute()获取值
4.转发
- servlet中转发
–request.getRequestDispatcher(“转发地址”).forward(request,response); - jsp中转发
–<jsp:forward page="/xxx.jsp" ></jsp:forward>
- Servlet获取数据,并用setAttribute存储到一个作用域中,转发到一个jsp页面,用getAttribute获取并展现数据
- request.setAttribute(“id”, 101);-----servlet
- Object id=request.getAttribute(“id”);------jsp
- 通过转发来共享数据
- 转发浏览器地址栏地址不变(转发的过程发生在服务器内部),重定向地址会变
- 转发的目的地必须是同一个应用内部的某个地址,决不能跳出应用
5.页面的包含
①.静态包含
<%@ include file="header.jsp"%>
②.动态包含
<jsp:include page="header.jsp"></jsp:include>
- 静态包含页眉页脚,导航栏之类的静态内容,动态包含用于数据库实时查询等动态内容
七、Cookie和Session
将客户端和服务器端多次交互当做一个整体,将多次交互涉及的数据保存下来,提供给后续交互,提供数据管理。
八、EL表达式和JSTL标签库
EL表达式可以给jsp标签的属性赋值,用来直接输出。JSTL标签提供if,choose(相当于java中的switch),forEach(遍历集合和数组)等标签,JSTL和EL结合替换页面中的Java代码:<% %>,<%= %>