黑马程序员技术交流社区

标题: 【石家庄校区】 [打印本页]

作者: 哒哒哒~~    时间: 2018-5-21 16:16
标题: 【石家庄校区】
                                                                     学习笔记
DBUTILS ---->web阶段创建JDBCUtils工具类   使用c3p0连接池连接池可以使用的工具
    //创建连接池
    private static final ComboPooledDataSource dataSource =new ComboPooledDataSource();
   
    //获得连接方法 从连接池中获取
    public static Connection getConnection() throws SQLException{
        return dataSource.getConnection();
    }
    //创建一个获取连接池的方法
    public static DataSource getDataSource(){
        return dataSource;
    }
    //释放资源
    public static void release(Connection conn, PreparedStatement ppttm, ResultSet rs ){
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

            rs = null;
        }
        if (ppttm != null) {
            try {
                ppttm.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

            ppttm = null;
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
    public static void release(Connection conn, PreparedStatement ppttm){
        
        if (ppttm != null) {
            try {
                ppttm.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            ppttm = null;
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
增删改QueryRunner qr = new QueryRunner(DataSource dataSource)
qr.update(String sql,Object ... obj)查询 BeanHandler
//查询一条记录到数组中 使用BeanHandler
public void demo3() throws SQLException {
        QueryRunner qr = new QueryRunner(JDBCUtils3.getDataSource());
        Usb usb = qr.query("select *  from usb where id =?", new BeanHandler<Usb>(Usb.class), 12);
        System.out.println(usb);
    }
//查询多条到集合中  使用BeanHandler
public void demo4() throws SQLException {
        QueryRunner qr = new QueryRunner(JDBCUtils3.getDataSource());
        List<Usb> list = qr.query("select * from usb", new BeanListHandler<Usb>(Usb.class));
        for (Usb usb : list) {
            System.out.println(usb);
        }
    }
使用ScalarHandler

//查询单列的记录 使用 ScalarHandler 返回 long 类型的值
@Test
    public void demo7() throws SQLException {
        QueryRunner qr = new QueryRunner(JDBCUtils3.getDataSource());
        Object object = qr.query("select count(*) from usb", new ScalarHandler());
        System.out.println(object);
    }
w使用MapHandler
//查询单条存入到 Map集合
public void demo5() throws SQLException {
        QueryRunner qr = new QueryRunner(JDBCUtils3.getDataSource());
        Map<String, Object> map = qr.query("select * from usb where id=?", new MapHandler(), 13);
        System.out.println(map);
    }
//查询多条到 Map 集合并将对象存到List 集合
public void demo6() throws SQLException {
        QueryRunner qr = new QueryRunner(JDBCUtils3.getDataSource());
        List<Map<String, Object>> list = qr.query("select * from usb ", new MapListHandler());
        for (Map<String, Object> map : list) {
            System.out.println(map);
        }XML解析:DOM4j+Xpath
导入两个jar包:
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar

SAXReader sr = new SAXReader()
Document document =  sr.read("代表这个xml文档的流");
List<Node> list = document.selectNodes(String xpathExpression)
        遍历出每个要找的
    .getText()';就是其中的值'
Node node =  document.selectSignalNode(String xpathExpression)

xpathExpression:
    //元素名称   
    //元素名称[@属性名称]
    //元素名称[@属性名称='属性值']request&response
文件下载
中文文件下载
response 输出响应内容的方法
request
cookie和session(会话技术)(把数据保存到会话中)
cookie : 将数据保存到客户端浏览器(分为会话级别的 和 持久级别) ------>会话: 关掉浏览器就销毁 持久--->按设置的时间销毁
​       

#// 向浏览器保存数据 HttpServletResponse 中的方法
    void  addCookie(Cookie cookie);
#// 获得浏览器带过来的 cookie HttpServletRequest中的方法
    cookie[] getCookies();
#// 创建一个cookie对象
    Cookie cookie = new Cookie(String name , String value);  
#// 获取cookie中的name值
    String name = cookie.getName();
#//获取cookie中的value值
    String value = cookie.getValue();
// void  setDumain(String pattern); 设置cookie的有效路径 不常用
#//设置cookie的有效路径 (可以用来移除设置的有效时间 要求cookie的Name相同 路径相同 setMaxAge(0))
    void setPath("/一般是项目的根目录");
#//设置cookie的有效时间
    void setMaxAge(xxx); xxx=设置的时间 以秒为单位 ;
    当值设置成0 的时候可以移除 设置的有效时间 需要和setPath(/day_2???);使用 有效路径和name要和设置的时候保持一致JSP:JSP脚本元素(嵌入的JAVA代码):
JSP注释  什么样的代码用什么样的注释!!!~~~HTML注释不能注释JAVA代码JSP指令 3大指令
JSP内置对象  9大内置对象   可以在JSP中直接使用的对象
request           HttpServetRequest
response         HttpServetResponse
session           HttpSession
application       ServletContext
page              Object
out               JspWriter
pageContext       PageContext
config            ServletConfig
exception         Throwable
技能 拔高点:pageContext:
​        1.获取其他8个内置对象:getXXX()方法
​        2.可以向四个域中存取数据:

pageContext.setAttribute("pname", "pvalue", PageContext.PAGE_SCOPE);
pageContext.setAttribute("rname", "rvalue", PageContext.REQUEST_SCOPE);
pageContext.setAttribute("sname", "svalue", PageContext.SESSION_SCOPE);
pageContext.setAttribute("aname", "avalue", PageContext.APPLICATION_SCOPE);


<%= pageContext.getAttribute("pname", PageContext.PAGE_SCOPE) %>
<%= pageContext.getAttribute("rname", PageContext.REQUEST_SCOPE) %>
<%= pageContext.getAttribute("sname", PageContext.SESSION_SCOPE) %>
<%= pageContext.getAttribute("aname", PageContext.APPLICATION_SCOPE) %>
JSP动作标签  一系列动作标签
<jsp:forward page=""> /jsp:forward
<jsp:include page="">/jsp:include :动态包含
静态包含和动态包含的区别(面试点四)
静态包含:相当于源代码的拷贝,只会翻译成一个Java类,有一个执行结果

动态包含:各自分别去翻译,各自执行,最终包含的是执行的结果
session : 将数据保存到服务器端
web.xml设置过期时间
<session-config>
     <session-timeout>5</session-timeout> <!--单位是分钟-->
</session-config>Session作为域对象存取数据创建对象的方法 HttpSession  session  = request.getSession();
session.setAttribute(String name,Object value);Object vlaue = session.getAttribute(String name);removeAttribute(String name);
EL&JSTL与MVCEL
EL的概述Expression Language 表达式语言EL的作用简化JSP的代码,而且减少<% % >使用EL表达式语法: ${EL表达式 }EL的功能获取数据:
${ name } 相当于 pageContex.findAttribute(name).优先级也一样page > request > session > application
JSTL作用:
版本JSTL1.0 :不支持EL表达式JSTL1.1和1.2 :支持EL表达式
使用JSTL
由JSTL提供的EL函数库
MVC 设计模式
模式二也叫做MVC模式







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2