servletsWord文档格式.docx

上传人:b****7 文档编号:22378457 上传时间:2023-02-03 格式:DOCX 页数:19 大小:191.02KB
下载 相关 举报
servletsWord文档格式.docx_第1页
第1页 / 共19页
servletsWord文档格式.docx_第2页
第2页 / 共19页
servletsWord文档格式.docx_第3页
第3页 / 共19页
servletsWord文档格式.docx_第4页
第4页 / 共19页
servletsWord文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

servletsWord文档格式.docx

《servletsWord文档格式.docx》由会员分享,可在线阅读,更多相关《servletsWord文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

servletsWord文档格式.docx

进入“开始菜单”的”BEAWebLogic8.1userporject”,启动创建的domain中的”startup”,用来启动WebLogic服务器。

发布一个站点

将配置号的整个站点,拷贝到domain下的applictions中。

若WebLogic服务器不报错,则表示站点可运行,否则要进行调试。

WebLogic的默认监听端口为7001

WebLogic的启动脚本

domains->

mydomains->

startManagedWebLogic.cmd

在Dos窗口中,设置classpath

查看classpath的内容

setclasspath

设置classpath的内容

setclasspath=%classpath%;

新的classpath内容

MIME(MultipurposeInternetMailExtensions)

站点的基本结构

root的命名要注意操作系统是否区分大小写,java服务器默认是区分大小写的。

Servlets类与URL的映射

配置web.xml文件

<

servlet>

<

servlet-name>

Servlet名<

/servlet-name>

servlet-class>

Servlet类的全路径<

/servlet-class>

url-pattern>

URL路径<

/url-pattern>

classes中的Servlets类,可有包路径;

URL不等于目录:

在映射Servlets类的url-pattern时,该url下不一定有目录或文件。

一个简单的servlet

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

importjava.util.*;

//FirstServlet继承HttpServlet,表示该类可处理http请求

publicclassFirstServletextendsHttpServlet

{

staticintaccessCount=0;

//统计访问者的数量

publicvoidservice(HttpServletRequestreq,HttpServletResponseres){

//打印当前对象,不在浏览器中打印

//System.out.println(this);

inti=0;

//访问者的数量=原来的访问者数量+新来的访问者

accessCount=accessCount+(++i);

//设置数据的应答格式为text/html

res.setContentType("

text/html"

);

PrintWriterout=null;

try{

//获取输出流

out=res.getWriter();

out.close();

//关闭输出流

}catch(IOExceptione){

//异常处理

e.printStackTrace();

}

}

};

(1)一个servlet,必须import两个开发包javax.servlet和javax.servlet.http。

这两个开发包,包含在j2ee.jar中。

WebLogic的weblogic.jar包中也有这两个开发包。

同时,要使用这两个开发包,必须先配置classpath。

weblogic.jar在,bea安装目录下的”\weblogic81\server\lib”路径下。

(2)自定义的servlet类,若要能处理http请求,必须继承HttpServlet或者GenericServlet;

(3)自定义的servlet中,用来处理请求的方法是service

(4)doGet()方法,用来处理get请求

(5)doPost()方法,用来处理post请求

//(6)doPut()方法,用来处理put请求

Sevlet的生命周期

四步:

1-若未加载,则先加载;

2-初始化init;

3-提供服务service;

4-销毁destory

初始化可执行的工作

1-完成对资源的初始化;

2-读取初始化参数;

两种级别的初始化参数

ServletConfig

每个Servlet对象都有一个只对应它的ServletConfig对象,该对象由WebContainer创建。

一个Servlet对象<

-------------一个ServletConfig对象

ServletContext

整个webapplication都可使用的参数ServletContext对象,该对象也由WebContainer创建.。

ServletConfig级别的参数只能在web.xml中静态生成。

ServletContext级别的参数,可在web.xml中静态生成,也可由程序动态生成。

getServletConfig():

获取Servlet对象对应的ServletConfig对象。

ServletConfig接口在javax.servlet包中;

getServletContext():

获取webapplication的ServletContext对象。

ServletContext接口在javax.servlet包中。

Servlet对象.getInitParameter(参数名):

获取Servlet对象的servletconfigparameter。

Servlet对象.getServletContext().getAttribute():

获取一个contextparameter

Servlet对象.getServletContext().settAttribute(参数名,对象):

设置一个contextparameter

多线程的并发问题

多线程的并发问题,其实是数据的安全性、完整性问题。

在实际开发中,用“同步”来处理多线程的并发。

不同程序块越短越好。

SingleThreadModel

实现SingleThreadModel接口的Servlet,由多线程处理,并成单线程处理。

SingleThreadModel虽然解决了多线程并发的问题,但是它的性能大大降低。

“同步”机制:

多个线程,只在“同步点”串行执行,其他时间多个线程是并行执行的。

“SingleThreadModel”:

多个线程,对servlet只能排队使用。

一个接一个的。

上述的两种机制,有一个共同点:

都可对多个客户端(线程)提供服务。

还有一种多线程控制方式:

一个servlet只为一个客户端提供服务。

还可以用sygo

Module4:

DistributedModels

分布式计算的特点:

1-不同主机(集群),协同工作;

2-模块重用性高;

3-易移植、扩展、更新、维护

DAO模式

VO模式

DAO模式、VO模式的共同点:

将可变因素,集中处理。

本地通讯和远程通讯

一个进程内部的通讯,称为“本地通讯”;

两个进程间的通讯,称为“远程通讯”。

JavaBean

1-java类

2-可序列化,实现了序列化接口:

java.io.Serializable

3-只要要有一个无参的构造方法

4-JavaBean中,希望对外暴露的属性,都要有set和get方法。

5-完成对数据的映射:

原始数据------对象

DataSource和ConnectionPool

Servlet访问数据库的中间过程

1-Servelt提交信息到Server

2-WebContainer-------DataSource

3-DataSource-----------在ConnectionPool中获取连接

4-DataSource-----------将连接返回给WebContainer

5-WebContainer-------Servelt

在WebLogic的Console上,配置DataSource和ConnectionPool

1-登录console

2-到以下路径下配置

可连接的database有多种类型:

Oracle,Mysql,DB2….

每种database类型都有许多driver可供使用。

通过数据源来连接数据库

Contextct=newContext();

DataSourceds=(DataSource)ct.lookup(数据源);

Connectionconn=ds.getConnection();

除了上面的代码外,作为webapplication,还要在web.xml下进行配置。

Servlet间的互相访问

两种方式:

forward

include

forward

include

资源访问

访问数据库

commonJDBCclient

trhoughJNDI

以下访问资源,通过requestdispatcher

jsp

servlets

以下访问资源,通过JNDI

environmententries

resourceenvironmententries

EJBs

Module5:

PersistentStateinHttpServlets

Http协议

http是无状态的,不能识别不同的客户端。

保存客户端信息的技术

Cookies

Session

Hidden

1-整个浏览器作为客户端程序,一台机器只有一个客户端。

2-Cookies,是记录客户端信息的工具。

3-Cookies做为文件,存放在客户端的机器上。

4-客户端可禁用Cookies。

创建Cookie

Cookiec=newCookie(“name”,”value”);

设置Cookie

res.addCookie(c);

获取Cookie

Cookie[]cookies=req.getCookies();

client对server的第一次访问时,无cookie。

因此req.getCookies()返回null。

browser前后两次请求一个server,就会自动带上cookie。

Windows中,cookie保存在用户目录下的Cookies目录下。

Session是以Browser的一个实例作为client。

因此,打开n个Browser进程,就会有n个客户端。

(原理:

两个进程间的一次连接。

如何获取Session

Session是由WebServer创建的。

因此,获取session使用:

req.getSession()。

获取特定的session

(1)Cookie可用

服务器自动在response时,将session的id放在cookie上。

使用getName(),getValue()方法去获取session的id,结果如下:

myCookie.getName():

JSESSIONID

myCookie.getValue():

**************

(2)Cookie禁用

使用URLRewriting(URL硬编码)可创建session的id

response.encodeURL(URL)或response.encodeRedirectURL(URL)

 

如何操作Session

setAttribute和getAttribute

session的标识符:

session的id。

session的id在session被创建时就自动创建。

server总是试图将session的id,加到response的cookie中,这与客户端是否禁用cookie无关。

新创建的session是无数据的。

如何维护Session

session的销毁用两种方式:

(1)根据设定条件销毁

设置session的最长生存时间:

sessiontimeout

设置session的最长停滞时间:

idletimeout

(2)手动销毁

sesison.invalidate()

用户离开网站时,应该销毁session;

用户长时间没有与server进行交互时,应销毁session

关闭浏览器时,session并不会随之销毁。

session的销毁应在上述情况。

补充:

部署方式:

动态部署和静态部署

动态部署

直接将Applicationcopy到server上。

放在domain下的application目录下。

静态部署

将Application的.war文件,放到server上。

放在domain下的myserver\upload目录下。

*.war--一个webapplication的压缩文件

*.jar---一个j2eeapplication

Module6.FilterProgramming

Filter

Filter是一个过滤器。

Filter的两大作用:

(1)对请求进行分析、预处理

截获请求

对请求预处理

将请求发给组件

(2)拒绝请求

Filter是双向过滤的。

在某些情况下,有些工作可能不是双向过滤的。

filter可又多层,组成一个filterchain。

filter的url-pattern

/*:

表示过滤对该应用程序下的所有资源的请求。

/date:

表示过滤对该路径下的资源的请求。

程序中实现双向过滤

Filterchain

如何组成filterchain

按<

filter-mapping>

标签中的url-pattern来区分,同一url-pattern的filter组成filterchain.

filter在filterchain中的执行顺序

filter的执行顺序,就是<

filter>

标签的排列顺序

如何调整filter的执行顺序

通过调整<

标签的顺序

当访问某一URL时,映射到同一<

标签上的所有filter,都会被执行。

Filter的包装类

使用Filter的包装类,可实现对request,reponse的修改,更新。

比较servlet,filter,eventlistener的实例的创建时间

servlet可在server中预先创建;

servlet可因客户端的第一次请求而创建。

filter,eventlistener只要一部署上webapplication,就会被创建实例。

filter,eventlistener,servlet都是java类,因此它们都可以有构造方法。

EventListener

(1)要有事件处理器,它实现EventListener接口

(2)要向WebContainer注册事件处理器:

在web.xml中部署。

(3)事件由组件触发,WebContainer将事件交给事件处理器处理。

MySQL是否支持数据源方式的update操作?

在booksore程序中,我试图使用BookDAO类的update方法,来更新数据,但是不能成功.

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1