Servlet部分笔记1.docx

上传人:b****3 文档编号:2836811 上传时间:2022-11-15 格式:DOCX 页数:15 大小:23.29KB
下载 相关 举报
Servlet部分笔记1.docx_第1页
第1页 / 共15页
Servlet部分笔记1.docx_第2页
第2页 / 共15页
Servlet部分笔记1.docx_第3页
第3页 / 共15页
Servlet部分笔记1.docx_第4页
第4页 / 共15页
Servlet部分笔记1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Servlet部分笔记1.docx

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

Servlet部分笔记1.docx

Servlet部分笔记1

Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

*它们不是独立的应用程序,没有main()方法。

*它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。

*它们都有一个生存周期,包含init()和destroy()方法。

要使用Servlet,必须导入包servlet-api.jar。

这里使用的服务器是Tomcat,其主目录结构为:

|-bin:

用于存放可执行命令(catalina.sh)

|-conf:

用于存放tomcat需要的配置文件.

|-lib:

存放tomcat在运行时要用到的类文件(jsp-api.jar、servlet-api.jar、...).

|-webapps:

最重要的一个目录,其下放置各种Servlet文件、网页文件(JSPHTML...)、

配置文件以及资源文件.此目录的结构:

|-应用目录(比如是一个学生管理网站,就在webapps文件夹下建一个StudentManage目录)

|-WEB-INF目录

|-classes目录,放置所有的Servlet文件或其他类文件

|-lib目录,放置本应用所要用到的类文件(jar包)

|-web.xml配置文件

|-资源文件(比如图片),网页文件(JSPHTML...)

|-logs:

日志文件.

|-work:

内部临时文件.

|-temp:

临时文件.

安装tomcat环境变量的配置,和配jdk差不多servlet-api.jar;jsp-api.jar

1Servlet接口、GenericServlet类、HttpServlet类:

Servlet是最顶层的接口,其提供的方法有:

init(ServletConfigconfig):

void//初始化

getServletConfig():

ServletConfig//取得该Servlet配置信息

getServletInfo():

String//取得相关信息

service(ServletRequestreq,ServletResponseres):

void//核心方法

destroy():

void//Servlet生命周期结束时候执行的方法

显然我们最关心的是service方法,其他的几个方法在实现的时候是千篇一律、无关痛痒的。

故提

供了GenericServlet类,此类实现了Servlet接口,我们在使用Servlet的时候,只需继承这个类然后

覆盖其中的service方法(抛出ServletException、IOException异常)即可。

由于Servlet基本上是在http协议下使用的,故提供了HttpServlet这个类,此类继承自

GenericServlet类,我们在使用Servlet时,只需继承HttpServlet类然后覆盖以下方法:

service(HttpServletRequestrequest,

HttpServletResponseresponse)

throwsServletException,IOException:

void

注意:

HttpServletRequest和HttpServletResponse分别是从ServletRequest和ServletResponse继承

此外,HttpServlet还提供了doPost和doGet方法,参数和返回值与service方法一样。

只是service

方法可以针对客户端的任何请求类型(GET和POST),而doPost和doGet方法分别只能对应客户端的POST方式

请求和GET方式的请求。

HttpServlet-----extendsGenericServlet----implementsServlet

2使用GenericServlet实例:

packagecom.kettas.servlet;

importjavax.servlet.*;

importjava.io.*;

publicclassGenDateServletextendsGenericServlet{

@Override

publicvoidservice(ServletRequestrequest,ServletResponseresponse)

throwsServletException,IOException

{response.setContentType("text/html");//设置响应内容类型

PrintWriterout=response.getWriter();//获得文本写入流

//给客户端回应的html文本

out.println("");

out.println("");

out.println("

HelloServlet!

");

out.println("");

out.println("");

out.flush();//刷新写入

}}

配置文件web.xml如下:

xmlversion="1.0"encoding="UTF-8"?

>

xmlns:

xsi="http:

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

xsi:

schemaLocation="

version="2.5">

//Servlet文件路径

query

com.kettas.servlet.GenDateServlet

//指定映射,说明在浏览器中输入".../query"则对应当前Servlet

query

/query

3使用HttpServlet简单实例:

packagecom.kettas.servlet;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

publicclassLoginServletextendsHttpServlet{

@Override

publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException

{response.setContentType("text/html;charset=GB2312");//注意设置编码的方式

request.setCharacterEncoding("GB2312");

PrintWriterout=response.getWriter();

//取得客户端提交的数据

Stringname=request.getParameter("userName");

Stringpwd=request.getParameter("password");

out.println("");

out.println("");

out.println("

");

out.println("Name:

"+name+""+"Password:

"+pwd);

out.println("

");

out.println("");

out.println("");

out.flush();

}}

配置文件web.xml片段:

login

com.kettas.servlet.LoginServlet

login

/login

4请求转发:

实现不同servlet之间的数据传递,这样便可实现业务逻辑和显示逻辑的分离

实例:

(1)第一个servlet,负责业务

packagecom.kettas.servlet;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjava.io.*;

importjava.util.*;

publicclassForwardAextendsHttpServlet{

@Override

publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException

{System.out.println("===ThisisforwardA===");

//将业务部分的数据存储在request对象中,传递给下一个servlet使用

Dated=newDate();

request.setAttribute("date",d);

/*注意转发的过程

*首先获得一个知道下一棒地址的"接力棒"对象,然后将这个"接力棒"传给下一个

*servlet,这样便将请求转发了。

*/

RequestDispatcherdisp=request.

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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