javaEE基础教程.ppt
《javaEE基础教程.ppt》由会员分享,可在线阅读,更多相关《javaEE基础教程.ppt(99页珍藏版)》请在三一办公上搜索。
1、Servlet技术,Java EE 技术架构,Day 1 大纲,Web编程模型Http协议Get请求和Post请求Servlet概述Web服务器Servlet的配置文件Servlet的调用过程Servlet的接口Web容器概述Web容器实现,B/S编程模型,B/S编程模型Browser(客户端)代理客户端发送http请求接收服务器端响应显示html文本客户端-服务器端通信协议:http服务器(Server)端处理客户端的请求发回http响应,HTTP协议,简介HTTP:HyperText Transfer Protocol,超文本传输协议,在RFC2616中定义是Web应用程序的基础,是应用层
2、协议,基于tcp/IP版本:HTTP1.1Http的缺省端口是80Http特点是:无状态、无连接,HTTP协议,1.连接到服务器,3.发送响应,4.关闭连接,Web 服务器,客户机,2.发送请求,HTTP 通信的四个阶段,HTTP 举例,URL(Uniform Resource Locator,统一资源定位符):协议名+DNS名+请求的文件名http:/home/index.html浏览器向DNS服务器询问 的IP地址DNS的回复是浏览器与上的80端口建立一个TCP连接浏览器发送一个请求,要求获取文件/home/index.html服务器发送文件/home/index.html(服务器的响应)
3、TCP连接被释放浏览器显示/home/index.html中所有的文本浏览器取回并显示该文件中的所有图片,Http请求,浏览器代理用户发出Http请求地址栏:http:/http:/?complete=1&hl=zh-CN&q=google&meta=表单提交,Http请求,表单提交http请求示例:,请登录 用户名 密相当于:http:/localhost:8080/myapp/loginValidator.jsp?UserName=tomloginValidator.jsp?UserName=tom&Password=1123456,Http请求,请求数据请求头等:浏览器及客户端相关信息,
4、如:http协议版本(1.1)浏览器?支持哪些类型文档类型?支持哪些字符集?客户机地址是多少?用户数据请求文件(资源)请求参数形式:名字=值两种方法(method):Get Post,Http请求,Get方法与Post方法发送请求示例,Get方法示例:GET/myapp/loginValidator.jsp?UserName=tom&Password=123456 HTTP/1.1Host:其它请求头BODYEMPTYPost方法示例:POST/ibm-demo/loginValidator.jsp HTTP/1.1Host其它请求头BODYUserName=tom&Password=1234
5、56,Http请求,Get与Post方法的区别Get方法:用户数据作为 URL 中的查询字符串传递给服务器,而body中的数据为空Post方法:用户数据在body中传输给服务器因此:Get方法所传输的数据量有限制,Post方法则没有限制Get方法所传输的数据在url中可见,post则不可见,Http小结,http是B-S之间传输数据的协议http请求请求头相关Get/Post方法用户相关数据请求资源可以是:html,jsp,servlet输入数据Get/Post方法传输形式:name=valuehttp响应响应头相关响应数据:html文档,动态技术,动态技术web服务器只能向客户提供静态的资源
6、,但动态处理更为重要服务器端动态处理常见技术CGI(Common Gateway Interface):公共网关接口PHP(HyperText Preprocessor):超文本处理器ASP(Active Server Page):活动服务器页面Servlet(JSP-Java Server Page):java 服务器页面,Servlet概述,Servlet是一种 Java 编程对象能够处理请求和响应的方法是一个强大的,可以替代 CGI 的技术课程内容专注于开发Servlet来解决现实世界的问题讨论Servlet开发相关的问题介绍主要的基于Servlet相关功能的Web服务,Servlet
7、处理请求和响应,Servlet 为实现基于Http协议的请求和响应,扩展出具体的子类HttpServletHttpServlet 类是专门用于处理基于Http协议的Servlet,Http 与 Servlet,HttpServlet示例,import java.io.*;import javax.servlet.*;import.*;public class HelloWorldServlet extends HttpServlet public void doGet(HttpServletRequest req,HttpServletResponse res)res.setContentTy
8、pe(text/html);try PrintWriter out=res.getWriter();out.println();out.println(Hello World);out.println();out.println(Hello World);out.println();out.close();catch(IOException ioe)getServletContext().log(ioe,Error in HelloWorld);public void doPost(HttpServletRequest req,HttpServletResponse res)doGet(req
9、,res);,上例HelloWorldServlet继承HttpServletHttpServlet实现了接口HttpServlet 类是专门用于处理基于Http协议的ServletServlet还可以处理Http以外的其他类型的请求,HttpServlet,Servlet的配置文件,Web.xml是web应用的部署描述文件,Servlet的配置,Servlet类在web.xml中的配置容器通过这个配置获取Servlet的信息,从而管理Servlet对象,示例:WelcomeServlet WelcomeServlet helloWordServlet servlet.HelloWorldSe
10、rvlet helloWordServlet/WelcomeServlet注意请求url与间的关系:http:/localhost:8080/myapp/WelcomeServlet,Servlet的调用,在JSP页面的表单中,通过调用Servlet:,请登录 用户名 密相当于:http:/localhost:8080/myapp/WelcomeServlet?UserName=tom&Password=1123456,Servlet 接口,Servlet接口是Web 容器和 Servlet 之间的合约所有 Servlet 都应直接或间接实现这个接口 该接口定义了容器管理 Servlet 生命
11、周期的 方法,public void init(ServletConfig config)throws ServletExceptionpublic void service(ServletRequest req,ServletResponse res)throws ServletException,public void destroy()public ServletConfig getServletConfig()public getServletInfo(),Servlet 的类层次结构,Generic Servlet 类,抽象类,提供 servlet 接口的基本实现public abs
12、tract class GenericServletimplements Servlet,ServletConfig,定义以下方法,public init()public void log(String)public void log(String,Throwable)public abstract void service(ServletRequest req,ServletResponse res)throws public ServletConfig getServletConfig();public ServletContext getServletContext();,HttpSer
13、vlet 类,特定于 HTTP 的 Servlet 接口实现对于每种类型的 HTTP 请求方法,HttpServlet 类提供相应的 doXxx()方法service方法中调用相应的doXxx()方法程序员重写doXxx()方法一般不重写service方法,HttpServletRequest,该类是客户端http请求信息的抽象与封装请求头相关信息用户相关数据信息请求资源提交的数据其它获得session对象:request.getSession()-HttpSession获得请求分派对象request作用域request.setCharacterEncoding(“gb2312”);,Http
14、ServletRequest,获得用户相关数据信息:,示例:http:/localhost:8080/demo/login.jsp?name=tom/demo/login.jsp request.getRequesURI()http:/localhost:8080/demo/login.jsp request.getRequestURL()name=tom&age=18 request.getQueryString(),HttpServletRequest,获得用户数据信息获得用户提交数据request.getParameter(“name”);/获得名为”name”的参数值request.g
15、etParameterValues(“name”);/获得同名name的一组参数值,返回类型是String,HttpServletRequest,获得用户提交数据,姓名:受好:听音乐 看电影 玩游戏 上网聊天 在loginAction中:request.getParameter(“name”);/获得用户输入的姓名request.getParameterValues(“favor”);/获得用户选择的所有受好,HttpServletResponse,通过HttpServletResponse设定Http响应设置响应状态设置响应头响应文本首先设置响应头response.setContentTyp
16、e(text/html;charset=GBK);获得输出对象文本:PrintWriter out=response.getWriter();二进制:ServletOutputStream out=response.getOutPutStream()构造输出内容:out.println(“”)提交输出:out.flush()关闭out,HttpServletResponse,构造响应示例,在doGet(doPost)方法中:response.setContentType(“text/html;charset=GBK”);/1设置响应头PrintWriter out=response.getWr
17、iter();/2.获得输出对象out.println(“”);/3.构造输出out.println(A Servlet);out.println();out.print(Hello World!);out.println(,欢迎你);out.println();out.println();out.flush();/4.向容器提交输出out.close();/5.关闭输出流,HttpServletResponse,Http状态码:用于服务器将请求的状态传送给客户机100-199:临时状态码200-299:请求成功300-399:重定向400-499:客户端错误500-599:服务器端错误设置状
18、态码的方法:setStatus(int sc)HttpServletResponse中静态变量定义Http状态码:SC_OK 200 SC_MOVED_TEMPORARILY 302 SC_NOT_FOUND 404SC_INTERNAL_SERVER_ERROR 500,HttpServletResponse,设置状态码response.setStatus(int sc)发送错误消息response.sendError(int,String)例response.sendError(HttpServletResponse.SC_NOT_FOUND,”你所要查找的网页不存在!”),HttpSer
19、vletResponse,设置响应头:setHeader(“name”,value);常见响应报头Content-Type:定义响应文档的MIME(Multipurpose Internet Mail Extension)类型,由maintype/subtype组成有专门的方法设置该响应头:setContentType示例:(p142),response.setContentType(“text/html;charset=GBK”);/最常见形式response.setContenType(“application/vnd.ms-excel”);/excel文档response.setHead
20、er(Content-Type,application/vnd.ms-excel;charset=GBK);response.setContenType(“image/jpeg”);/图形图像,HttpServletResponse,使用servlet生成jpeg图像关键代码,response.setContentType(“image/jpeg”);/1.设定响应的文档是图像/生成JPEG图像int width=60,height=20;BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB)
21、;/2.创建BufferedImage对象Graphics g=image.getGraphics();/3.获得图形对象/4.使用g上的相关方法生成图形/5.输出图象到页面 ImageIO.write(image,JPEG,response.getOutputStream();,HttpServletResponse,重定向方法一:设置状态码,如302设置响应头:location方法二:sendRedirect示例,response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);response.setHeader(Location)
22、;);,HttpServletResponse,告诉浏览器不要缓存页面,response.setHeader(“Cache-control”,”no-cache”);response.setHeader(“pragma”,”no-cache”);,HttpServletResponse,页面重新刷新,response.setIntHeader(“Refresh”,10);response.setHeader(“Refresh”,”10,url=http:/”);,Web容器是Web程序运行的环境,一般由具体的服务器程序实现具体的功能Web容器功能:生成并管理相关对象,供Servlet使用管理
23、Servlet 生命周期,提供Servlet的运行环境充当 Web 服务器和 Servlet 之间的桥梁将请求从 Web 服务器转发到 Servlet将响应从 Servlet 转发到 Web 服务器,Web 容器概述,IBM 的 Web Sphere Application ServerBEA 的 Web LogicSun Microsystems 的 iPlanet Application ServerSun 的 J2EE Reference ImplementationJakarta TomCat ServerJboss,Web 容器实现,Servlet基础小结,Servlet基础小结We
24、b.xml:部署描述文件配置web应用,如描述了Servlet配置容器通过它获得应用程序的配置信息容器管理servlet对象调用servlet对象上的方法Servlet必须实现Servlet接口在doGet/doPost方法中通过HttpServletRequest获取用户请求信息完成业务功能通过HttpServletResponse作出响应,Day 2 大纲,Servlet生命周期ServletRequestServletContextServletConfigServlet的资源访问概述requestDispacher详解sendRedirect详解,Servlet生命周期,容器管理Ser
25、vlet依据web.xml接口Servlet中三个方法 init()、service()、destroy()管理1、加载和实例化容器启动时,且配置了:1容器接收到客户端请求2、初始化容器调用该 Servlet 对象的 init()3、请求处理 容器调用 service()方法4、服务终止,容器调用 destroy()方法,Servlet生命周期,Servlet生命周期,测试:容器启动时创建了Servlet对象(HelloWorld.java),HelloWorld servlet.HelloWorld username sa password sa 1public void init()thr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaEE 基础教程
链接地址:https://www.31ppt.com/p-5435956.html