servlet笔记完整版.docx

上传人:b****6 文档编号:8799148 上传时间:2023-02-01 格式:DOCX 页数:76 大小:1.07MB
下载 相关 举报
servlet笔记完整版.docx_第1页
第1页 / 共76页
servlet笔记完整版.docx_第2页
第2页 / 共76页
servlet笔记完整版.docx_第3页
第3页 / 共76页
servlet笔记完整版.docx_第4页
第4页 / 共76页
servlet笔记完整版.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

servlet笔记完整版.docx

《servlet笔记完整版.docx》由会员分享,可在线阅读,更多相关《servlet笔记完整版.docx(76页珍藏版)》请在冰豆网上搜索。

servlet笔记完整版.docx

servlet笔记完整版

背景知识介绍

J2EE的13种技术

java->servlet->jsp[技术总是有一个演变过程]

zip粘贴到word设置

◆回顾一下我们现有的技术

java基础(面向对象,集合,界面,线程,文件,网络)

jdbc(java的数据库编程)

oracle/mysql/sqlserver

htmlcssjavascript(web开发)->网页设计

xml

serlvet+jsp->javaweb开发[使用java技术做web开发]

◆javaee体系的介绍

◆servlet项目演示

◆web开发介绍

1静态页面(html)

2动态页面

1.用户可以输入数据,和页面交互(注册,购物,发帖子,付款...)

2.不同时间打开页面,内容是变化.

3.目前比较流行的左动态页面的技术(servlet/jsp,php,,asp,cgi)

◆动态网页技术的比较(了解)

◆bs和cs的比较

(1)BS:

browserserver浏览器服务器

(2)csclientserver客户服务

◆为什么需要的web服务器/web究竟是干什么的?

模拟一个web服务器MyWebServer.java

importjava.io.*;

import.*;

publicclassMyWebServer

{

publicstaticvoidmain(String[]args)throwsException{

ServerSocketss=newServerSocket(80);

Sockets=ss.accept();

//提示一句话

System.out.println("在9999上等待连接...");

OutputStreamos=s.getOutputStream();

BufferedReaderbr=newBufferedReader(newFileReader("d:

\\hello.html"));

Stringbuf="";

while((buf=br.readLine())!

=null){

os.write(buf.getBytes());

}

//关闭流

br.close();

os.close();

s.close();

}

}

◆通过tomcat来讲解BS结构

◆安装tomcat服务器

(1)解压即可

(2)配置

①在环境变量中添加

JAVA_HOME=指向你的jdk的主目录(并不是bin文件目录)

2在不配置JAVAHOME的前提下启动tomcat

在startup.bat的第25行中添加setJAVA_HOME=JKD路劲

(3)启动tomcat服务器

到tomcat主目录下bin/startup.bat

(4)验证是否安装成功

http:

//localhost:

8080(8080是默认端口如果该端口已经被占用需要修改端口)

◆tomcat安装后问题解决

(1)tomcat无法正常启动的原因分析

1.JAVA_HOME配置错误,或者没有配置

2.如果你的机器已经占有了8080端口,则无法启动,

解决方法

(1)你可以8080先关闭

netstat–an

netstat–anb来查看谁占用该8080

(2)主动改变tomcat的端口.

到conf/server.xml文件中修改

server.xml的端口号)protocol="org.apache.coyote.http11.Http11NioProtocol"redirectPort="8443"/>

(3)能够正常启动,但是会导航到另外一个页面.

去修改工具->管理加载项,把默认的导航给禁用即可.

(4)在访问tomcat时候,一定保证tomcat服务器是启动

◆tomcat的目录结构文件

bin:

启动和关闭tomcat的bat文件

conf:

配置文件

-->server.xml:

该文件用于配置和server相关的信息,比如tomcat启动端口后,配置Host,配置Context即web应用

-->web.xml:

该文件配置与web应用(web应用就相当于是一个web站点)

-->tomcat-users.xml:

该文件用户配置tomcat的用户密码和权限

lib目录:

该目录放置运行tomcat运行需要的jar包

logs目录:

存放日志,当我们需要去查看日志的时候,很有用!

当我们启动tomcat错误时候,可以查询信息.

webapps目录:

该目录下,放置我们的web应用(web站点),比如:

建立web1目录下面放置我们的html文件jsp文件..图片...则web1就被当做一个web应用管理起来(☞特别说明tomcat6.0以后支持tomcat5版本还有别的设置)

work:

工作目录:

该目录用于存放jsp被访问后生成的对应的server文件和.class文件

◆如何去访问一个web应用的某个文件

◆首页面设置及目录规范结构

现在我们要求:

把hello.html文件设置成该web应用的首页,则需要把web应用的目录格式做的更加规范:

①在web文件夹下配置WEB-INF文件夹

②在web.xml文件中添加配置的代码:

hello1.html

③通过http:

//localhost:

8088/web1来访问hello1.html

web-inf目录下的classes目录将来是存放class文件

lib目录将来时存放jar文件

web.xml配置当前这个web应用的信息.

◆tomcat如何去管理虚拟目录

需求:

当我们把web应用放到webapps目录,tomcat会自动管理,如果我们希望tomcat可以管理其它目录下的web应用?

->虚拟目录配置

我在d盘有一个web应用.

◆虚拟目录配置步骤:

1找到server.xml文件

2编辑host节点添加Contextpath

在server.xml中添加:

myweb2:

是访问时输入的web名,实际取出的是web2中的资源

"d:

\web2":

绝对路径下web2中存放资源如:

hello2.html

实际访问时输入的地址:

http:

//localhost:

8088/myweb2/hello2.html

绝对路径:

从根分区找某个文件

相对路径:

从该文件位置去找另一个文件

③需要重启tomcat,才能生效.(因为是采用的dom技术讲信息加载到内存中)

◆context的几个属性的说明

path:

docbase:

reloadable;如果设为ture,表示tomcat会自动更新web应用,这个开销大,建议在开发过程中,可以设为true,但是一旦真的发布了,则应当设为false;

upackWAR:

如果设为ture,则自动解压,否则不自动解压.

①:

打war包cd:

d/web2然后jar–cvfweb2.war*

②:

浏览打好的war包Deploy发布后会在webapps中自动生存改文件

◆配置域名

我们看和一个如何配置自己的主机名:

我们在实际访问网站的过程中,不可能使用http:

//localhost:

8080/web应用/资源名的方式去访问网站,实际上使用类似

或者

的方式去访问网站,这个又是怎么实现的呢?

看看ie浏览器访问一个web站点的流程.

实现的步骤如下:

(1)在C:

\WINDOWS\system32\drivers\etc下的host文件添加127.0.0.1

(2)在tomcat的server.xml文件添加主机名

\web3”>

(3)在d:

\web3加入了一个/WEB-INF/web.xml把hello2.html设为首页面

如果连端口都不希望带,则可以吧tomcat的启动端口设为80即可.

(4)重启生效

◆tomcat体系的再说明

图:

如何配置默认主机:

在tomcat/conf/server.xml文件

如:

◆为什么需要servlet技术?

比如需求:

我们希望用户可以贴,用户还可以回复....这样一些和用户可以交互的功能,用普通的java技术就完成不了,sun就开发了servlet技术供程序员使用.

◆servlet的介绍

1servlet其实就是java程序(java类)

2该java程序(java类)要遵循servlet开发规范

3serlvet是运行在服务端

4serlvet功能强大,几乎可以完成网站的所有功能

5是学习jsp基础

◆tomcat和servlet在网络中的位置

◆servlet的生命周期是怎样的/servlet究竟是怎样工作的

UML时序图帮助大家理解

参看execel

面试题:

请简述servlet的生命周期(工作流程)

答:

标准版本:

①WEB服务器首先会检查是否已经装载并创建了该servlet实例对象。

如果是直接进行第④步,否则执行第②步。

②装载并创建该Servlet的一个实例对象。

③调用Servlet实例对象的init()方法。

④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用service()方法并将请求和响应作为参数传递进去。

⑤WEB应用被停止或重启之前,Servlet引擎将卸载Servlet,在卸载之前调用Servlet的destroy()方法

1.当serlvet第一次被调用的时候,会触发init函数,该函数会把servlet实例装载到内存.init函数只会被调用一次

2.然后去调用servlet的service函数

3.当第二次后访问该servlet就直接调用service函数.

4.当web应用reload或者关闭tomcat或者关机都会去调用destroy函数,该函数就会去销毁serlvet

5.Servlet的生命周期

当客户端第一次向web服务器发出一个servlet请求时,web服务器将会创建一个该servlet的实例,并且调用servlet的init()方法;如果当服务器已经存在了一个servlet实例,那么,将直接使用此实例;然后再调用service()方法,service()方法将根据客户端的请求方式来决定调用对应的doXXX()方法;当web应用reload或者关闭tomcat或者关机,web服务器将调用destroy()方法,将该servlet从服务器内存中删除。

生命全过程:

1.加载

2.实例化

3.初始化

4.处理请求

5.退出服务

◆开发servlet有三种方法

(1)实现Servlet接口

(2)通过继承GenericServlet

(3)通过继承HttpServlet

◆①实现servlet接口的方式

需求如下:

请使用实现接口的方式,来开发一个Servlet,要求该Servlet可以显示Hello,world,同时显示当前时间.

步骤

1.在webapps下建立一个web应用hspWeb1

2.在hspWeb1下建立WEB-INF->web.xml[web.xml可以从ROOT/WEB-INF/web.xml拷贝]

3.在WEB-INF下建立classes目录(我们的Servlet就要在该目录开发.),建立lib文件夹

4.开发MyServlet.java

packagecom.hsp;

importjavax.servlet.*;

importjavax.servlet.http.*;为了能将servlet-api.jar包引入,需要配置环境变量

变量值;E:

\tomcat\apache-tomcat-6.0.20\lib\servlet-api.jar记得带上文件名

importjava.io.*;

classMyFirstServletimplementsServlet

{

//该函数用于初始化servlet,就是把该servlet装载到内存中

//该函数只会被调用一次

publicvoidinit(ServletConfigconfig)

throwsServletException{

}

//得到ServletConfig对象

publicServletConfiggetServletConfig(){

returnnull;

}

//该函数是服务函数,我们的业务逻辑代码就是写在这里

//该函数每次都会被调用

publicvoidservice(ServletRequestreq,

ServletResponseres)

throwsServletException,

java.io.IOException{

}

//该函数时得到servlet配置信息

publicjava.lang.StringgetServletInfo(){

returnnull;

}

//销毁该servlet,从内存中清除,该函数被调用一次

publicvoiddestroy(){

}

}

5.根据Servlet规范,我们还需要部署Servlet

xmlversion="1.0"encoding="ISO-8859-1"?

>

--

LicensedtotheApacheSoftwareFoundation(ASF)underoneormore

contributorlicenseagreements.SeetheNOTICEfiledistributedwith

thisworkforadditionalinformationregardingcopyrightownership.

TheASFlicensesthisfiletoYouundertheApacheLicense,Version2.0

(the"License");youmaynotusethisfileexceptincompliancewith

theLicense.YoumayobtainacopyoftheLicenseat

http:

//www.apache.org/licenses/LICENSE-2.0

Unlessrequiredbyapplicablelaworagreedtoinwriting,software

distributedundertheLicenseisdistributedonan"ASIS"BASIS,

WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

SeetheLicenseforthespecificlanguagegoverningpermissionsand

limitationsundertheLicense.

-->

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

version="2.5">

--根据serlvet规范,需要将Servlet部署到web.xml文件,该部署配置可以从examples下拷贝-->

--servlet-name给该Servlet取名,该名字可以自己定义:

默认就使用该Servlet的名字-->

MyFirstServlet

--servlet-class要指明该Servlet放在哪个包下的,形式是包/包/../类-->

com.hsp.MyFirstServlet注意:

后面不要带.java④

--Servlet的映射-->

--这个Servlet-name要和上面的servlet-name名字一样-->

MyFirstServlet

--url-pattern这里就是将来访问该Servlet的资源名部分-->

/ABC

服务器调用流程:

http:

//localhost:

8088/ABC--->①--->②--->③--->④

6.在浏览器中测试

在浏览器中输入

http:

//localhost:

8088/hspweb1/ABC

7.分析一下自己写可能出现的错误

(1)MyFirstServlet名字不一样(启动tomcat错误)

(2)com.hsp.MyFirstServlet写成MyFirstServlet.java,会报告500

(3)资源名自己写错

http:

//localhost:

8088/hspweb1/错误的资源url-pattern

404错误

补充:

如果使用javac去编译一个java文件,则需要带命令参数

javac–d.java文件

补充:

如何不重启tomcat,就指定去reload一个web应用,方法:

进入到tomcat的manager:

点击reload即可.

课堂练习

自己使用实现Servlet接口的方法,开发一个Servlet,该servlet可以输出自己的名字

在显示当前日期.

◆②使用GenericServlet开发servlet

了解即可:

案例:

packagecom.hsp;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

publicclassMyGenericServletextendsGenericServlet

{

publicvoidservice(ServletRequestreq,

ServletResponseres)

throwsServletException,

java.io.IOException{

res.getWriter().println("hello,world,iamgeneircservlet");

}

}

将该Servlet部署到web.xml文件中:

--根据serlvet规范,需要将Servlet部署到web.xml文件,该部署配置可以从examples下拷贝-->

--servlet-name给该Servlet取名,该名字可以自己定义:

默认就使用该Servlet的名字-->

MyGenericServlet

--servlet-class要指明该Servlet放在哪个包下的,形式是包/包/../类-->

com.hsp.MyGenericServlet

--Servlet的映射-->

--这个Servlet-name要和上面的servlet-name名字一样-->

MyGenericServlet

--url-pattern这里就是将来访问该Servlet的资源名部分,默认命名规范:

就是该Servlet的名字-->

/MyGenericServlet

 

◆③使用继承HttpServlet的方法来开发Serlvet

(1)在软件公司90%都是通过该方法开发.

(2)举例说明;还是显示hello,world当前日期

代码:

packagecom.hsp;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

publicclassMyHttpServletextendsHttpServlet

{

//在HttpServlet中,设计者对post提交和get提交分别处理

//回忆

"method="post|get"/>,默认是get

protectedvoiddoGet(HttpServletReques

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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