您好,欢迎访问三七文档
JSP高级编程第一讲简介1.1动态网站技术•动态网站的需求•传统的CGICGI(CommonGatewayInterface)技术就是为•了解决增加服务器扩展能力而产生的技术•ASP技术1.2Sun的企业级解决方案•Servlet技术:一个标准的服务器应用程序,处理http的请求•Servlet的优势--运行效率高--可移植--廉价--安全--主流1.3准备运行环境•安装配置JDK•安装配置Tomcat1.4编写运行第一个Servlet/JSP程序•创建HelloWorldServlet•创建目录结构--/WEB-INF/web.xml--/WEB-INF/classes--/WEB-INF/lib/•javax.servlet.Servlet•javax.servlet.GenericServlet•javax.servlet.http.HttpServletpackagecom.edu_a.exampleimportjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloWorldextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType(text/html);PrintWriterout=response.getWriter();out.println(html);out.println(headtitleHello,World!/title/head);out.println(body);out.println(h1Hello,World!/h1);out.println(/body);out.println(/html)out.close();}}1.5Web应用程序的构成•JSP/Servlet的规范配置文件静态文件和JSP/Servlet类文件和包•本章总结:–本章主要对Servlet和JSP作了较为简单的介绍.同时以Tomcat为例配置了相应的Web应用环境•本章重点:–了解运行环境Tomcat第二讲Servlet基础•什么是servlet?•Servlet的优点是什么?Servlet是针对CGI的问题而设计的,用于创建高性能的、健壮的服务器端程序。Servlet有自己的生命周期,使用多线程而不是昂贵的进程处理客户请求,因而大大提高了性能2.1javax.servlet包•javax.servlet包中的接口•javax.servlet包中的类•javax.servlet包中的异常2.2servlet生命周期•Servlet的生命周期是由Servlet服务器负责管理的•方法–Init()–Destroy()–getServletConfig()–getServletInfo()–Service()Packagecom.edu_a.example;Importjavax.servlet.*;Importjava.io.IOException;PublicclassServletLifeimplementsSerclet{puvlicvoidinit(ServletConfigconfig)throwsServletException{System.out.println(“调用init()…….”);}publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{System.out.println(“调用service()…….”);}publicvoiddestroy(){System.out.println(“调用destroy()…….”);}publicStringgetServletInfo(){returnnull;}publicServletConfiggetServletConfig(){returnnull;}}2.3ServletRequest/ServletResponse接口•ServletRequest接口•声明方法–getParameterNames()取得参数名称–getParameter()取得特定参数的参数值–getRemoteAddress()取得远程主机的地址–getRemotedHost()取得远程主机名称•ServletResponse接口•主要方法–getWrite()2.4GenericServlet包装类•包装类(Wrapper)–GenericServlet实现的接口–Servlet–ServletConfig–java.io.Serializable2.5Servlet配置信息•获取Servlet的配置信息•方法及用途–getInitParameter()取得Servlet起始参数值(String)–getInitParameterNames()取得Servlet起始参数名(Enumeration)–getServletContext()取得ServletContext对象(ServletContext)–getServletName()取得Servlet的名称(String)•保留Servlet的配置信息2.6ServletContext接口•初始化Web应用参数•获取容器的信息•使用绑定在Servlet间共享信息•本章总结–介绍Servlet的基础,以及接口与类.•本章重点–ServletRequest接口–ServletResponse接口–ServletContext接口第三讲HttpServlet3.1Http协议Http----HypertextTransferProtocol生活类比:人与人交流大多靠语言:中国人用中文交流,美国人用英文交流;而如果你只会中文,而你想交流的美国人不会中文,你们就无法交流,因为你们的语言不通!语言是有一定的结构、语义等,这些规则就是协议•请求.响应和头信息例如:GET/index.htmlHTTP/1.0–GET是HTTP已经定义的方法–/index.html是资源的名称–HTTP/1.0是客户端使用HTTP协议的版本号3.2HttpServlet包•HttpServlet类–该类继承GenericServlet类,并增加了7个方法:–doGet()–doPost()–doPut()–doHead()–doOptions()–doDelete()–doTrace()•doGet方法•doPost方法当客户端发送HTTP请求使用GET方法时就调用doGet()方法。HTTP的缺省方法就是GET。当客户端发送HTTP请求使用POST方法时就调用doPost()方法。3.3HttpServletReponse接口•控制HTTP响应报头–addHeader()–containsHeader()–setHeader()–setIntHeader()–setDateHeader()–addIntHeader()–addDateHeader()响应报头含义响应报头含义Allow指定服务器所支持的请求类Catch-Control告诉浏览器或其它客户在什么环境下可以安全地缓存文档Content-Encoding指明页面在传输过程中所使用的编码方式Content-Length指明响应中的字节数Content-Type给出响应文档的MIME(多用因特网邮件扩展)类型。Expires这个报头规定内容的过期时间,从而不需继续缓存Refresh指明浏览器应该多长时间之后请求最新的页面它告诉浏览器,客户应该在Authorization报头中提供哪种验证类型(BASIC或DIGEST)和域•响应重定向•自动刷新/等待•特殊字符处理3.4HttpServletRequest接口HttpServletRequest接口定义的方法:StringgetAuthType()StringgetContextPath()Cookie[]getCookies()longgetDateHeader(java.lang.Stringname)StringgetHeader(java.lang.Stringname)EnumerationgetHeaderNames()EnumerationgetHeaders(java.lang.Stringname)getIntHeader(java.lang.Stringname)StringgetMethod()StringgetPathInfo()StringgetPathTranslated()StringgetQueryString()StringgetRemoteUser()StringgetRequestedSessionId()StringgetRequestURI()StringBuffergetRequestURL()StringgetServletPath()HttpSessiongetSession()HttpSessiongetSession(booleancreate)java.security.PrincipalgetUserPrincipal()booleanisRequestedSessionIdFromCookie()booleanisRequestedSessionIdFromUrl()booleanisRequestedSessionIdFromURL()booleanisRequestedSessionIdValid()booleanisUserInRole(java.lang.Stringrole)•请求报头信息•表单数据和参数getHeader()getHeaders()getHeaderNames()getIntHeader()getDateHeader()getParameter()getParameters()getParameterNames()请求报头含义请求报头含义Accept指定浏览器或其它客户程序可以处理的MIME类型:如img/pngIf-Modified-Since这个报头表明,仅当页面在制定的日期之后发生更改的情况下,客户程序才希望获取该页面。如果没有更新的页面,则服务器发送304报头。Accept-Charset表明浏览器可以使用的字符集User-Agent表明生成请求的浏览器和客户程序,通过它,我们可以判断用户使用的浏览器的类型。Accept-Encoding详细列出客户端能够处理的编码类型。Cookie这个报头向浏览器返回cookie。Accept-Language客户端能够接受的语言代码。如zh-cnContent-Length这个报头只适用于POST请求,用来给出POST数据的大小以字节为单位Authorization当访问密码保护的Web页面时,客户用这个报头来标识自己的身份。Host给出主机名和端口•请求委托和请求域–使用RequestDispather对象的方法:•使用ServletContext对象的getRequestDispatcher()方法•使用ServletRequest对象的getRequestDispatcher()方法•使用ServletContext对象的getNamedDispatcher()方法•本章总结–叙述了HTTP的相关内容–介绍了Servlet的主要接口第四讲从Servlet访问数据库4.1JDBC简介•Java.sql包–访问数据库的API•DriverManager类•Connection接口•Statement接口•ResultSet接口•PreparedStatem
本文标题:JSP高级编程
链接地址:https://www.777doc.com/doc-3543955 .html