Servlet笔记.docx

上传人:b****8 文档编号:28528594 上传时间:2023-07-18 格式:DOCX 页数:21 大小:25.19KB
下载 相关 举报
Servlet笔记.docx_第1页
第1页 / 共21页
Servlet笔记.docx_第2页
第2页 / 共21页
Servlet笔记.docx_第3页
第3页 / 共21页
Servlet笔记.docx_第4页
第4页 / 共21页
Servlet笔记.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Servlet笔记.docx

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

Servlet笔记.docx

Servlet笔记

目录

第一章服务器环境搭建2

1.Tomcat服务器环境搭建2

2.tomcat文件结构2

第二章Servlet3

1.定义:

3

2.servlet的生命周期3

3.使用MyEclipse创建servlet流程3

4.WebProject文档目录说明4

5.web.xml的配置归纳4

[1]配置servlet类4

[2]配置Servlet的实例化顺序:

5

[3]配置初始化参数5

[4]配置ServletContext5

[5]配置Session有效时间6

6.doget()和dopost()向servlet发送请求的区别6

7.servlet的类和接口6

7.1javax.servlet包:

7

(1)Servlet接口:

7

(2)ServletConfig接口:

servlet配置对象7

(3)ServletContext接口:

ServletContext(服务器-公共空间)8

(4)ServletRequest接口:

9

(5)ServletResponse接口:

10

(6)Filter接口:

过滤器10

(7)ServletContextListener接口:

监听器12

7.2javax.servlet.http包:

13

(1)HttpSession接口:

session(服务器-浏览器空间)13

(2)HttpServletRequest接口15

(3)HttpServletResponse接口15

(4)HttpServlet类15

(5)Cookie类15

第三章常用技术归纳17

1.参数传递归纳:

17

2.在Servlet中操作数据库17

3.分页显示技术18

4.数据库连接池技术18

第一章服务器环境搭建

1.Tomcat服务器环境搭建

(1)环境变量配置

①java-path:

//配置JDK

②tomcat-path:

//配置服务器主目录

(2)服务器端口配置

在server.xml文件中Connector标签:

四位数,最多65523,但一般网络用80开头

(3)启动服务启:

执行Bin目录下的startup.bat脚本文件。

(4)浏览器中进入服务器

localhost:

8080//本机服务器

127.0.0.1:

8080//本机服务器

192.168.1.216:

8080//服务器ip地址:

端口号

2.tomcat文件结构

(1)在tomcat文件目录中新建项目

tomcat->webapps下新建项目文件夹

WEB-INF的文件结构

/classes:

servlet的class文件

/lib:

jar包

web.xml:

Servlet的配置文件

web.xml的全部内容

第二章Servlet

1.定义:

服务端的java程序。

servlet只有一个对象。

支持多线程,无成员属性,不会资源不一致。

方法变量属于各线程计数器管理。

2.servlet的生命周期

①浏览器:

http请求->服务器:

查找web.xml

②-->无Servlet对象就实例化Servlet->调用init()方法初始化->service()方法

有Servlet对象->调用service()方法(判断请求的类型,调用对应的方法)

③-->response()方法响应浏览器

④-->关闭服务器,调用destroy(),销毁对象。

3.使用MyEclipse创建servlet流程

①将Tomcat服务器添加到MyEclipse

Servers选项卡-ConfigureServersConnector

选择自己的服务器类型,指定路径,完成添加。

②创建web_project

javaEEversion:

JavaEE6-web3.0

Javaversion:

1.7

③创建Servlet继承HttpServlet,重写doGet()和doPost方法

④配置web.xml

servlet的名称、bao.类;

servlet映射的名称、路径

test1

Simple.test1

test1

/test1

⑤发布程序到服务器

DeployMyEclipseJ2EEProjecttoServer

⑥在浏览器发送请求

http:

//localhost:

8001/Servlet/test1

地址:

端口/项目名/类名

4.WebProject文档目录说明

webRoot根目录

META-INF:

配置文件

WEB-INF->

/lib:

jar包

web.xml:

将覆盖Tomcat服务器中的web.xml

5.web.xml的配置归纳

[1]配置servlet类

①servlet的名称、bao.类;②servlet映射的名称、路径

test1

Simple.test1

test1

/test1

[2]配置Servlet的实例化顺序:

demo01.Demo01

n

n为正整数:

在服务器启动的时候实例化该Servlet,

n为负整数:

在第一次请求的时候实例化该Servlet(默认)。

加载顺序:

越大越先加载。

[3]配置初始化参数

name

wangwu

[4]配置ServletContext

charset

utf-8

[5]配置Session有效时间

60

6.doget()和dopost()向servlet发送请求的区别

表单可以使用get和post请求,其余控件如超链接都是使用get请求。

post:

随同请求传参。

安全高,速度慢。

get:

随同url地址传参,只能发送字符串,最多1024字节。

安全差,速度快。

7.servlet的类和接口

ServletAPI包含于两个包中,即javax.servlet和javax.servlet.http。

Servlet是实现javax.servlet.Servlet接口的对象。

大多数Servlet通过从HttpServlet或GenericServlet类进行扩展来实现。

HttpServlet类:

实现Http协议的servlet,用于浏览器。

GenericServlet类:

实现与协议无关的servlet,用于AWT或Swing。

7.1javax.servlet包:

(1)Servlet接口:

[1]Servlet的生命周期相关方法

Servlet的生命周期:

①客户端发送请求到Servlet容器

②Servlet容器解析请求,即从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类

③创建Servlet实例

④调用Servlet接口的init()方法,初始化Servlet实例

⑤调用Servlet接口的service()方法,根据请求类型调用对应请求处理方法。

⑥输出响应信息

⑦返回响应

⑧调用Servlet接口的destroy()方法,销毁该servlet实例。

[2]获取Servlet相关信息

getServletConfig();//返回ServletConfig对象

(2)ServletConfig接口:

servlet配置对象

getServletConfig();//返回此servlet的ServletConfig对象。

servlet容器使用的servlet配置对象,该对象在初始化期间将信息传递给servlet。

①getInitParameter(Stringname);

//返回包含指定初始化参数的值,如果参数不存在,则返回null。

②getServletName();//返回此servlet实例的名称。

③getServletContext();//返回对调用者在其中执行操作的ServletContext的引用

(3)ServletContext接口:

ServletContext(服务器-公共空间)

[1]定义

服务器中存在的公共空间,所有浏览器都可以访问ServletContext的里的数据。

ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束。

[2]应用实例

网站计数器

网站在线用户的显示

简单的聊天系统

[3]使用方法

getServletContext();//得到ServletContext();

①参数的设置、获取和移除

setAttribute(Stringname,objectobj);//向ServletContext中存放属性key-value。

getAttribute(Stringname);//获取属性的值(Object类型)。

getAttributeNames();//获取ServletContext中所有的属性名(Enumeration)。

removeAttribute(Stringname);//删除指定的属性。

getInitParameter("charset");//获取初始化参数

②获取服务器根目录相关信息

getContextPath();//获取本项目在服务器中的路径

getRealPath("/index.jsp");//获取指定文件在服务器中的绝对路径。

getMimeType("/a.txt");//获取指定文件的类型。

InputStreamin=context.getResourceAsStream("/a.txt");//获取根目录下文件的输入流

Setset=context.getResourcePaths("/A");//获取根目录下文件夹所有文件的路径

③资源控制

RequestDispatchergetRequestDispatcher(Stringpath);//url只能使用绝对路径

getResourceAsStream(Stringpath);//以InputStream对象的形式返回位于指定路径上的资源。

[4]配置ServletContext

charset

utf-8

(4)ServletRequest接口:

①参数的设置、获取和移除

setAttribute(Stringname,Objecto)

getAttribute(Stringname)

removeAttribute(Stringname);

getParameter(Stringname)

getParameterMap()//返回此请求的参数键值对。

getParameterNames()//返回包含所有参数名称(String对象类型)的Enumeration。

String[]getParameterValues(Stringname)

getAttribute()返回request范围内存在的对象,

getParameter()是获取http提交过来的数据(字符串)。

②设置请求中的信息

req.setCharacterEncoding();//重写此请求正文中使用的字符编码。

③资源控制

req.getRequestDispatcher(url).forward(request.response);

//将请求(forward(request.response))转发到getRequestDispatcher(url)方法中参数定义的页面或者链接。

url可以使用相对路径

(5)ServletResponse接口:

①设置响应中的信息

resp.setContentType("text/html;charset=UTF-8");

//指定HTTP响应的编码,同时指定了浏览器显示的编码。

resp.setCharacterEncoding()//设置HTTP响应的编码

②资源控制

PrintWriterout=resp.getWriter();//返回可将字符文本发送到客户端的PrintWriter对象

out.println("Hello!

大家好!

");

(6)Filter接口:

过滤器

[1]定义和作用

请求先传给过滤器,再传给servlet。

过滤器可以对web服务器中的所有web资源进行管理:

如,对Jsp,Servlet,静态图片文件或静态html文件等进行拦截

如,实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

[2]使用方法

①编写java类实现Filter接口,并实现其init()、doFilter()、destroy()方法。

②在doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)方法中可实现以下功能:

1.。

在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

2.。

访问权限控制

有权限访问:

chain.doFilter(request,response);

无权限访问则跳转:

HttpServletResponseresp=(HttpServletResponse)response;

resp.sendRedirect(“index.jsp”);

3.。

在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能

[3]配置Filter

①注册Filter②映射Filter

url-pattern设置filter所拦截的请求路径:

/*:

过滤所有请求

/servlet/*:

过滤向/servlet目录下所有页面发送的请求,其他地方的请求无效不能访问。

*.jsp:

过滤向后缀名为jsp页面发送的请求,向向后缀名为其他的页面的请求不能访问。

*.do:

向servlet的映射加上后缀.do,然后在过滤器映射中过滤

例:

Servlet09

/servlet09.do

*.do

[4]Filter链

在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。

当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。

在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。

web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter.

(7)ServletContextListener接口:

监听器

(1)定义

监听器是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。

这里监听器能监听application(ServletContext)、session、request对象。

作用:

可设置本项目在服务器中的路径的初始变量。

(2)监听器类型

request:

ServletRequestListener和ServletRequestAttributeListener

session:

HttpSessionRequestListener和HttpSessionAttributeListener

servletContext:

servletContextListener和servletContextAttributeListener

前者监听对象的创建、添加和销毁;后者监听属性的设置和移除。

(3)使用方法

[1]创建监听类

publicclassMyListener01implementsServletContextListener{

@Override

publicvoidcontextInitialized(ServletContextEventarg0){

ServletContextcontext=arg0.getServletContext();

Stringpath=context.getContextPath();

context.setAttribute("path",path);

}

@Override

publicvoidcontextDestroyed(ServletContextEventarg0){}

}

publicclassMyListener02implementsServletContextAttributeListener{

@Override

publicvoidattributeAdded(ServletContextAttributeEventarg0){}

@Override

publicvoidattributeRemoved(ServletContextAttributeEventarg0){}

@Override

publicvoidattributeReplaced(ServletContextAttributeEventarg0){}

}

[2]在web.xml文件中注册监听器

listener.MyListener01

7.2javax.servlet.http包:

实现javax.servlet

(1)HttpSession接口:

session(服务器-浏览器空间)

HttpSession接口提供了存储和返回标准会话属性的方法。

标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存在服务器端。

[1]定义和作用

1.。

定义:

当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占。

这个空间就是Session空间,该空间中的数据默认呆滞时间为30分钟。

Session机制:

2.。

session应用:

①网上商城中的购物车。

②保存登录的用户信息。

③将某些数据放入到session中,供同一用户的各个页面使用。

④防止用户非法登录到某个页面。

3.。

Session机制

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识-称为sessionid,

如果已包含一个sessionid则说明以前已经为此客户端创建过session,服务器就按照sessionid把这个session检索出来使用(如果检索不到,可能会新建一个),

如果客户端请求不包含sessionid,则为此客户端创建一个session并且生成一个与此session相关联的sessionid,sessionid的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个sessionid将被在本次响应中返回给客户端保存。

[2]使用方法

①得到session

HttpSessionhs=request.getSession(true);

②添加、获取和移除属性

hs.setAttribute(Stringname,Objectval);

Stringname=hs.getAttribute(Stirngname);

hs.removeAttribute(Stringname);

③设置和获取Session信息

session.setMaxInactiveInterval(36);//设置Session访问服务器端的呆滞时间为36秒

getMethod();//返回用于发出此请求的HTTP方法的名称,例如GET、POST或PUT

getRequestedSessionId()返回客户端指定的会话ID。

(2)HttpServletRequest接口

HttpSessiongetSession();//返回与这个请求关联的当前的有效的session。

StringgetMethod();//返回这个请求使用的HTTP方法

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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