最新Web笔记资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Web课堂笔记
1:servlet入门开发
概念:接受客户端向服务器发送的请求,对请求进行处理,最后对客户端进行相应,servlet程序必须运行在web容器里面,由web容器进行调度以及对生命周期进行管理
javax.servlet.*
javax.http.*
开发servlet的步骤:
1、继承HttpServlet,重写doGet或者doPost方法
2:servlet生命周期
创建:只被创建一次,单实例,常驻内存
请求进行处理:service(),根据客户端提交的请求方式自动调用doGet()或者doPost();
init():对象被创建之后,立即调用该方法,在整个生命周期中被调用一次,可以做资源初始化操作
destroy();在servlet对象被销毁回收之前调用,可以在该方法中做资源释放操作。

2:实现注册功能
获取客户端提交用户数据
HttpServletRequest
getParameter(String name)
String [] getParameterValues(String name)
服务器对客户端进行响应:
HttpServletResponse响应对象
1、通过输出流向客户端动态输出一段网页内容
IO流(输入输出流)
2、跳转到已经存在网页中
servlet之间协作
一个请求需要多个servlet来进行处理
1、请求重定向
sendRedirect();
请求(请求a)---->A---sendRedirect()请求a已经结束;重新发送了一个请求 b--->B--->响应
2、请求派发
协作之间的servlet处理同一个请求,基于这个特点,可以通过请求对象在多个servlet
之间传递数据
请求对象
1、获取数据
2、乱码处理
gb2312/utf-8
响应对象
1、输出流
2、sendRedirect(String url)
servlet之间协作
1、请求重定向
2、请求派发
reqeust.setAttribute()
request.getAttribute()
-----
会话跟踪技术
http通信协议是一种无状态协议
客户端跟服务器进行会话过程中产生的数据,默认的情况下服务器
不会保存数据
会话跟踪:在某些特定场合,需要将客户端跟服务器之间的通信数据进行保存或者跟踪
例如:自动登录,购物车,登录系统之后的操作,都跟当前登录的账号是有关系的
cookie
服务器向客户端保存数据的一种跟踪机制
Cookie(String k,String v)
cookie的生命周期
1:默认是被保存在浏览器的缓存当中
2:setMaxAge(int t)设置cookie的保存方式
-1:默认的保存方式
0:cookie不会被保存
>0:被保存在客户机的磁盘中
cookie的弊端:
1、数据安全问题
2、数据量不宜过大
session
在服务器端保存数据,可以实现在同一网站中
多个不同的请求之间进行数据共享或者跟踪
session原理
1、客户端向服务器发送请求,根据需要创建session对象(服务器自动创建)
并且自动为session对象分配一个sessionId(唯一标识一个session对象)
后续的请求需要session对象,服务器会根据sessionId找到关联的
session对象返回。

如果没有sessionId,服务器会重新创建一个session对象
seesionId--服务器会通过cookie的方式保存在浏览器缓存中
session有效期
指客户端跟服务器进行两次会话的最大间隔时间
默认: 30分钟
关于session的失效
1、超过有效期,自动失效
2、强制失效
invalidate
检查session是否失效
HttpSession session=request.getSession(false)
如果session存在则返回,否则返回null。

ServletContext,过滤器,监听器
--------
jsp(java server page)
方便开发动态网页。

静态网页与动态网页的区别:指数据是否能实时更新或动态加载
jsp(在服务器端进行编译执行的,最终将执行结果显示在客户端)
jsp本质就是servlet
jsp:html,javascript,css,jsp特有内容
jsp原理:
jsp第一次被请求的时候,web服务器将jsp进行解析(转换成一个servlet),
然后再对servlet进行编译,执行(过程与servlet本身一致)
后续相同的请求,不会将jsp进行编译.直接响应
jsp语法:
1:插入一段java可执行代码
<%
java代码
%>
2:声明方法或者声明全局变量
<%!
定义变量或方法
%>
在当前jsp页面有效
3:输出表达式的值
<%=表达式%>
如果考虑网页元素的结合度,使用该方式比out要灵活
4:jsp中的注释
<!---->
如果注释的内容有jsp的代码,仍然会被编译执行。

结果不可见
<%--内容--%>
注释内容不会被编译和执行
5:jsp的指令
格式:<%@指令名属性1=值1 属性n=值n%>
5.1 page指令
表示jsp页面相关的全局信息
import属性导入包
language 表示在jsp中的编程语言,只能是java
pageEncoding 当前jsp页面中的字符编码集
errorPage 表示当前网页出现异常之后,指定跳转的目标网页
isErrorPage 如果要在网页中使用exception,必须将该属性设置
为true
buffSize:输出流的缓冲区大小
autoFlush:缓冲区满的时候,是否自动刷新
isThreadSafe:表示是否线程安全
session:是否支持session会话
5.2 include
<%@include file=""%>
静态包含指定的网页(在包含处将指定网页拷贝过来) 避免java程序命名冲突问题
1、包含的文件,不能是url
2、不能在包含的文件后面传递参数
5.3 taglib
内置对象
out request response exception
session--HttpSession
application--ServletContext
ServletContext--表示整个web应用程序全局上下文环境request--具备派发关系
session--系统用户级别的共享
application--整个应用程序级别的共享
config--ServletConfig
ServletConfig--表示servlet程序在web.xml中的配置相关信息
config--获得jsp在web.xml中的配置信息
<servlet>
<servlet-name>demo2</servlet-name>
<jsp-file>/config.jsp</jsp-file>
<init-param>
<param-name>name</param-name>
<param-value>king</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>demo2</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>
page
表示当前jsp(jsp转译之后的servlet程序) pageContext
表示当前jsp的页面上下文环境
1、数据的存取
setAttribute()/getAttribute()
作用域是在当前jsp中有效
2、提供了另一种获取jsp内置对象的途径
包装类
int ---Integer
Integer a=new Integer(4);
自动装箱/拆箱
Integer b=12;
int c=a;
byte--Byte
pageContext,request,session,application
-------------------
EL表达式/标准动作/标签库
作用:将表达式进行运算输出结果
语法:${表达式}
${10-3}
el表达式的开关:
page指令中的属性 isELIgnored="true|false" 默认false,true--忽略
1、获取存储在四大作用范围中的属性
${范围.属性}
pageContext--pageScope
request--requestScope
session--sessionScope
application-applicationScope
2、自动获取请求提交的参数
request.getParameter("")
${param.参数名}
.../el.jsp?参数名=值&参数=值
${paramValues.参数名} 参数值有多个的情况。

EL表达式
${表达式}
<%@page isELIgnored="true|false"%>
1、el去获取作用域中的属性
pageContext,request,session,application
${范围.属性}
pageScope,requestScope,sessionScope,applicationScope 2、获取请求提交的参数的值
${param.参数名}
request.getParameter();
${paramValue.参数名}
String [] request.getParameterValues();
--------------
jsp标准动作标签
标准动作:
语法:
<jsp:动作名属性=值/>
1、简化标准的javabean对象的创建以及对象属性的操作
(vo,dto)--提供私有属性,以及为属性提供标准的set/get 方法
必须有一个无参数构造方法
<jsp:useBean>
创建java对象,并且可以将对象存储到作用域当中
id:对象的唯一标识
class:完整类名
scope:存储范围 page,request,session,application 为对象的成员属性赋值
<jsp:setProperty name="" property="" value=""/>
name:javabean的唯一标识,相当于useBean的id属性的值
property:成员属性名
value:属性值,可以是常量或者是el表达式
<jsp:setProperty name="" property="" param=""/>
获取参数的值为对象的属性赋值
<jsp:setProperty name="" property="*"/>
如果参数名和对象的属性名相同,系统会自动匹配封装
<jsp:getProperty name="" property=""/>
获取对象的属性的值
<%@include file=""%>
静态包含:将被包含页面的代码拷贝,和当前的jsp作为整体进行编译执行
<jsp:include page=""></jsp:include>
动态包含:向服务器发送一个请求,将服务器请求处理的结果
包含到当前位置
可以向包含的页面传递参数
<jsp:param name="" value=""/>
<jsp:forward page=""> 实现跳转(请求派发)
也可以向跳转的页面传递参数<jsp:param>
-------------
jsp中的标签:
在jsp使用内置标签的时候,系统会自动的调用后台的标签程序进行
简单的逻辑处理
1:导入标签库
<%@taglib uri="" prefix=""%>
set:定义变量,以及将变量存储到某个作用域当中
out 输出变量值
if条件判断 forEach
MVC开发模式开发案例
java操作数据库
oracle c/s架构
-------
数据库服务器
---创建多个数据库(数据库实例XE)
---多个用户(账号)system(dba)
启动:
数据库服务
监听器 1521
plsqldev.exe/toad
---------
jdk中的jdbc:用于完成java操作数据库的一套api 1:连接(登录)数据库
1.1获取数据库厂商提供的驱动程序
1.2 连接数据库
1、假设vo对象的属性满足:
1.1 属性名跟相应表的字段名相同
1.2 属性的数据类型统一使用String
2:查询结果集的字段数量以及字段名
3:反射机制
Class--所有类的写照,jvm加载class文件的时候,对class 文件
进行解析生成一个对象Class
可以通过Class获得类的内部结构: 可以实现对象的动态创建,方法动态调用
高内聚低耦合
jsp+javabean模式
MVC
View--视图(客户端UI)html,jsp
只负责向服务器发请求,将响应结果展示
Control--控制器 servlet(前台)
接受客户端的请求,并且将请求的具体业务处理交给M,M返回结果给Control,Control将结果响应给客户端 Model--模型(1:业务层:处理具体的业务逻辑 2:数据处理层dao)
mvc--开发模式
数据库--oracle
数据库服务器
---多个数据库实例(XE)
---多个账号
--system(dba)
jdbc api:提供了java程序操作数据库的一套api
1、java连接数据库
1.1 获得数据库厂商提供的驱动程序
C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib 1.2 连接数据库
jsp+javabean(页面的布局显示、处理业务逻辑)
MVC
View---视图层(html,jsp)
1:向服务器发送请求
2:获得响应结果进行显示
Control---控制器(servlet)
1:接受客户端的请求
2: 请求的具体处理事项交给M
3:将处理结果相应给View
Model--模型(1:处理业务逻辑 2:操作数据库)。

相关文档
最新文档