servletjsp培训课件.ppt
《servletjsp培训课件.ppt》由会员分享,可在线阅读,更多相关《servletjsp培训课件.ppt(118页珍藏版)》请在三一办公上搜索。
1、,知识体系,Servlet概念、生命周期、运行机制Servlet API的常用接口和类SessionELJSTL定制标签标签文件过滤器监听器,为什么需要Servlet2-1,使用JSP技术如何编写服务器动态网页?,请求,响应,JSP 页面,运行,执行,Java代码,HTML代码,生成,JSP 使用 Java 生成动态内容,为什么需要Servlet2-2,在JSP技术出现之前如何编写服务器动态网页?,请求,响应,Java代码,HTML代码,生成,运行,Servlet程序,什么是Servlet 2-1,Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序,请求,响
2、应,Servlet 运行于服务器端,什么是Servlet 2-2,初识Servlet,import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloServletTest extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException response.setContentType(text/
3、html;charset=GBK);PrintWriter out=response.getWriter();out.println();out.println(Servlet);out.println();out.println(你好,欢迎来到Servlet世界);out.println();out.println();out.close();,继承HttpServlet类,Servlet输出HTML标签和内容,导入所需的包,处理请求的方法,将数据发送给客户端,Servlet的生命周期2-1,Servlet的生命周期,HTTP请求,容器,1,2,解析请求,3,4,5,响应,6,创建Servl
4、et实例,调用init()方法,Servlet,调用service()方法,调用destroy()方法,输出响应信息,7,8,Servlet的生命周期2-2,生命周期的各个阶段,实例化,Servlet 容器创建 Servlet 的实例,初始化,该容器调用 init()方法,请求处理,如果请求 Servlet,则容器调用 service()方法,销毁实例之前调用 destroy()方法,服务终止,生命周期相关方法,public class HelloServlet extends HttpServlet public void init()throws ServletException Syst
5、em.out.println(初始化时,init()方法被调用);protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException System.out.println(处理请求时,service()方法被调用);public void destroy()super.destroy();System.out.println(释放系统资源时,destroy()方法被调用);,Servlet相关接口3-1,ServeltConfig接口在Servlet
6、初始化过程中获取配置信息一个Servlet只有一个ServletConfig对象ServeltConfig接口的常用方法,例子:ServletConfigDemo,Servlet相关接口3-2,ServeltContext接口获取Servlet上下文,为容器中所有Servlet所共享JSP隐含对象application就是ServletContext的实例ServeltContext接口的常用方法,Servlet相关接口3-3,GenericServlet抽象类提供了Servlet与ServletConfig接口的默认实现方法GenericServlet的常用方法,例子:GenericServ
7、leDemo,HttpServlet类2-1,HttpServlet继承于GenericServlet处理HTTP协议的请求和响应HttpServlet的方法,HttpServlet类是抽象类,编写Servlet一定要继承HttpServlet类,HttpServlet类2-2,使用doXxx()接收用户请求doGet():用户使用get方式提交请求时调用doPost():用户使用post方式提交请求是调用,import java.io.IOException;import javax.servlet.*;import javax.servlet.http.*;public class Hel
8、loServlet extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException/doGet方法体内容 public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException/doPost方法体内容,使用Get方法提交,触发doGet()方法,使用Po
9、st方法提交,触发doPost()方法,由service()方法根据表单提交方法自动调用doXxx()方法,Servlet的部署,在Tomcat中如何部署,tomcat,webapps,store,WEB-INF,index.html,test.jsp,lib,classes,*.jar,HelloServlet.class,web.xml,显示页面,第三方jar文件,.java编译后的.class文件,程序配置文件,必须的,tomcat主目录,文档根目录,Servlet的配置,在web.xml文件中配置Servlet,HttpServletTest cn.jbit.servlet.HttpS
10、ervletTest HttpServletTest/HttpServletTest,两个名称必须相同,为了方便使用Servlet,取个别名,完整的包名+类名,访问Servlet的URL,web.xml部署描述文件是Web应用的核心文件,控制整个应用的行为方式和方法,在Servlet运行时起到“总调度”的角色,运行Servlet,启动Tomcat服务器在浏览器中输入,http:/localhost:8080/store/HttpServletTest,获取Servlet初始化参数2-1,Servlet初始化参数配置,HelloServlet org.jbit.servlet.HelloServ
11、let initParam Hello Servlet HelloServlet/HelloServlet,获取Servlet初始化参数2-2,获取初始化参数,public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException System.out.println(处理请求时,doGet()方法被调用。);String initParam=getInitParameter(initParam);System.out.println(initPa
12、ram);,根据参数名称进行读取,获取Servlet上下文参数2-1,配置Servlet上下文,contextParam Hello Servlet,初始化参数的名字,初始化参数的值,获取Servlet上下文参数2-2,读取Servlet上下文,public class HelloServlet extends HttpServlet/省略其他代码public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException System.out.prin
13、tln(处理请求时,doGet()方法被调用。);String initParam=getInitParameter(initParam);String contextParam=this.getServletContext().getInitParameter(contextParam);System.out.println(Servlet初始化参数+initParam);System.out.println(系统初始化参数+contextParam);,根据参数名称进行读取,使用Servlet处理GET/POST请求3-1,处理登录表单数据,public void doPost(HttpS
14、ervletRequest request,HttpServletResponse response)throws ServletException,IOException request.setCharacterEncoding(GBK);response.setContentType(text/html;charset=GBK);String pass=request.getParameter(password);String user=request.getParameter(loginName);RequestDispatcher dispatcher=null;if(user.equ
15、als(“admin),将输入转换为中文,设置输出为中文,如果不符合要求,则重定向到登录页面,如果符合要求,则转发到ok.jsp页面,并在ok.jsp页面中显示用户名,使用Servlet处理GET/POST请求3-2,HttpServletRequest类常用方法HttpServletResponse类常用方法,使用Servlet处理GET/POST请求3-3,RequestDispatcher类作用:实现请求转发使用步骤获取RequestDispatcher类实现转发,RequestDispatcher dispatcher=request.getRequestDispatcher(url)
16、;/参数url是欲转发的页面或者Servlet的URL地址,dispatcher.forward(request,response);,Session,网址重写,网址重写是一种Session追踪技术,需要将一个或多个token作为一个查询字符串添加到一个URL中格式:键=值注:URL和token之间要用一个问号(?)隔开,两个token之间用一个&符号隔开例子:Top10Servlet,隐藏域,隐藏域来保持状态与采用网址重写技术类似。它是将值放在HTML表单的隐藏域中。当用户提交表单时,隐藏域中的值也传送到服务器。只有当页面包含表单,或者可以在页面中添加表单时,才适合用隐藏域.例子:Custo
17、merServlet,Cookie,Cookie是自动的在Web服务器和浏览器之间来回传递的一些小块信息。可根据需要设置cookie的有效期限。Cookie的使用主要是javax.servlet.htpp.Cookie类和HttpServletRequest类,HttpServletResponse类创建cookie:Cookie cookie=new Cookie(name,value)发送cookie到浏览器:httpServletResponse.addCookie(cookie);Cookie的maxAge属性是设置cookie的有效期限例子:PreFerenceServlet,Htt
18、pSession 1,HttpSession 2,JSP,什么是JSP,JSP(Java Server Pages)是指:在HTML中嵌入Java脚本代码由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码然后将生成的整个页面信息返回给客户端,3,执行,2,翻译,编译,1,请求,响应,Web容器处理JSP文件请求需要经过3个阶段:翻译阶段编译阶段执行阶段,应用服务器,客户端,JSP文件,.java,.class,JSP 执行过程 2-1,执行,第二次请求,响应,第一次请求之后,Web容器可以重用已经编译好的字节码文件,应用服务器,客户端,.class,注意:如果对JSP文件进行了修改,
19、Web容器会重新对JSP文件进行翻译和编译,JSP 执行过程 2-2,JSP 页面的元素包括:,静态内容,指 令,表达式,小脚本,HTML静态文本,以“”结束。比如:,声 明,注释,JSP 页面组成,page指令,page指令通过设置内部的多个属性来定义整个页面的属性语法:page指令常用属性,Include指令,Include指令可以将另一个文件的内容放到当前的JSP页面格式:,Copyright.jspf2012 BrainySoftware,Including a fileThis is the included context:,最后形成的jsp页面Including a fileTh
20、is is the included context:2012 BrainySoftware,小脚本与表达式,计算求和两个数的求和结果为:,指令,小脚本,表达式,小脚本格式:B表达式:java代码不需要分号结束在JSP页面中计算两个数的和,将结果输出显示,什么是声明,声明就是在JSP页面中定义Java的变量和方法语法:,你好,今天是,方法声明后可在页面中多处调用,格式:声明可以放在jsp页面的任何位置,并且同一个页面可以有多个声明,JSP中的注释,合理、详细的注释有利于代码后期的维护和阅读在JSP文件的编写过程中,共有三种注释方法:HTML的注释:JSP注释:在JSP脚本中注释:,缺点:不安全
21、,加大网络传输负担,什么是JSP内置对象,JSP内置对象是 Web 容器创建的一组对象JSP内置对象的名称是JSP 的保留字JSP内置对象是可以直接在JSP页面使用的对象,无需使用“new”获取实例,没有出现new关键字,但却可以使用request对象,JSP内置对象,九个内置对象,这些对象可以直接使用而无需声明,内置对象,输入输出对象,动作,useBean这个动作将创建一个与某个java对象相关的脚本变量。是将表现逻辑与业务逻辑分隔的容易的方法之一useBean运行之后,将会在浏览中输出当前的日期和时间,动作,setProperty和getPropertysetProperty是在一个jav
22、a对象中保存一个属性,getProperty是获取一个java对象的属性 例子:getSetPropertyTest.jspForwordforword动作是将当前页面跳转到另一个不同的资源,错误处理,利用page指令的isErrorPage属性,该属性必须为trueErrorAn error has occurred.Error message:,错误处理,防止未捕捉异常的其他页面使用page指令的errorPage属性,将路径引向属性值指定的错误处理页面Deliberately throw an exception,EL,什么是EL表达式,什么是EL EL即Expression Langu
23、age(表达式语言)EL的功能替代JSP页面中的复杂代码EL的语法$EL exprission$bean.name 或$beanname,$bean.name实质是调用bean的getName()方法,EL的特点,自动转换类型 EL得到某个数据时可以自动转换类型 对于类型的限制更加宽松使用简单 相比较在JSP中嵌入Java代码,EL应用更简单,EL的语法,EL语法 以“$”作为开始,以“”作为结束直接使用变量名获取值$username 变量属性范围名称,EL中的运算符,EL运算符运算符”运算符”.”作用获取对象属性获取一个不是有的java变量名称时,只能使用 运算符,如:获取accept-la
24、nguagea标头获取对象集合中的数据在Session中保存了一个(list)集合users,$user.name,$user“name”,相等,$sessionScope.user1,得到集合中第二位的对象,EL表达式的简单应用,输出姓名显示,姓名:$names.one姓名:$namestwo,使用EL表达式输出姓名,EL隐式对象,隐式对象,JSP隐式对象,paramValues,param,applicationScope,requestScope,sessionScope,pageScope,作用域访问对象,参数访问对象,pageContext,EL隐式对象,EL隐式对象介绍,运算符,运
25、算符,运算符示例,4 3$4 le 3 4=4$4=4Empty 运算符 empty info$empty info 三目操作:$num1num2?大于:小于br/,禁用EL,JSP页面中禁用整个网站禁用,修改web.xml文件*.jsptrue,JSTL,什么是JSTL,使用JSTL实现JSP页面中逻辑处理什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标签库JSTL通常会与EL表达式合作实现JSP页面的编码,JSTL 的优点,提供一组标准标签,可用于编写各种 动态 JSP 页面,JSTL的环境搭建,使用JSTL的步骤创建Web工程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- servletjsp 培训 课件

链接地址:https://www.31ppt.com/p-6218997.html