欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    控制层Servlet组件技术.docx

    • 资源ID:5303780       资源大小:145.24KB        全文页数:9页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    控制层Servlet组件技术.docx

    控制层Servlet组件技术一 Java Servlet及其技术特点l. Java Servlet 及特点(1) Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方 法的Java程序(2) 在服务器端的Servlet容器里(如Tomcat)运行2.Servlet与传统的应用程序的对比(1) Servlet由Web服务器(如Tomcat)进行加载。3.Servlet能够处理Http请求和响应(1) Web客户端程序与Servlet之间通过http通信,处理客户端程序的请 求并返回一系列结果,动态地生成Web页面 4.Servlet的最大的优势在于它的高性能(1) 首先Servlet在第一次初始化时装载并驻留在内存中,以后直接从内存 中运行;(2) 其次,在默认情况下Servlet以单实例多线程的方式工作,一个新请求 到达后,Servlet实例开启一个新的线程服务这个请求。5.Servlet的主要作用:实现服务器端的插件6.JSP和Servlet在应用上的区别(1) 主要的差别1) JSP中应该仅仅存放与表示层有关的内容,而所有的数据计算、数据 分析、数据库连接等处理,统统是属于商业业务层,应该放在 JavaBean或者 Servlet 中。2) 注意:Servlet是包含HTML代码的Java程序,而JSP是包含Java 代码的HTML网页。(2) Java Servlet的主要缺点1)没有把网站的逻辑处理和页面的显示输出分离,为了解决 Servlet 的这种缺点,SUN 推出 了 Java Server Pages JSP。(3) Servlet与JSP相互配合1) Servlet写商业业务层很好,写表示层则不方便。所以Sun推出JSP + JavaBean,用JSP写表示层,用JavaBean写商业业务层。JSP在Servlet的基础 上有所创新,它们可以互相协作,互相补充对方的不足。注意:Servlet是可以包含HTML标签的Java程序,而JSP是可以包含Java代 码的HTML网页。8 .Servlet容器响应Web客户请求流程的UML时序图二Servlet接口和HttpServlet类各自的应用1. 所涉及的包- javax.servlet 和 javax.servlet.http- 其中在javax.servlet包中的接口和类的命名主要以Servlet开头,而在 javax.servlet.http包中的接口和类的命名主要以Http开头2. HttpServlet 类(1) HttpServlet 类:是 GenericServlet 的一个派生类,通过 GenericServlet 实现了 Servlet 接口。HttpServlet 为基于 HTTP协议的 Servlet 提供了基本的支持。(2) HttpServlet 类中的 doXXX ()方法:-当请求到来时,service ()方法决定请求的类型(GET或者POST方式)。-把请求分发给相应的处理方法(doGet()或者doPost()。(3) HttpServlet 类的定义public abstractclass HttpServletextendsGenericServletimplements Serializable-实现接口和继承抽象类在编程方式上的不同点-“Adapter模式(适配器模式)”-采用继承抽象类(HttpServlet类)的方法编程的优点3. 编写流程(1) 编写一个类,继承 javax.servlet.http.HttpServlet,重写1) 一个init ()函数2) 一个 doGet/doPost/service()函数3) 一个 destory 函数(2) 在网站的配置文件里面注册这个Servlet(3) 编译这个Servlet(4) 访问这个Servlet 示例:建立第一个Servlet,打印99乘法表FirstServlet.javaS已已t WizardCreate a 口已w S已二-1 已t classSui.irce folder:serv 已 r 5, mix:E-r.Package:com. px1987. server5. servletBrQ Enclosing type:BrNaine:First ServletlModifiers:® public default北stT旦ut 口 fin旦 1ll st己ticSuperclass:javax. e已已t. http. HttpServlet| E-rInterfaces:o1 FTeiriplate to use:1 Default teiriplate for ServletOptiuns:0Create InheritHCreate Construed Met kindsctorsHCreate doGetHCreate doPostHCreate init and destroy OCreate doDeleteOCreate doPutOCreate getServletInfo©I < BackNext >| Finisli | CaneXML Wi*dH Generate /It ap web. xml fileServlet/JSP Class Nam已:Servlet/JSP Name:Servlet/JSP Mapping URL:File Path of web. xiril:Display Nani巳:Description:FirstServ1已tcom. pxl987. server5. servlet. FirstServlet/s er-d e t /F irstS ervl e t/s 己tv己r 5/W 己bRocit /WEBJ HF| BiThis is the display naui巳 of iriy J2EE comi:This is th已 description of my J2EE coRipcpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, lOException (PrintWriter out=response.getWriter();for(int i=1;i<=9;i+)(for(int j=1;j<=i;j+)(out.println(j+"火"+i+"="+j*i);out.println("<br>");弛址(D)http : /localhost: 3037/serverE/servlet/FirstServlet1*111*22 2*2=41*33 2+3=6 3+3=91*44 2+4=8 3*4二12 4*4二161*55 2+5=10 3+5=15 4+5=20 5+5=251*66 2+6=12 3*6二18 4*6二24 5+6=30 6*6二361*77 2*7=14 3*7二21 4*7=28 5*7二35 6*7=42 7*7二491+88 2+8=16 3+8=24 4+8=32 5+8=40 6+8=48 7+8=56 8+8=641*99 2+9=18 3+9=27 4*9二36 5*9二45 6*9二54 7*9二63 8+9=72 9*9二81三Servlet技术相关的API1. 处理用户的http请求所涉及的接口和类(1)如何获得请求参数-通过使用HttpServletRequest类型的对象中的getParameter方法request, setCharacterEncoding(Agb2312tf);us erN am e=r e que s t. getFarameter(userName). trim 0;userFassword=request. getFarameter(userFassword). trim0;userDepartment = request. getFarameter(userDepartment. trim0;us erA dm inLevel = request. getFarameter (userAdininLevel). trim 0 ;(2 )处理会话础此巳作1=request. getFarameter (departAdjninLevel). trim 0 ;-通过使用getSession ()方法获得HttpSession对象-而在JSP页面中直接通过内置的session对象来代表(3 )获得Cookie中的数据-通过使用getCookies()方法获得Cookie对象的数组-实现对Cookie进行操作。2. 处理用户的http响应所涉及的接口和类(1)向浏览器输出结果-通过使用getWriter()方法获得PrintWriter对象,-实现以字符格式方式写数据。7 R- 9 0 1 I100 8 9 Qpublic void doPost(HttpServletRequ已mt request HttpS已rvl已tRespons已 response) r已spons已.m已tContentTyp已已xt/html; charset=GBKA);out =new PrintWriter(response. getOutputStream();(2 )设置HTTP响应的MIME类型:利用setContentType方法(3) 处理响应的步骤-设置响应头中的数据类型-从响应中得到输出流-将数据输出到输出流中以向客户端输出(4 )如何向客户机中写Cookie- 通过使用 addCookie(Cookie cookie)方法-实现将数据写入到Cookie中3、在Servlet中实现重定向(1) 重定向技术可以分为两类-客户端重定向-服务器端重定向(请求转发和请求重定向)。(2) 客户端重定向可以通过设置特定的HTTP头,或者写JavaScript脚本实现。<s cript 1ansua 且己二"JavaScript">alert ("数寤库中已有此用户名:/%=uSerName%>的思户, nif您重新注册一个新的用户名。*'、 window, parent, location. Itt已f="lie已rr已gist已jspA,;(/script)-(3) 服务器端的重定向使用 HttpServletResponse 的 sendRedirect()方法实现重定向(4 ) HttpServletResponse.sendRedirect()方法-这个方法将响应重定向到参数指定的新的URL。- 参数可以是一个绝对的 URL , 如 response.sendRedirect( "")也可以使用相对的 URL。-如果参数以“/”开头,则容器认为相对于当前Web应用的根,否则,容器 将解析为相对于当前请求的URL。-这种重定向的方法,将导致客户端浏览器的重新发出请求URL并跳转到 目标。-从浏览器中的地址栏中可以看到新的URL地址,作用类似于设置HTTP 响应头信息的实现。(5) 重定向的主要应用一可以防止用户重复提交同一表单浏览器先用POST的方式提交表单,然后它接收到重定向的指令,它继续用 GET的方式去下载新的页面;因此,从浏览器的角度来看,这个新的页面不是POST 的返回结果,而是GET的。这样,用户不可能在点击刷新的时候再次提交表单, 因为刷新的结果是再次用GET去下载表单提交后的结果页面,而不是重新提交表 单。4、在Servlet中实现请求的转发(1)实现的方法:利用 RequestDispatcher.forward ()方法。(2 ) RequestDispatcher.forward。方法- forward()方法将当前的request和response 转发到该 RequestDispacher 指定的资源。-要严格遵循“前面的组件处理request,最后的组件处理response” 的准则;只有在尚未向客户端输出响应时才可以调用forward ()方法,在重定向 前将自动清除缓存。否则将抛出一个IllegalStateException异常。(3 )在Servlet中进行页面跳转的方法代码例String t argetURI=/Net Shop/infol. htm*; uRequest Di spat cher dispatch =request. getRequestDispatcher(targetllRI): di spat ch. forward (reque st, response); w四Servlet的初始化参数和ServletContext接口的用途1,读取web.xml内局部参数(1) <init-param><param-name >参数名 </param-name><param-value >值 </param-value></init-param>(2) 读取局部参数getInitParameter(“ 参数名");示例:web.xml<servlet ><servlet-name >InitServlet </servlet-name ><servlet-class >com.px198 7.server5.servlet.InitServlet </servlet-class > <init-param ><param-name >book</param-name ><param-value >Java技术</param-value ></init-param></servlet ><servlet-mapping ><servlet-name >InitServlet </servlet-name ><url-pattern >/servlet/InitServlet </url-pattern ></servlet-mapping >InitServlet.javapublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException (String book =this.getInitParameter( "book");response.setContentType( "text/html;charset=gb2312");PrintWriter out=response.getWriter();out.println(book);地址(D) http: /localhost: 8087/server5/servlet/InitServletJ日v日技术2.Servlet 上下丈ServletContext 对象(1)获得容器的系统资源-利用ServletContext类获得通过容器所实现的各种系统资源的访问 及与其它Servlet之间的交互-利用ServletContext类中的方法访问容器中的资源getRealPath、getResource 和 getResourceAsStream 等方法<% 'String KmlconfigFile=application. getRealPathCW'+'VEE-INFWconfigWdatabase-config. xml"xm 1D::: mInf oEeanlD. xml Ini t ('xmlconfigFile.);xm 1DoiTLInf oEeanlD. parseXMLTag (' xm 1DomInf oEeanlD. getXMLDoclutlent ): %>(2 )区分 ServletConfig 和 ServletContext 对象-ServletConfig:当一个Servlet被实例化后仅对本Servlet有效,一 个Servlet的ServletConfig对象不能被另一个Servlet访问。-ServletContext:对任何Servlet都有效,它为Web应用的全局对象3. 读取web.xml内全局参数(1) <Context-param><param-name >参数名 </param-name><param-value >值 </param-value></Context-param>(2) 读取全局参数getServletContext.getInitParameter(“参数名");示例:web.xml<web-app version="2.5"xmlns="xmlns:xsi = "http:/www.w3.org/2 001/XMLSchema-instance" xsi:schemaLocation =" > <context-param ><param-name >bookname </param-name ><param-value >JSP技术</param-value > </context-param >ContextServlet.javapublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException (ServletContext application= this .getServletContext();String book= application.getInitParameter( "bookname"); response.setContentType("text/html;charset=gb2312"); PrintWriter out=response.getWriter(); out.println(book);地址)http : /localhost :8087/s 已:rv 已m 已:rvl 已 t /Context ServletJSF技术五线程安全的Servlet编程及应用l.Servlet为多线程方式当多个不同的用户对同一个Servlet进行请求时,服务器采用多线程的技术 来处理请求,每个请求将拥有自己的线程。2. 共享Servlet中的成员变量请求同一个Servlet将使服务器在内存中保存同一个Servlet实例,这也 就意味着所有的请求将共享Servlet中的类的成员变量-在某些应用下将会 出现问题!3. 设计线程安全的Servlet1) 为了避免多个不同用户共享Servlet中的类成员变量2) 可以将数据设计为局部变量,从而保证Servlet的无状态的特性;而将共 用的数据设计为类中的变量整体示例1:cart.jsp<body><form action="/server5/servlet/BuyServlet" method="post"><input type="hidden" name="method" value="add"><input type="text" name="bookname"><input type = "submit" value = "提交"</form><%ArrayList al=(ArrayList)session.getAttribute( "book"); if(al!=null)( for(int i=0;i<al.size();i+)out.println(al.get(i);out.println("<a href="/server5/servlet/BuyServlet?method=delete&bookname=" +i+"">删 </a><br>");%></body>BuyServlet.javapublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding( "gb2312"); String bookname=request.getParameter( "bookname"); String method=request.getParameter( "method");HttpSession session=request.getSession();ArrayList al=(ArrayList)session.getAttribute( "book");if(al=null)al=new ArrayList();session.setAttribute( "book" , al); if(method.equals("add") al.add(bookname); if(method.equals("delete")int i=Integer. parseInt (bookname);al.remove(al.get(i);response.sendRedirect("/server5/cart.jsp");地址(D) http: /Iocalhost: 8087/server5/cart. jspJ avaK术删除J寄技术删除对HEXkt 士叫龄地址)http: /localhost :8087/server5/cart, jsp提交Jwa技术删除 JSP技术耐除 Java®础删除

    注意事项

    本文(控制层Servlet组件技术.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开