关闭

关闭

关闭

封号提示

内容

首页 J2ee.ppt

J2ee.ppt

J2ee.ppt

上传者: trkqytr 2011-10-10 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《J2eeppt》,可适用于IT/计算机领域,主题内容包含JEE教程之Servlet教程JEE教程之Servlet教程Servlet概述Servlet概述角色:  Servlet开发者Servlet容器服务符等。

JEE教程之Servlet教程JEE教程之Servlet教程Servlet概述Servlet概述角色:  Servlet开发者Servlet容器服务器Servlet客户端:Web浏览器您的服务器配置好了么准备工作准备工作启动WeblogicJbuilder配置好和Weblogic的连接Jbuilder建立webapp加入servletjsp将结果deploy到服务器上打开浏览器用http:localhost:发布的unitname 访问您的应用程序请某位同学上来做一下:请某位同学上来做一下:SWB同学请上场做对平时分加分。好了大家已经充份熟悉了环境可以进入实质性学习也!本章Servlet介绍的内容本章Servlet介绍的内容Clientservlet之间通过http通信servlet处理client的请求Servlet隐藏在Servlet容器里。返回一系列结果CleintRequestServletServletServletNServletContainerRequestResponseResponseIENETSCAPEWeblogicTomcatServlet系统结构图Servlet的java表示Servlet的java表示所有Servlet必须实现Servlet接口Servlet和Applet有一些相象的地方:servlet好多方法是自动调用的Servlet方法由Servlet容器调用AppletJapplet有哪些主要方法自动调用?请某个同学回答?Servlet五个主要方法Servlet五个主要方法Voidinit(ServletConfigconfig)ServletConfig由容器提供ServletConfiggetServletConfig()StringgetServerInfo()Servlet程序员自己定义Voidservice(ServletRequestr,ServletResponses)Voiddestroy()Servlet初步工作流程Servlet初步工作流程容器收到一个请求把Servlet装入内存容器调用Init方法开始Servlet生命周期servlet开始响应用户请求Servlet线程Servlet线程…Servlet线程N容器结束Servlet调用destroy方法HttpServlet:实际使用的类HttpServlet:实际使用的类此类重载了service方法以区分get和post请求doGet方法:由Service方法调用doGet方法doGet带两个参数HttpServletRequestHttpServletResponsedoPost方法:由Service方法调用doPost方法它带的参数和doGet一样doDelete用于删除文件doPut用于在服务器上存储文件doTrace用于启用调试返回调试信息HttpServletRequest接口HttpServletRequest接口这个接口是doGetdoPost的参数之一。ContainerHttpServletRequestServletService方法doGetdoPostHttpServletRequest重要方法HttpServletRequest重要方法StringgetParameter(Stringname)取得getpost得来的参数值EnumerationgetParameterNames()请自己查getParameterValues方法的用途CookiegetCookies()小甜饼?请某位同学介绍一下。。。HttpServletRequest重要方法HttpServletRequest重要方法HttpSessiongetSession(booleancreate)返回HttpSession什么是Session?一个会话。标识某个用户访问特定服务器的一个连续过程不需要每一页都用户认证。开发部署Servlet开发部署Servlet编写jsp发布观察并修改webxml运行开发实例开发实例http::zengWebhai打入此地址后显示欢迎信息。publicclassTestHttpGetextendsHttpServlet{staticfinalprivateStringCONTENTTYPE="texthtmlcharset=GBK"publicvoidinit()throwsServletException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head>")outprintln("<title>欢迎见到头一个html文件! <title>")outprintln("<head>")outprintln("<body>")outprintln("<h>恭喜成功调用,这里是doGet方法接受HttpServerRequest<h><br>")outprintln("<h>欢迎点击本网页任何地方<h>")outprintln("<body><html>")outclose()<html><head><title>欢迎见到头一个html文件! <title><head><body><h>恭喜成功调用,这里是doGet方法接受HttpServerRequest<h><br><h>欢迎点击本网页任何地方<h><body><html>WebxmlWebxml<webapp><servlet><servletname>svt<servletname><servletclass>zengwebsvt<servletclass><servlet><servlet><servletname>testhttpget<servletname><servletclass>zengwebTestHttpGet<servletclass><servlet><servletmapping><servletname>testhttpget<servletname><urlpattern>hai<urlpattern><servletmapping><servletmapping><servletname>svt<servletname><urlpattern>zeng<urlpattern><servletmapping><webapp>Weblogic有时web更新不及时比不上tomcatWeblogic有时web更新不及时比不上tomcatWeblogic有时候用户程序更新之后服务器端始终不更新办法:删除upload中的war文件手工deploy并重新启动服务器Jbuilder重新部署文件任务处理带http的get请求任务处理带http的get请求打算用一个searchBook的jsp文件提示用户输入查询内容然后提交给servlet名字是searchItsearchIt根据用户输入内容查询并给出结果(一个新的网页)SearchBookjsp<pagecontentType="texthtmlcharset=GBK"><html><head><title>searchBook,查询书的内容曾海,带了一个searchBookBean但是不用<title><head><body><h>欢迎进入假冒的网上查询数据库!(后头没有jdbc)<h><formaction="http::zengWebgo"method="get"><br>输入书名请!:<inputname="sample"><br><br><br><hr><inputtype="submit"name="Submit"value="查询!"><inputtype="reset"value="再来!"><br><form><body><html>publicclassSearchitextendsHttpServlet{staticfinalprivateStringCONTENTTYPE="texthtmlcharset=GBK"publicvoidinit()throwsServletException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringbookname=requestgetParameter("sample")responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>Searchit例子! 曾海<title><head>")outprintln("<body>")outprintln("<p>取到值了!恭喜!您要查的书名是<p>")outprintln("<h>"bookname"<h><hr>")outprintln("<body><html>")}ServletMapping中的内容ServletMapping中的内容<servletmapping><servletname>searchit<servletname><urlpattern>go<urlpattern><servletmapping>我的问题我的问题例子程序中表单中只有一个元素sample如果有多个元素怎么办?比如输入用户的姓名年龄爱好。可以多次使用getParameter来处理这些参数。如果这些元素还是下拉框多选框怎么办?哪位同学回答一下呢?Post请求:更安全Post请求:更安全Post将html表单中的结果给webserver,更安全。Post请求一般不缓存直接发到server上。看一个用post方法的实例。实例实例写Searchauthorjsp显示请用户输入用户名年龄。显示查询按钮点击查询按钮提交到zengWebthinkurl下Think是一个映射实际的servlet是zengWebauthorItjavasearchAuthorjsp<formaction=http::zengWebthinkmethod="post"><br>输入作者名请!:<inputname="aname"value="test"><br><br>输入作者年龄请!:<inputname="age"value="doit"><br><hr><inputtype="submit"name="Submit"value="查"><inputtype="reset"value="再来">最后别忘记配置webxml最后别忘记配置webxml请某位同学上来实习一下把刚才说的做一遍。算平时分。发布运行正确就好。AuthoritjavapublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringaname=requestgetParameter("aname")Stringage=requestgetParameter("age")responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>authorit<title><head>")outprintln("<body>")outprintln("<p>您的作者是<p>")outprintln("<h>"aname","age"<h>")outprintln("<body><html>")观察文件存放结构观察文件存放结构请看zengWeb的目录结构Defaultroot目录中的文件Src目录中的文件zengWeb的根目录请观察常见的错误常见的错误Get发送的表单发给了post的servletPost发送的表单由doGet处理参数名称错误资源的重定向资源的重定向Stringloc=requestgetParameter(“xxx”)If(locequals(“zeng”))responsesendRedirect(“do”)elseresponsesendREdirect(“do”)资源路径资源路径默认的上下文目录调用:http::zengWebredredirectpage=dohttp::zengWebredredirectpage=domCookieCookie存储在计算机上的小文本文件比如:唯一的用户标识“这是您第几次访问本网站”用户购物车用户的喜好已购东西列表用户名密码的自动登录cookiescookies服务器将所有的cookies放到http头里发给客户。客户可以接受cookies也可以不接受。Mapbooks=newHashMap()Booksput(“c”,””)Booksput(“java”,””)Stringlan=requestgetParameter(“lan”)Stringisbn=booksget(lan)toString()Cookiecookie=newCookie(lan,isbn)ResponseaddCookie(cookie)例子:cookieWeb接受用户询问到上海还是到北京cookieservletjava:servlet接受用户询问提交给servlet本身进行redirectshanghaijspbeijingjsp两个资源是最后的结果cookieWebjsp <h><formname="cisco"action="http::zengWebcookie"method="post"><br>请输入您想去的地方可以是北京BJ或者上海SH。<br>请输入BJ或者 SH<br> <inputname="location"type="input"value="BJ"><br><inputtype="submit"name="Submit"value="Go!"><inputtype="reset"value="Reset">cookieservletjavaStringlocation=requestgetParameter("location")取得位置if(location!=)if(locationequals("BJ"))responsesendRedirect("beijingjsp")elseif(locationequals("SH"))responsesendRedirect("shanghaijsp")responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>您的输入错误<title><head>")outprintln("<body>")outprintln("<p>你去不了上海也去不了北京。*^^<p>")outprintln("<body><html>")当前资源在zengWeb的上下文根目录。除非指定完整的URL比如http::zengWebxxxxx都可以。一旦执行之sendRedirect之后处理源立即停止。二  会话跟踪二  会话跟踪任务:personalization浏览   每个用户都有自己特殊的页面。个性化的对面:隐私权。个人数据的滥用。信用卡号的泄露。限制:http是无状态协议它不能存储有关用户永久信息。一百个用户同时访问服务器哪次访问是哪个用户的?怎么区分??痛苦。解决方法:解决方法:l        用数据库存放用户资料l        用cookie跟踪l        用session跟踪还可以使用hidden隐藏表单传数据,hidden非常有用。Cookie跟踪cookie存放在用户计算机上。存放名-值对。比如唯一的用户标识用户喜好用户姓名等等等。cookie是文本文件通过http头交互传递。用户可以不接受cookies而cookie可以有生存周期。举例:举例:让用户先选择你喜欢的数码设备digitSelectjsp选择后的结果post放到digitServletjava里digitServletjava显示选择结果digitServletjava页面还可以推荐用户产品点击推荐产品后发get请求。digitSelectjsp<formmethod="POST"action="http::zengWebdigital"><p><inputtype="radio"value="DC"name="hobby"> digitalcarmara<p><p><inputtype="radio"value="DR"name="hobby"> digitalrecorder<p><p><inputtype="radio"value="DV"name="hobby"> digitalvideo<p><p><inputtype="radio"value="DMP"name="hobby"> mp<p><p><inputtype="radio"value="LDV"checkedname="hobby">carmarahead<p><p><inputtype="submit"value="提交"name="B"><inputtype="reset"value="全部重写"name="B"><p><form>digitServletjavaprivatefinalMaphobbies=newHashMap()publicvoidinit()throwsServletException{hobbiesput("DV","video")hobbiesput("DC","carmara")hobbiesput("DR","recoder")hobbiesput("DMP","MP")hobbiesput("LDV","head")}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Cookiecookies=requestgetCookies()responsesetContentType(CONTENTTYPE)用来处理jsp过来的结果PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>digitServlet<title><head>")outprintln("<body>")if(cookies!=cookieslength!=){outprintln("您可能喜欢的产品是""<br>")for(inti=i<cookieslengthi)outprintln(cookiesigetName()"全称"cookiesigetValue()"<br>")}elseoutprintln("您还没喜欢的产品""<br>")outprintln("<body><html>")}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringhobby=requestgetParameter("hobby")Stringname=hobbiesget(hobby)toString()根据缩写查到名称Cookiecooke=newCookie(hobby,name)爱好全称responseaddCookie(cooke)写入用户端responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>digitServlet<title><head>")outprintln("<body>")outprintln("您选择了"name)outprintln("<p><ahref=http::zengWebdigitSelectjsp>按这个再选择<a><p><br>")outprintln("<p><ahref=http::zengWebdigital>按这里看您的曾经爱好<a><p>")outprintln("<body><html>")outclose()}三Session三Session利用sessionSelectjsp提交结果到sessionServlet中这个Servlet别名是sessionlet它的dopost方法将用户选择放到httpSession对象中它的getpost方法正好可以取出Session的变量值。sessionServletjavapublicclasssessionServletextendsHttpServlet{staticfinalprivateStringCONTENTTYPE="texthtmlcharset=GBK"privatefinalMaphobbies=newHashMap() publicvoidinit()throwsServletException{hobbiesput("DV","video")hobbiesput("DC","carmara")hobbiesput("DR","recoder")hobbiesput("DMP","MP")hobbiesput("LDV","head")} publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{HttpSessionsession=requestgetSession(false)Enumerationvalueif(session!=)value=sessiongetAttributeNames()elsevalue= responsesetContentType(CONTENTTYPE)PrintWriterout=responsegetWriter()outprintln("<html>")outprintln("<head><title>sessionServlet<title><head>")outprintln("<body>")if(value!=valuehasMoreElements()){outprintln("您选择过<p>")Stringn,vwhile(valuehasMoreElements()){n=valuenextElement()toString()v=sessiongetAttribute(n)toString()outprintln(n""v"<br>")}whileoutprintln("<p>")}if作业:作业:建立一个用户登录界面判断用户名密码。并将用户名密码存到cookies里。下次登录直接取出用户名密码直接自动进下一个页面并致欢迎词。本题用到cookies和自动导向。编界面让用户购几本书用httpSession跟踪会话的全部过程用httpSession记住用户已经购了几本书最后点击结帐按钮时列出总价钱。常用方法常用方法getComment()usesgetDomain哪个服务器可以收cookiesgetMaxAgesecondgetNamecookienamegetPathURLgetSecure()safeprotocolgetValuegetVersionsetComment常用方法 常用方法 setDomainsetMaxAgesetPathsetSecuresetValuesetVersionHttpSessionHttpSessiongetHttpSession可以用上一个对象或者新建对象表示不同的sessionHttpsession可以存名称、值的对。setAttriburegetAttributeNames在jspservlet中使用jdbc在jspservlet中使用jdbcThreetiersdistributedapplicationHTMLXMLJava–transactionWebserverjdbcDatabase今天作业今天作业写出Servlet和jsp程序Jsp程序显示带有单行文本框和多行文本框多选单选下拉菜单按钮图片等部件Servlet程序读到这些部件的值并显示。一般用post方法。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/54
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部