国庆复习
国庆放了7天,回来之后对mysql,html/css,jdbc,Servlet,Jsp,Struts2进行了复习。
0、MySql
增删改查
分页(简单 关键字limit)起始条数 每页展示的条数 limit 6,3
**oracle分页(子查询 伪列:隐藏列rownum)【自学】**
1. 员工表 查询工资大于10000的部门信息
查询语句 嵌套 查询语句(复习忘了)
2.增删改查
增:
insert into 表名(列) values(全部列值);
insert into 表名 values(全部列值);
删:
delete from 表名 where 条件(不加条件删除全部表数据)
改:
update 表名 set 列名=列值 where 条件(不加条件删除全表的值)
查:
select * from 表名 where 查询条件
1、JDBC
使用Java程序访问操作数据库的相关API(一组功能接口)
javaEE编程规范之一
1、核心API:核心接口与|六个步骤
DriverManager:链接管理类
Connection:链接对象接口
PrepareStatement:sql操作数据库接口
ResultSet 结果集接口
编程步骤:a.加载驱动
b.获取链接对象 参数:url.username password
c.准备sql语句
d:装载sql语句
【填充动态参数】
e.执行SQL
f.处理结果 增删改 返回影响条数 查询:返回结果集,需要处理
g.关闭资源 先开后关
2.工具类 封装获取链接 关闭资源 简化开发
3. 设计思想 dao 数据访问对象 封装是对某个实体类的增删改查操作
编程思想 ORM:对象关系映射 用java中的类去映射数据库中的表 一一对应
4. service 业务层 设计思想 封装的是用户的功能或者操作封装成业务类中的方法
action调业务
事务:保证业务操作的完整性,整体提交,整体回滚【转账】
JDBC默认事务控制,手动控制 conn.setAutoCommit(false);
conn.commit();提交
conn.rollback();回滚
数据库中的事务:保证一组Sql语句操作的完整性
特性:原子性,一致性,隔离,持久性
2、Html&CSS
1.HTML:
HTML标记语言 静态网页 标签
<img src="图片的路径"/>图标
<a href="链接资源的目标位置"></a>超级链接
<thead></thead>
<table>
<tobdy>表格体
<tr>
<td>行</td>
</tr>
</tobdy>
</table>表格
<tfoot></tfoot>
<form action="" method="get/post">
<input type="text"/>
<input type="password"/>
<input type="radio"/>单选
<input type="checkbox"/>复选
<input type="date"/>
<input type="file"/>
<input type="text"/>
<input type="hidden"/>
<input type="submit"/>
<input type="button"/>普通按钮
<input type="reset"/>重置按钮
<select>
<option>列表项
</option>
</select>下拉列表
<textarea/>
</form> 表单用来收集客户端数据的一种方式
2.css美化页面 为HTML页面增加样式
三种添加样式的方式
(1)内嵌式,在标签中使用style属性
(2)内联式:写在head中
<style type="text/css">
选择器:id
标签选择器
类选择器
多路选择器
层次选择器
</style>
(3)外联式
a.新建样式文件 xxx.css
b.引入样式文件
<link rel="stylesheet" href="" type="text/css"></link>
(4)布局div+span
核心:盒子模型 border边框设置 padding内边距 margin外边距、外补白
3、Servlet
1.服务器小程序 服务端的代码片段 服务端的java程序响应式编程
javaWeb编程的基础,JavaEE编程规范之一
作用:动态打印HTML网页,实现页面的动态展示
编程:
写类:implements Servlet 覆盖service方法 Servletrequest Servletresponse 5个方法
配置:对外访问路径 url-pattern /xx Servlet-name Servlet-Mapping Servlet-clss
**2.URI/URL/URL-pattern的区别**
(1). URI:统一资源**标识符:标识网络中的每个资源,一定能找到,使用某些资源,引jar包 ** **抽象或物理资源的一个紧凑字符串**
<%@taglib prefix="c" uri="统一知识标识符 http://java.sun.con/jsp/jstl/core"%>
jstl:<c:>
(2). URL:统一资源**定位符:不一定能找到,是调到每个位置**
404,超级链接URL,form表单URL,
定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor。
(3). URL-pattern:表示Servlet程序对外访问路径
资源:视频,图片,音频,文件,程序
3.第二种开发方式:适配器 23设计模式之一|2线程
类 HttpServlet implements Servlet 实现五个方法 提供空实现
(1). MyServlet extends HttpServlet 覆盖 核心服务方法 service(HttpServletRequest,HttpServletSesponse)
(2).配置 配置对外访问路径 url-pattern
4.跳转:一个Servlet到另外一个Servlet的过程
方式:forward 请求转发:服务器内部的请求转发,客户端感知不到 一次请求 地址栏不变
可以使用request作用域传递数据
redirect 重定向:借助于客户端重新发送请求到目标资源 两次请求 地址栏发生变化 不能使用request作用域
语法:reques.getRequestDispatcher("目标Servlet url-pattern").forward(request,response);【把原始的请求响应传过去】
response.sendRedirect("/项目名/资源路径 url-pattern");
5.开发模式
Servlet 负责接收数据:
request.getParameter();-->String类型 多次数据需要多次调用,手工转化,类型转换
Servlet调用业务:
调用业务实现类对象 调用业务方法即可
Servlet负责响应式打印页面:
设置响应类型:response.setContentType("tetx/html;setChar=utf-8");
设置编码格式:response.setCharacterEncoding("utf-8");
获取页面输出流:printWriter out=response.getWriter();//字符过滤输出流
响应数据:out.print("资源");
关闭资源:out.close();
6. Filter过滤器:
作用:用于抽取多个Servlet中的共同代码
目的:提高开发效率。减少冗余代码提高代码的可维护性
编码过滤器:编码设置
Session过滤器:登录验证
开发步骤:
1、写类 implements Filter 覆盖核心方法 doFilter 用来存放共有代码
放行:filterChain.doFilter(request,response)
2.配置过滤器要过滤的Servlet
<filter><filter-name><filter-class>
<filter-mapping><filter-name><url-pattern>
过滤细节:
1.过滤单个Servlet直接书写目标Servlet的url-pattern
2.过滤全部 /※
3.过滤部分 a、二级目录 b、书写多个url-pattern指定要过滤的访问路径
4.过滤响应 先让响应通过 过滤器中先书写放行代码,共有代码放在响应之后
5.中断请求
a.不能调用filterChain.doFilter();
b.提供一个跳转路径,完成跳转,比如:跳转到错误提示页面
URN = Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。
4、Jsp
1.jsp是java服务页面,动态实现展示数据,动数据
2.基础语法:
(1)脚本:<%=%> 输出脚本 <%!%>声明脚本 <%%>普通脚本 脚本与脚本之间不能嵌套,与标签之间不能嵌套,可读性差,复杂
(2)指令:poge taglib include
page:对页面的一些设置
属性:
contentType="text/html;setChar=utf-8"设置响应类型,和响应编码
pageEconding="utf-8" 设置jsp页面翻译成java以及编译为clss文件的编码设置
language="java"
isELIgnored="false"不忽略EL表达式
import=""导包
session="true" 有则用,没有新建 false:有则用没有不用
errorPage="/xxx/xxx.jsp":指定当前页面出现异常后要跳转的页面
iserrorPage="true"能被跳:当前页面是不是错误页面(能不能被当前页面当成错误页面)
include:可以将多张页面整合到一张,把多张页面的源代码整合到当前页面中 静态包含
taglib:引入外键标签库使用<%@taglib uri="资源标识符" prefix="别名">
(3)动作:
include 包含动作 将多张页面整合为一张页面,将多张页面的输出流直接响应到客户端
(4)内置对象:
request response session application, pageContext out page Exception,config
3.高级语法:
el:
El表达式:从作用于中获取数据并展示
${命名属性的名字} 从作用于中一次查找,从小到大 pageContext-->request-->response-->application
${作用于.命名属性的名字}如:${pageContext.xxx}
jstl标签库:遍历 判断,和EL配合展示数据
5个字库:core[核心标签库] sql fmt【数据转换】 xml 函数库
1.需要依赖 jar包
2.使用taglib指令引入标签库中的某个子库<%@taglib prefix="c"%>
核心标签:<c:if test="判断条件"> <c:forEach var="当前元素名" item="要遍历的数组和集合">
常用语法:动态获取应用名
${pageContext.request.ContextPath}
5、Struts2
1.Struts2 MVC模式中C层中的框架
a、框架:半成品,解决的是通用问题 简化开发 提高升开发效率
开发模式:框架+特有业务逻辑=应用
b、MVC编程思想,认为划分为三个层次
M层:模型层 entity+dao+service完成
V层: jsp+html页面
C层:Controller Servlet/Struts2 控制层
2.Struts2框架 替换Servlet充当程序控制器
两种开发方式 区别:需不需要强制覆盖execute()
第一种:类 implements Action 覆盖服务方法 execute() //接收数据 调用业务 跳转页面
第二种:类 extends ActionSupport 覆盖服务方法execute() //接收数据 调用业务 跳转页面
3.Struts2配置:
//必须有管理Action标签
<package name="随意,包名唯一" extends="固定值 struts-default" namespace="/包名">
<action name="action的访问路径" class="action的全限定名">
<result name="action中的返回值">跳转的目标位置</result>
</action>
</package>
4.工具类
ServletActionContext 用于获取请求和响应对象
主要获取作用域 ServletActionContext.getRequest().getSession();获取Session对象
5.Servlet的跳转
基本跳转
Action-->Action
forward:chain
redirect:redirectAction
Actioin-->jsp
forward:dispatcher
redirect:redirect
6.成员变量的作用
(1).接收Client的请求参数 a.提供成员变量
(2).替换request作用域传递数据 b.提供相同类型数据相同的成员变量
使用成员变量存储要传递的数据
值栈:root/contentMap
成员变量的作用:
1.接收Client的请求参数
2.替换request作用域传递数据
Web应用程序中作用域 3个 购物车数据 在Session销毁时会持久化到数据库中
Request 一次请求有效
Response 一个浏览器有效 一次会话有效
ServletContext 一个项目有效