《JavaWeb开发》PPT课件.ppt

上传人:xt****7 文档编号:1798441 上传时间:2019-11-06 格式:PPT 页数:36 大小:227KB
返回 下载 相关 举报
《JavaWeb开发》PPT课件.ppt_第1页
第1页 / 共36页
《JavaWeb开发》PPT课件.ppt_第2页
第2页 / 共36页
《JavaWeb开发》PPT课件.ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
Java Web开发,计算机系 孙杰,Servlet开发,2,本章内容 1.什么Servlet 2. Servlet的主要方法 3. Servlet运行原理 4. Servlet开发流程 5. MyEclipse中开发Servlet 6. Servlet实例,2.1 什么是Servlet,Servlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP(HyperText Transfer Protocol)协议进行工作的。 可以认为Servlet是服务器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。,2.2 Servlet的主要方法,Servlet是一个Java类,通常会有3类方法,分别是: init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的是doGet和doPost方法。,Servlet的生命周期,装载Servlet:这项操作一般是动态执行。有些服务器提供了相应的管理功能,可以在启动的时候就装载Servlet,并能够初始化特定的Servlet: 创建过程:创建一个Servlet实例 ; 初始化过程:调用Servlet的init()方法 ; 响应服务:如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法 ; 销毁释放资源:实例被销毁,通过调用Servlet的destroy()方法销毁Servlet 。,2.3 Servlet运行原理,1.Servlet的工作过程如下 Servlet容器接收到客户端的请求时,先判断用户所请求的Servlet对象是否存在。如果不存在,则加载Servlet类、创建Servlet对象并实例化,然后调用init方法进行初始化。 容器创建request和response对象,并且创建一个线程,调用Servlet对象的service方法(间接调用doGet方法或者doPost方法)。 service方法产生响应,容器将响应发回客户端。 容器销毁reqeust和response对象以及相应的线程。 注意: 加载Servlet类、创建对象、调用初始化方法init和销毁方法destroy都只有一次。 当Web应用被卸载或者服务器被关闭的时候,系统卸载Servlet,调用destroy方法释放资源。,2.3 Servlet运行原理,2.Servlet的加载有两种方式: 第一次请求的时候加载。 服务器启动的时候加载。,3.2.4开发Servlet基本流程,由于MyEcilpse自身具有的强大功能,上面开发Servlet的过程中某些操作已经由MyEclipse自动完成,极大的方便了程序员开发程序。但当脱离集成开发工具时,对开发一个Servlet的基本流程也应有所了解。,2.4开发Servlet基本流程,开发一个Servlet程序基本包括以下几步: (1)编写Servlet 引入用到的包,需要的导入的包有:javax.servlet.*,javax.servlet.http.*等 定义类的基本框架并继承HttpServlet 重写成员方法。如果需要对Servlet进行初始化,需要重写init方法。如果需要在卸载Servlet的时候执行一些功能,可以重写destory方法。一般情况下,根据需要完成的功能只需要重写服务类方法即可。服务类方法包括doGet方法和doPost方法等。,import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet public void init() throws ServletException /Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ,1.Servlet中获取参数,隐含对象Request String request.getParamter(参数名称); 例子: String userName=“”; userName=request.getParameter(“username”); System.out.println(“userName”+userName);,HttpServletRequest常用API,HttpServletRequest的常用方法有: 获取单值请求参数的方法:getParamter(); 获取多值请求参数的方法:getParameterValues(); 获取请求参数名字的方法:getParameterNames(); 获取session对象的方法:getSession(); 获取Web应用根路径的方法:getContextPath(); 获取Servlet路径的方法:getServletPath(); 获取request中的属性的方法:getAttribute(); 设置request中的属性的方法:setAttribute(); 获取请求转发对象的方法:getRequestDispatcher();,2.Servlet中处理返回结果,隐含对象Request String request.getParamter(参数名称); 例子: String userName=“”; userName=request.getParameter(“username”); System.out.println(“userName”+userName);,2.4开发Servlet基本流程,(2)编译Servlet 在MyEcilpse中,.java文件会在保存后自动编译。 若未安装MyEcilpse,则需要程序员手工编译Servlet。 需要事先把位于%TOMCAT_HOME%commonlib下的servlet-api.jar压缩包添加到环境变量中。 使用JDK中的javac命令编译 。,2.4开发Servlet基本流程,(3)配置Servlet Servlet编写完之后,作为Web应用的组成部分,需要在配置文件web.xml中进行配置。 Servlet的名称 Servlet类的全路径 参数名1 参数值1 启动时加载的顺序 servlet的名称 访问路径 ,2.4 Servlet的访问路径和url-pattern,当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http:/localhost/test/aaa.html,我的应用上下文是test,容器会将http:/localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了,其匹配规则和顺序如下: 1. 精确路径匹配。例子:比如servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时候,如果我访问的url为http:/localhost/test ,这个时候容器就会先 进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的servlet了。 2. 最长路径匹配。例子:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/a/*,此时访问http:/localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。,2.4 Servlet的访问路径和url-pattern,3. 扩展匹配,如果url最后一段包含扩展,容器将会根据扩展选择合适的servlet。例子:servletA的url-pattern:*.action,*.do 4. 如果前面三条规则都没有找到一个servlet,容器会根据url选择对应的请求资源。如果应用定义了一个default servlet,则容器会将请求丢给default servlet。,2.4 Servlet的访问路径和url-pattern,在web.xml文件中,以下语法用于定义映射: 1. 以”/开头和以”/*”结尾的是用来做路径映射的。 2. 以前缀”*.”开头的是用来做扩展映射的。 3.“/” 是用来定义default servlet映射的。 4.剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action,2.4开发Servlet基本流程,(4)部署Servlet Servlet编写完成之后,需要部署到服务器才能访问,编译好的文件需要放在Web应用的WEB-INFclasses下面。 利用MyEclipse创建的Servlet,成功编译后其.class文件已自动放置到WEB-INFclasses目录下。,2.4开发Servlet基本流程,(5)测试Servlet 测试方式: 访问Servlet时,要使用在web.xml中配置的url地址格式进行访问。,2.5 MyEclipse中开发Servlet,利用MyEclipse,可以在Web工程中非常方便地创建Servlet程序,并且可以根据需要为程序员自动生成其中的大部分方法。程序员只需在此基础上进行修改就可以快速开发出自己的程序。,2.5 MyEclipse中开发Servlet,利用MyEclipse开发Servlet的步骤如下: (1)在创建的myweb工程的src目录上,右击鼠标,选择NewServlet。 (2)在Name处输入Servlet名字,如MyServlet,单击Next按钮。,2.5 MyEclipse中开发Servlet,(3)在Servlet/JSP Mapping URL处配置Servlet的mapping url信息,如:/test/MyServlet。此处配置的mapping url即为将来访问Servlet时的地址格式。单击Finish按钮结束。,2.5 MyEclipse中开发Servlet,(4)查看生成的Servlet源文件: 在Eclipse环境中,创建Servlet时可以选择自动生成构造方法、init方法、destroy方法、doGet方法和doPost方法。,(5)查看生成的Servlet源文件: MyEclipse会为新建的Servlet在web.xml中自动生成相应的配置代码。每个Servlet在web.xml中都对应一对标签和一对标签。其中: 标签用于声明Servlet。其中的子标签又包括: 用于声明Servlet的名字,是web.xml中内部使用的名字。 标签:用于声明Servlet所对应的类名。 标签用于进行Servlet映射。其中的子标签又包括: 标签:表示Servlet的名字,需要和上面标签的子标签中声明的名字保持一致。 标签:用于配置Servlet的访问地址。,2.5 MyEclipse中开发Servlet,(6)测试Servlet的运行: 可以通过以下3种方式进行: 通过在浏览器中直接输入地址访问: http:/127.0.0.1:8080/myweb/test/MyServlet 通过超链的形式访问: 第一个Servlet 通过表单提交的方式访问: ,2.5 MyEclipse中开发Servlet,启动Tomcat服务器,使用第一种方式,即在浏览器地址栏中直接输入地址访问:http:/localhost:8080/myweb/test/MyServlet 运行效果如下:,2.6 Servlet实例,1.HelloWorld程序 1)引入包 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;,2.6 Servlet实例,1.HelloWorld程序 2)处理GET请求 public class HelloWorld extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException ,1.HelloWorld程序 3)返回结果 response.setContentType(“text/html“); PrintWriter out = response.getWriter(); out.println(“); out.println(“); out.println(“HelloWorld“); out.println(“”); 、 out.println(“); out.println(“My first Servlet,HelloWorld“); out.println(“); out.println(“);,2.6 Servlet实例,1.HelloWorld程序 4)配置web.xml HelloWorld HelloWorld HelloWorld /servlets/servlet/HelloWorld ,2. RequestParam程序 1)处理POST方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException doGet(request, response); ,2. RequestParam程序 2)获取参数 String loingName= request.getParameter(“ loingName“); String userName= new String(request.getParameter(“lastname“).getBytes(“8859_1”),”GBK”);,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!