Servlet第四章知识点总结——资源访问

时间:2023-02-07 07:41:35

Servlet第四章知识点总结——资源访问

分布式开发

 

1.         分布式开发

a)         什么是分布式开发:

                                      i.              是指将用户界面、控制台服务、数据库管理三个层次部署在不同的位置上。

                                    ii.              用户界面是客户端实现的功能,控制台服务是一个专门的服务器,数据管理是在一个专门的数据库服务器上实现的。

b)        特点:

                                      i.              运行在不同的地址空间中的计算器互相通讯.

                                    ii.              双层模型(客户机/服务器)由多个客户跟一个或多个服务器通话.

 

 

Servlet第四章知识点总结——资源访问

2.         分布式Java技术

a)         JAVA数据库连接(JDBC)

b)        Java远程方法调用(RMI / IIOP)

c)         公共对象请求代理体系结构( CORBA)通过Java接口描述语言(IDL)描述

3.         资源类型

a)         数据库

b)        网页

c)         文件

d)        图片

e)         ……

 

目标

 

熟悉和掌握如何访问数据库资源

熟悉和掌握如何访问页面资源

熟悉和掌握如何访问环境信息

 

知识点预览

 

数据访问

Servlet与资源访问

 

数据访问

 

1.       JAVA数据库连接(JDBC)

a)         作用:

                                      i.              使JAVA客户端程序与数据库隔断

                                    ii.              提供一个由数据库驱动实现的通用接口类

b)        创建步骤:

                                      i.              第一步:获得数据库连接参数信息

                                    ii.              第二步:注册数据库驱动

                                  iii.              第三步:实例化连接对象

                                   iv.              第四步:实例化statement对象

                                     v.              第五步:执行SQL语句

                                   vi.              第六步:处理结果集

                                 vii.              第七步:关闭对象,释放资源

2.       一个数据库Servlet示例

 

Servlet第四章知识点总结——资源访问

<init-param>

<param-name>driver</param-name>

<param-value>com.mysql.jdbc.Driver</param-value>

</init-param>

<init-param>

<param-name>url</param-name>

<param-value>jdbc:mysql://localhost:3306/mydatabase</param-value>

</init-param>

<init-param>

<param-name>user</param-name>

<param-value>root</param-value>

</init-param>

<init-param>

<param-name>password</param-name>

<param-value>admin</param-value>

</init-param>


 

 

Servlet第四章知识点总结——资源访问

 

Servlet第四章知识点总结——资源访问

 

Servlet第四章知识点总结——资源访问

 

Servlet第四章知识点总结——资源访问

 

3.       JDBC 优势与不足

a)         优势:

JDBC能够处理多用户并发访问同一数据引发的并发问题.

b)        不足

                                      i.              每建立一个数据库连接需要一至三秒.

                                    ii.              每一个请求都要创建一个新的连接,效率是很低的.

                                  iii.              当数据库环境发生变化时,应用程序会出错

1.         数据库名称、登录信息

2.         数据库类别

4.       通过JNDI访问数据库

a)         必须有一个数据源使用JNDI绑定

b)        Servlet通过一个映射到JNDI名称的数据源引用名称来获取数据源

 

<Resource name="jdbc/wcleye" 

type="javax.sql.DataSource" password="admin"

driverClassName="com.mysql.jdbc.Driver" username="root"

maxIdle="2" maxWait="10" url="jdbc:mysql://localhost:3306/mydatabase"

author="Container"

/>


 

 

5.       数据源示例

 

try{

Context initCtx=new InitialContext();

ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/wcleye");

if(ds!=null){

Connection con=ds.getConnection();

return con;

}else{

return null;

}

}catch(Exception ne){

ne.printStackTrace();

return null;

}


 

 

Servlet与资源访问

1.       分发不同的结果到一个视图页面

a)         把结果集封装到一个JavaBean

b)        从一个ServletContext获取分发器

c)         RequestDispatcher  类

d)        分发请求到一个新的资源上

2.       封装结果

a)         创建一个持有学生状态的学生类

 

Servlet第四章知识点总结——资源访问

3.       在Servlet中修改doGet()方法

 

Servlet第四章知识点总结——资源访问

4.       在Servlet中增加一个dispResultSet()方法

 

Servlet第四章知识点总结——资源访问

5.       在Servlet中修改doGet()方法

 

Servlet第四章知识点总结——资源访问

 

6.       视图页—users.jsp

 

Servlet第四章知识点总结——资源访问

 

<table>

<tr><td>Id</td><td>name</td><td>password</td></tr>

<%

ArrayList users=(ArrayList)request.getAttribute("users");

Iterator i=users.iterator();

while(i.hasNext()){

User s=(User)i.next();

%>



<tr>

<td><%=s.getId() %></td><td><%=s.getName() %></td><td><%=s.getPassword() %></td>

</tr>



<%

}

%>


 

 

7.       分发请求到一个新的资源上

a)         从一个请求分发器中有两种方法来分发请求

                                      i.              Forward:把请求从一个servlet跳向同一个服务器上的另一个资源上

                                    ii.              Include: :包括资源的内容

b)        两种得到请求分发器的方法

                                      i.              ServletRequest.getRequestDispatcher() //相对路径

                                    ii.              ServletConext.getRequestDispatcher()  //绝对路径

c)         新资源可以访问其他不同范围属性的请求和响应

                                      i.              javax.servlet.ServletContext—application in jsp

                                    ii.              javax.servlet.http.HttpSession—session in jsp

                                  iii.              javax.servlet.ServletRequest—request in jsp

                                   iv.              javax.servlet.jsp.PageContext—page in jsp

8.       访问环境条目

a)         通过JNDI服务

b)        部署描述包括:

 

Environment name="isReady" value="true"               type="java.lang.Boolean" override="false"/>

c)         在servlet中的代码片断

 

Servlet第四章知识点总结——资源访问

 

资源访问回顾

 

 

数据库访问

通用JDBC客户端

通过JNDI

资源可以通过请求分发器访问:

jsp

Servlet

资源可以通过JNDI访问:

环境变量

资源环境变量

EJB(企业级应用JavaBean )