黑马程序员技术交流社区
标题: 【石家庄校区】域 [打印本页]
作者: 银河大爆发 时间: 2018-5-21 15:31
标题: 【石家庄校区】域
笔记
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用
Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序JDBC 的使用要通过四个步骤
1.加载驱动Class.forName("com.mysql.jdbc.Driver"); 2.获得连接
Connectionconn = DriverManager.getConnection("jdbc:mysql://localhost:3306(固定语句)/web_test3(连接到的数据库名称)","root(用户名)", "abc(密码)");
3.基本操作:执行SQL
4。释放资源servletcontext域(application域)
1)作用域的实际大小。(是什么?)
servletcontext域起作用的范围是:整个web应用程序。
数据产生之后,不仅等会还要用 ,还要给别人用,则请使用servletcontext。
它是四个域中范围最大的域。
2) 作用域的作用。(有什么用?)
由于一个web应用中的所有servlet共享同一个servletcontext对象,所以多个servlet通过servletcontext对象实现了数据在不同servlet之间的共享。
3)它这样使用实现的原理或优缺点。(为什么可以这么用?)
servlet并不适合做数据输出,故需要将数据转发给JSP文件进行美化再输出给客户端。
JSP中可嵌入java代码,这使得它接收java数据变得可能。同时,由于servletcontext域可使整个web应用共享该数据,因此而带来“线程安全”问题同样影响对转发的数据,故而需要使用request域。
Httpsession域(session域)
1)作用域的实际大小。(是什么?)
Httpsession的作用域是:一次会话。
数据产生之后显示给用户了,等会还要使用的情况下使用Httpsession域。
它是四个域中范围第二大的域。
2) 作用域的作用。(有什么用?)
(会话范围)在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session。如果没有,就在内存中创建一个session并返回。当一短时间内(默认30分钟)session没有被使用,则服务器会销毁该session。若服务器非正常关闭,未到期的session也会跟着销毁。若调用session提供的invalidate()方法,可以立即销毁session。
ServletRequest域(request域)
1)作用域的实际大小。(是什么?)
ServletRequset域是:整个请求链(请求转发也存在)。
数据产生之后,只需要使用一次,这种情况下请使用ServletRequset域。
它是四个域中范围排第三的域。
2) 作用域的作用。(有什么用?)
在整个请求链中共享数据。
最常用到:在servlet中处理好的数据交给JSP显示,此时参数就可以放置在ServletRequset域中带过去。
3)它这样使用实现的原理。(为什么可以这么用?)
在service方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束
常见的会话技术:
* Cookie :将数据保存到客户端浏览器.
* Session :将数据保存到服务器端.
Cookie本身是有大小和个数的限制.Session没有限制.Cookie的数据保存在客户端,Session数据保存在服务器端.
session 的几个方法:
HttpSession session = request.getSession();
session.setAttribute(String name,Object value);
Object vlaue = session.getAttribute(String name);removeAttribute(String name);
public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回 null
public void setAttribute(String name, Object value)使用指定名称将对象绑定到此会话。如果具有同样名称的对象已经绑定到该会话,则替换该对象
public java.util.Enumeration<E> getAttributeNames()返回包含绑定到此会话的所有对象的名称的 String 对象的 Enumeration
范围:一次会话(根本原因:存SesssionID的cookie默认是会话级别的)
配置sessionion过期时间:web.xml
<session-config>
<session-timeout>5</session-timeout> <!--单位是分钟-->
</session-config>session何时创建和销毁?作用范围:
* 创建:服务器端第一次调用getSession()创建session.
* 销毁:三种情况销毁session:
*1.session过期. 默认过期时间为30分钟.
* 2.非正常关闭服务器.如果正常关闭session序列化到硬盘.
*3.手动调用 session.invalidate();
JSP
jsp: Java Server Pages(Java服务器端的页面)
JSP = HTML + Java代码 + JSP自身的东西
注释 : ctrl+shift+/
H TML的注释 :<!-- 注释 -->
Java代码的注释 :// 单行注释 /多行注释/ /** 文档注释 */
JSP的注释 :<%-- JSP的注释 --%>
三大指令: page 指令, include指令, taglib指令
page: 设置 JSP的属性 include:设置包含其他页面 taglib:指示JSP引入标签库
language :JSP脚本中使用的语言.现在只能写java.
contentType :设置浏览器打开这个JSP的时候采用的默认的字符集的编码.
pageEncoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码.
import :在JSP中引入类对象.但是import可以出现多次.
extends :设置JSP翻译成Servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBase,这个值要想修改,这个类必须是HttpServlet的子类
autoFlush :设置JSP的缓存自动刷出.true:自动刷出.
buffer :设置JSP的缓冲区的大小,默认8kb.
session :设置在JSP中是否可以直接使用session对象.默认值是true.
isELIgnored :设置在JSP中是否忽略EL表达式.默认值是false不忽略.
errorPage :设置错误友好页面的提示.
isErrorPage :通过这个设置显示JSP的错误信息.
全局错误友好页面的配置:
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>include指令
可以引入其他页面
<%@ include file="路径" %>
request HttpServletRequest getParameter(), setAttribute(Stringname,Object value);
response HttpServletResponse setHeader(String name,Stringvalue);getOutputStream()
session HttpSession setAttribute(); getAttribute();
application ServletContext setAttribute(); getAttribute();
page Object toString(); wait();
pageContext PageContext setAttribute() ;getAttribute();
config ServletConfig getServletName() ; getServletContext();
out JspWriter write(),print();
exception Throwable getMessage(), getCause();
动作标签:<jsp:forward /> :用于页面的转
<jsp:include /> :动态包含
<jsp:param /> :用于带有路径的标签下,传递参数.
<jsp:useBean /> :用于在JSP中使用JavaBean.
<jsp:setProperty /> :用于在JSP中向JavaBean设置属性的.
<jsp:getProperty /> :用于在JSP中获得JavaBean的属性.
静态包含和动态包含的区别静态包含:相当于源代码的拷贝,只会翻译成一个Java类,有一个执行结果
动态包含:各自分别去翻译,各自执行,最终包含的是
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |