JDBC 1.概念:java database connectivity java数据库连接 Java语言操作数据库 jdbc本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(jdbc)编程,真正执行的代码是驱动jar包中的实现类。 2.快速入门: 步骤: 1.导入驱动jar包 2.注册驱动 3.获取数据库连接对象 Connection 4.定义sql 5.获取执行sql语句的对象 Statement 6.执行sql,接受返回结果 7.处理结果 8.释放资源 3.各个对象: 1.DriverManager:驱动管理对象 1.注册驱动:告诉程序该使用哪一个数据库驱动jar包 2.获取数据库连接: 2.Connection:数据库连接对象 1.获取执行sql的对象 Statement createStatement() PreparedStatement prepareStatement(String sql) 2.管理事务: 开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务 提交事务:commit() 回滚事务:rollback() 3.Statement:执行sql的对象; (在finally代码块中,为防止对象不存在,可将对象声明为null放在try外面,并在finally中判断是否为空(防止报空指针异常),释放资源,) 4.ResultSet:结果集对象;封装查询结果(资源也需要释放) 5.PreparedStatement:执行sql的对象
servlet servlet的体系结构 servlet接口------GenericServlet抽象类------HttpServlet抽象类 GenericServlet:将servlet接口中的其他方法做了默认实现,只将service()方法作为抽象;定义servlet类时,可以继承GenericServlet,实现service()方法即可。 HttpServlet:对http协议的一种封装,简化操作 1.定义类继承HttpServlet 2.复写doGet/doPost方法 servlet相关配置 urlpartten:servlet访问路径 一个servlet可以定义多个访问路径:@webservlet({"/dd","/dd4","/dd5"}) 路径的定义规则:/xx /xxx/xxx多层路径,目录结构 *.do Http 概念:超文本传输协议(hyper text transfer protocol) 传输协议:定义了客户端和服务器端通信时发送数据的格式 特点:1.基于TCP/IP的高级协议 2.默认端口:80 3.基于请求/响应模型:一次请求对应一次响应 4.无状态的:每次请求之间相互独立,不能交互数据 历史版本:1.0每次请求响应都会建立新的连接 1.1复用连接 请求消息数据格式 1.请求行 请求方式 请求url 请求协议/版本 GET HTTP/1.1 7种请求方式中常用的有两种:①GET:请求参数在请求行中,在url后;请求的url长度是有限制的;不太安全 ②POST:请求参数在请求体中;请求的url长度没有限制;相对安全 2.请求头 请求头名称:请求头值 常见的请求头:①user-agent:浏览器告诉服务器,我访问你使用的浏览器版本信息(可以在服务器端获取该头的信息,解决浏览器的兼容性问题)②Referer:http://localhost/资源,告诉服务器,我(当前请求)从哪里来(作用:1.防盗链 2.统计工作) 3.请求空行:空行,就是用于分割POST请求的请求头和请求体的。 4.请求体(正文):封装post请求消息的请求参数的 Request 1.request对象和response对象的原理 1.request和response对象是由服务器创建的,我们来使用他们 2.request对象是来获取请求消息,response对象是来设置响应消息
2.request的继承结构 ServletRequest接口-----HttpServletRequest接口-----org.apache.catalina.connector.RequestFacade类(tomcat) 3.request功能: 获取请求消息数据: 1.获取请求行数据 1.获取请求方式GET String getMethod() 2.*获取虚拟目录:String getContextPath() 3.获取Servlet路径:String getServletPath() 4.获取get方式请求参数:String getQueryString() 5.*获取请求URL:String getRequestURI()或StringBuffer getRquestURL() 6.获取协议及版本:String getProtocol() 7.获取客户机的ip地址:String getRemoteAddr()
登录案例:
