JSP内置对象及其应用场合Word格式文档下载.docx
《JSP内置对象及其应用场合Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JSP内置对象及其应用场合Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
两者结合起来完成动态网页的交互功能。
实现页面重定向
1.response.sendRedirect(String
newPath);
2.//newPath可以是目标路径、相对路径也可以是不同主机的其他URL地址
3、out对象
向客户端浏览器输出信息
1.out.print();
2.out.println()
4、session会话对象
用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间称为一次会话。
每个用户在刚进入网站时,服务器会生成一个独一无二的sessionid来区分每个用户的身份。
如果关闭浏览器或者长时间不向服务器发出请求,session就会失效。
1.//创建和获取会话
2.session.setAttribute(String
s,Object
3.session.getAttribute(String
s);
4.//移除会话中的数据
5.session.removeAttribute(string
6.//设置会话有效时间
7.session.setMaxInactiveInterval(3600);
8.//销毁session
9.session.invalidate();
5、application会话对象
用于保存应用程序中的公共数据,与session对象相比,生命周期更长,类似系统的全局变量。
在服务器启动时自动创建,在服务器停止时销毁。
所有访问同一项目的用户共享一个application
1.application.setAttribute(string
o);
//保存数据
2.application.getAttribute(String
//获取指定的application对象
3.application.getAttributeNames();
//获取所有的application对象
4.application.removeAttribute(String
//移除指定名称的属性
6、page对象
page对象是包含当前servlet接口引用的变量,可以看做是this的关键字的别名。
7、pageContext对象
pageContext是一个很特殊的对象,通过他可以获取JSP页面的request、response、session、application、exception等对象。
该对象的创建和初始化由容器完成,在JSP页面中可以直接使用pageContext对象。
8、config对象
config对象主要用于获得服务器的配置信息,通过pageContext对象的getServletConfig()方法可以获取一个config对象。
当初始化一个servlet时,容器把某些信息通过config对象传递给这个servlet。
开发人员可以在web.xml文件中为应用程序环境中的servlet程序和JSP页面提供初始化参数。
9、exception对象
exception对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置isErrorPage属性值为TURE的页面才可以使用,在一般的页面中使用无法编译JSP文件。
JavaBean技术
JavaBean就是把程序中的实体对象及业务逻辑单独的封装到Java类当中。
然后再JSP页面中调用这个封装好的类,这样可以降低HTML与Java代码的耦合度,简化界面。
JavaBean的规范:
公共的无参构造方法:
这样可以通过new直接对该对象进行实例化。
类的申明非final类型:
final类型不可更改。
实现可序列接口:
JavaBean应该直接或间接的实现Java.io.Serializable接口,已支持序列化机制。
为属性声明访问器
在实际开发中,JavaBean的属性应该用小写字母开头,采用驼峰命名法。
Produce类
1.public
class
Produce
{
2.
private
String
name="
Java编程宝典"
;
3.
double
price=200;
4.
int
count=10;
5.
6.
public
Produce(){}
7.
getName()
return
name;
}
8.
void
setName(String
name)
this.name
=
9.
getPrice()
price;
10.
setPrice(double
price)
this.price
11.
getCount()
count;
12.
setCount(int
count)
this.count
13.}
在index.jsp中访问
1.<
%@
page
contentType="
text/html;
charset=UTF-8"
language="
java"
%>
2.<
jsp:
useBean
id="
Produce"
class="
com.java.model.Produce"
>
<
/jsp:
useBean>
3.<
html>
head>
title>
$Title$<
/title>
/head>
body>
ul>
li>
名称:
%=Produce.getName()%>
/li>
价格:
%=Produce.getPrice()%>
数量:
%=Produce.getCount()%>
/ul>
13.
/body>
14.<
/html>
JDBC技术
1、使用jdbc
连接步骤:
1.
装载驱动程序:
Class.forName(“指定数据库驱动程序”);
Class.forName("
com.mysql.jdbc.Driver"
2.创建数据连接对象,
通过DriverManager类创建数据库连接对象Connection。
DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBCConnection对象。
Connection
conn=DriverManager.getConnection(url,user,password);
其中,URL=协议名+IP地址(域名)+端口+数据库名称,用户名和密码是指登录数据库时所使用的用户名和密码。
connection
DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/database"
3.创建Statement对象:
Statement类的主要是用于执行静态SQL语句并返回它所生成结果的对象。
通过Connection对象的createStatement()方法可以创建一个Statement对象。
(实际项目中推荐使用preparedStatement)。
//定义sql语句?
表示占位符
sql
"
select
*
from
user
where
username
?
//获取预处理statement
preparedStatement
connection.prepareStatement(sql);
//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为参数值
preparedStatement.setString(1,
王五"
4、调用Statement对象的相关方法执行相对应的
SQL语句:
通过execuUpdate()方法用来数据的更新,包括插入和删除等操作。
通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。
通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。
如果当next()方法返回null,则表示下一行中没有数据存在。
//向数据库发出sql执行查询,查询出结果集
resultSet
preparedStatement.executeQuery();
//遍历结果集
while
(resultSet.next())
System.out.println(resultSet.getString("
id"
));
5、关闭数据库连接(重要!
)
//释放结果集,从后往前释放
resultSet.close();
connection.close();
实例:
4.public
JdbcTest
static
main(String[]
args)
//数据库连接
null;
//预编译的Statement,使用预编译的statement提高数据库性能
PreparedStatement
=null;
//结果集
ResultSet
try{
//加载数据库驱动
14.
15.
//通过驱动管理类获得数据库连接
16.
3308/myatis"
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
}catch(Exception
e){
30.
e.printStackTrace();
31.
}finally
32.
33.
if(resultSet!
=null){
34.
35.
36.
}catch(SQLException
37.
38.
39.
40.
if(preparedStatement!
41.
42.
preparedStatement.close();
43.
44.
45.
46.
47.
if(connection!
48.
49.
50.
51.
52.
53.
54.
55.
56.}
2、事物
JDBC中的事务操作:
在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。
我们通过提交commit()或是回退rollback()来结束事务的操作。
关于事务操作的方法都位于接口Java.sql.Connection中。
首先我们要注意,在JDBC中,事务操作默认是自动提交。
也就是说,一条对数据库的更新表达式代表一项事务操作。
操作成功后,系统将自动调用commit()来提交,否则将调用rollback()来回退。
其次,在JDBC中,可以通过调用setAutoCommit(false)来禁止自动提交。
之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交。
倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常。
此时就可以在异常捕获时调用rollback()进行回退。
这样做可以保持多次更新操作后,相关数据的一致性。
基本操作:
1.try
2.conn
DriverManager.getConnection(url);
3.conn.setAutoCommit(false);
//禁止自动提交,设置回退
4.stmt
conn.createStatement();
5.stmt.executeUpdate(“update
firsttable
Set
Name='
testTransaction'
Where
ID
1”);
//数据库更新操作1
6.stmt.executeUpdate(“insert
into
12,Name
'
testTransaction2'
”);
//数据库更新操作2
mit();
//事务提交
10.catch(Exception
ex)
11.try
12.conn.rollback();
//操作不成功则回退
13.//rollback
->
取消在当前事务中进行的所有更改,并释放此
对象当前持有的所有数据库锁。
14.}
15.catch(Exception
17.}
18.}
3、JDBC的优缺点
1)优点:
简单易学,上手快,非常灵活构建SQL,效率高
2)缺点:
代码繁琐,难以写出高质量的代码(例如:
资源的释放,SQL注入安全性等)
开发者既要写业务逻辑,又要写对象的创建和销毁,必须管底层具体数据库的语法(例如:
分页)。
3)适合于超大批量数据的操作,速度快
servlet技术
1、servlet的生命周期
2、设计servlet
1、继承HttpServlet类,他是javax.servlet.GenericServlet的一个子类
2、init():
初始化方法,servlet对象创建后,接着执行该方法。
3、doGet():
当请求的类型是“get”时,调用该方法。
4、doPost():
当请求类型是“post”时,调用该方法。
5、service():
Servlet处理请求时自动执行service()方法,该方法根据请求的类型,调用doGet或者dopost,因此,在建立servlet时,一般只需要重写doGet或者doPost方法。
6、destroy():
servlet对象注销时自动执行
这些方法构成了servlet的生命周期,即创建、服务、消亡。
3、Servlet的配置
Servlet的配置有两种方法,一种是在web.xml文件中配置,另一种是采用注解配置
在web.xml文件中配置:
!
--注册servlet-->
servlet>
--servlet的名称-->
servlet-name>
helloServlet<
/servlet-name>
--servlet的完整类名-->
servlet-class>
com.java.model.helloServlet<
/servlet-class>
/servlet>
--servlet映射-->
servlet-mapping>
--访问URL地址-->
url-pattern>
/hello123<
/url-pattern>
/servlet-mapping>
采用注解配置:
@WebServlet("
/hello123"
)
2.public
helloServlet
extends
HttpServlet
3.........
4.}
Filter过滤器
1、过滤器的概念
过滤器是在服务器上运行的,位于请求与相应之间起过滤功能的程序。
2、过滤器的核心对象
过滤器对象放置在javax.servlet包中,其名为Filter,它是一个接口。
除了这个接口外,与过滤器相关的对象还有FilterConfig与FilterChain对象,这两个对象也是接口对象,位于javax.servlet包中,分别为过滤器的配置对象与过滤器的传递工具。
定义过滤器只需要直接或间接的实现Filter接口。
Filter接口的主要方法
myFilter
implements
Filter
//过滤器初始化方法,此方法在初始化过滤器时直接使用
@Override
ini