1.JSP运行原理
(1)用户通过客户端浏览器向服务器发送请求。
(2)JSP文件将JSP引擎编译成Java的class文件,即servlet。
(3)将产生的servlet加载到内存执行。
(4)Servlet的运行结果以HTML(或XML)形式通过web服务器返回客户端的浏览器。
2.web项目设计
(1)公开目录 (2)web_INF目录 (3)Class目录
3.JSP的基本语法
(1)脚本元素:声明、脚本段、表达式。
(2)脚本段:<%>
(4)表达式:<%=>
(5)EL表达式:${ }
(6)指令元素:<%>不在客户端可见
用于包含其他文件可以是静态文件,也可以是动态文件。?包含动态文件时
用传 (建一值)
考点:
4.指令与动作的区别(include)
1.执行时间不同
指令<%@ include="" file=" ">是偏译时包含静态文件
动作?是运行时包含的文件
2.引入内容不同
指令<%@include file="relatirveURI">引入静态文本(html.jsp)。
动作引入执行页面或severlet的应答文本。
5.JSP内置对象
Out,request,response,session,application,page,pageContext,exception,config
request客户端向服务端发送请求。
response用于服务器端封装JSP处理请求后产生的结果。
response对象的send Redirect(url)方法相当于两次请求。
而在网址不变情况下内部跳转不同页面,但依旧属于同一次请求
6.session和cookie的区别
1.存放地点不同
Session存放在服务器端,cookie存放在客户端的硬盘里
2.存活时间
session随用户访问服务器而产生,随客户下线或超时而消失
3.安全性
session存放在服务器端,不能被修改,且随客户端浏览器的关闭而消失,安全性较好。Cookie存放在客户端,安全性较差。
7.数据库
java.sql.Driver
java.sql.DriverManager——加载驱动程序
java.sql.Connetion——表示数据库连接对象,对数据库一切操作都在这个基础上
java.sql.Statement——执行SQL语句和返回结果
java.sql.ResultSet——结果集用来暂时存放数据库查询操作结果
8.编写程序的步骤
1.装载驱动程序
class.forName("com.mySQL.jdbc.Driver")
2.定义所需连接数据库的地址
String mysqlURL="jdbc.mysql://host:port/dbName"
3.建立与数据库的连接
Connection conn=DriverMannager.get Connection(url,"登录数据库用户名","
密码")
4.声明并执行SQL语句
5.处理返回的结果
6.关闭对象
String driverStr="com.mysql.jdbc.Driver"
String connstr="jdbc:mysql://localhost:3306/book";
Class forName(driver Str)
Connection conn=DriverManager.getConnection(connstr."root"."123") 第4步:建立语句对象
Statement stmt=conn.createStatement()
第5步:声明并执行SQL语句
String sql="select*from book";
ResultSet rs=stmt.executeQuery( sql);
第6步:
Statement接口的3个方法:1、ResultSet executeQuery(String sql)
2、int execute Update(String sql)
3、boolean execute(String sql)
ResultSet的方法:1、boolean next()
2、get xxx()
第7歩:rs.close() stmt.close() con.close()
注:关闭资源的顺序与打开资源顺序恰好相反。
第8步:异常处理
try{.........}catch(SQLExecption ex){.........}
9.Java Bean 组件(可重用)
组件:是一个独立的模块,外界可以不了解内部如何实现,只需通过其提供的接口对组件进行访问即可,组件可重用。
特点:1、实现代码重复使用;2、易编写,易维护,易使用。
10.Java Bean类的编码约定
1、类实现了java.io.Serializable接口
2、必须放在某个Package(包)中
3、类中如果有构造方法,那么这个方法是共有的,并且无参数
4、所有属性都是私有的(private修饰)
5、get XXX:用来获取属性,此方法是共有的
6、set XXX:用来设置属性,此方法是共有的
7、对于boolean类型的成员变量允许使用“is”代替“get”和“set”
8、类中的普通方法不适合上面的命名规则,但这个方法必是public的。
3个标记:
网页中创建JavaBean实例
用于为bean中的属性赋值
用于获取bean中属性的值
id=”javaBean实例名” class=”javaBean对应的类名”设置的属性
获取JavaBean实例指令的属性值,并将这个值转换成字符串显示到JSP页面。
11.servlet的生命周期
(1)当客户第一次请求servlet时,servlet被加载到内存 容器会创建servlet实例,并调用其init()方法进行初始化工作。
(2)容器创建请求对象,然后调用servlet的service()方法为客户提供服务。
(3)当servlet不再被需求时,容器调用servlet的destory()方法将servlet实例销毁。
12.Servlet开发
引入import.javax.servlet.* 和import.javax,servlet.http.*包
13.Servlet过滤器
Servlet过滤器是一种java组件,它位于客户端和处理程序之间
Servlet过滤器工作原理
14.Model1和model2
Model1:JSP+JavaBean
Model2:JSP+Servlet+JavaBean
Model1中,jsp页面实现页面显示、业务逻辑和流程控制,数据处理由JavaBean完成。
优点:进行快速和小规模的应用开发时优势非常明显。
缺点:不利于web应用的扩展和更新;调试和排错困难。
Model2中,MVC模式--->模型-视图-控制器.即把web应用的输入输出和处理流程按照Model.View和Controller分成三层。
Model1和Model2的区别:
Model1和Model2实际上就是对采用JSP技术开发的web应用的不同模型的描述。Model1采用JSP+JavaBean技术开发web应用,它比较适合小规模应用的开发,效率较高,易于实现,但由于在JSP页面中内嵌了大量的Java代码,以至于当业务逻辑复杂时,代码可维护性、可扩展性和可重用性就会下降;Model2采用JSP+Servlet+JavaBean技术开发web应用,该模型基于MVC模式,完全实现了页面显示和逻辑的分离,它充分利用了JSP和Servlet两种技术的优点,JSP更适合前台页面的开发,而Servlet更擅长服务器端程序的编写,Model2分工明确,更适合大型项目的开发和管理。
视图(view)用于与用户交互,可以用HTML.JSP实现。
15.模型(model)用于表示业务数据和实现业务逻辑,可以用JavaBean实现 控制器(controller)完成流程控制,它接收来自视图层用户输入的数据,并调用相应的模型进行处理,最后选择合适的视图去响应用户。控制层可以用Servlet实现。
优点:MVC模式完全实现了页面表示和业务逻辑的分离;
MVC优势之一在于三层各司其职,互不干涉。
缺点:没有明确的定义。
模型层为JavaBean,实现了数据的表示和业务逻辑,视图层为JSP页面,只负责显示功能。
控制器为Servlet,负责接收用户的请求,设置JavaBean属性,调用JavaBean完成业务处理,最后将处理结果交给JSP页面显示。
16.自定义标签
对隐式对象的操作、处理表单、访问数据库及其他企业级服务。
自定义标签种类:
1.不带有属性和标签体:
2.带有属性没有标签体的标签:
3.带有属性带有标签体:myBody
17.EL表达式
基本语法${expr}
功能:对属性对象的简明访问:${user}
对属性对象的属性访问:${customer.firstname}
对属性集合元素的访问:对数组和list:${variable[index]} 对map:${variable[key]}
对请求参数cookie等的简单访问.
请求参数${param.custID}
Cookie对象:${cookie.userCookie}
18."."操作符和"[ ]"操作符
${user.address}=${user[address]}
访问数组和集合元素,需使用[ ]
因篇幅问题不能全部显示,请点此查看更多更全内容