J2EE上--第4章Servlet.ppt_第1页
J2EE上--第4章Servlet.ppt_第2页
J2EE上--第4章Servlet.ppt_第3页
J2EE上--第4章Servlet.ppt_第4页
J2EE上--第4章Servlet.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 JavaBean,教学目标: 了解Servlet技术 掌握Servlet技术的常规应用 掌握Servlet的配置方法 熟练运用Servlet过滤器,4.1 工作场景,什么是Servlet,用 Java 编写的服务器端程序 Servlet有一套专门的API Servlet运行于Web容器中,执行服务器端处理 Servlet可以接受/响应用户的请求,4.2 Servlet体系结构,Servlet使用以下包中的类和接口: javax.servlet.http 称为HttpServlet-HTTP Servlet,Servlet必须实现 javax.servlet.Servlet 接口 通过扩

2、展GenericServlet类或 HttpServlet类实现,HttpServlet类,1、HttpServlet类是一个抽象类 2、从该类派生出一个子类来实现一个HttpServlet 3、请求和响应都发送到Servlet中的service方法,service方法可以细分为:doGet doPost 4、在HttpServlet的子类中,经常重载以下方法之一 1 :doGet 2 :doPost 5、在Html表单提交数据时,使用的最多的是Post而非Get,4.2 Servlet程序结构,protected void doGet(HttpServletRequest request,

3、HttpServletResponse response) throws ServletException, IOException this.doPost(request, response); / doPost方法,设置响应编码类型为GB2312,并向客户端输出消息 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(GB2312); PrintWri

4、ter out = response.getWriter(); out.println(“一个简单的Servlet程序,此时调用的doGet或doPost方法!); ,4.2 Servlet程序结构,运行结果,4.2 Servlet程序结构,doPost方法 doPost方法用于客户端把数据传送到服务器。它可以 用隐藏表单域隐式的向服务端发送任何数据。 doGet方法 doGet方法用于获取服务器信息,并将其作为响应返 回给客户端。通常,直接访问Servlet的URL时,一般使 用doGet方法。它在URL里显式地向Servlet传送数据,比 如提交认证信息时,可以直接在浏览器URL里看到用户

5、 名和密码,从而带来系统的安全问题。,4.3处理HTTP POST/GET请求,doGet方法和doPost方法分别对应HTTP协议的GET和POST请求方法,Form表单通过设置Method属性来设置请求方法(Method属性可以设置为Get或者Post)。,4.3.1 读取表单参数,/ 读取表单参数 String userType = request.getParameter(rdbUser); String username = request.getParameter(“txtUsername”); String password = request.getParameter(txtP

6、assword);,显示表单提交的信息,Protected void dopost() if (userType.equals(1)userType=学生; else if(userType.equals(2)userType=教师; else userType=管理员; /设置响应的内容类型 response.setCharacterEncoding(utf-8); /设置响应的编码类型 response.setContentType(text/html); PrintWriter out = response.getWriter(); /显示认证信息 out.println(客户端认证请求

7、的相关信息:); out.println(,4.3.1 读取表单参数,运行结果,4.3.2处理无效参数,用户验证时提交参数要求: 用户名(txtUsername)该属性不能为空 用户密码(txtPassword)该属性不能为空 用户身份(rdbUser)该属性在录入表单中有默认值,故不会出现无效值,?,4.3.2处理无效参数,4.3.2处理无效参数,运行结果,4.3.3共享JavaBean,? 在欢迎页面中获取用户的验证信息, 针对不同的用户,显示不同欢迎信息。 欢迎信息显示要求: 显示用户登录时所使用的用户名 显示成功登录的用户的身份,4.3.3共享JavaBean,4.3.3共享JavaB

8、ean,4.3.3共享JavaBean,运行结果,4.3.4 转发和重定向客户请求,? 用户使用不同的身份登录,具有不同的用户 权限课绩管理系统权限要求: 管理员用户访问admin.jsp相关的内容 教师用户访问teacher.jsp相关的内容 学生访问student.jsp相关的内容 非上述三种身份,不能访问本系统,4.3.4 转发和重定向客户请求,4.3.4 转发和重定向客户请求,运行结果,4.4会话管理,会话(Session)是指在一段时间内,单个客户与Web服务器的一连串的交互过程。 会话跟踪 Cookies URL Rewriting 隐藏表单域,4.4.1 会话跟踪(Session

9、的应用),request对象的方法得到HttpSession对象: 1:public HttpSession getSession (Boolean create); 2:public HttpSession getSession();,4.4.2 Cookie的应用,Cookie的格式实际上是一段纯文本信息 由服务器随着网页一起发送到客户端 并保存在客户端硬盘中指定的目录的 服务器读取Cookie的时候, 只能够读取到这个服务器相关的信息,Cookie cookie=new Cookie(username,“QY); / 设置Cookie的存活时间为30分钟 cookie.setMaxAge

10、(30*60); / 写入客户端硬盘 response.addCookie(cookie); out.print(写Cookie完成);,4.4.3 URL Rewriting,如果用户的浏览器不支持Cookie,或者用户禁用了Cookie,将不能使用Cookie来追踪所记录的Session信息。此时可以使用URL重写的方法,向URL中插入Session ID,来跟踪 Session信息。,4.4.4 隐藏表单域,在课绩管理系统/login.jsp中添加隐藏表单字段,保存Session ID实现会话跟踪: ,4.5 使用Servlet过滤器,Servlet过滤器是小型的Web组件,可以用来验证

11、客户是否来自可信的网络;可以验证客户是否已经登录;可以记录系统日志等。,创建过滤器,4.5 使用Servlet过滤器,4.5 使用Servlet过滤器,成功创建过滤器后,还需要在应用中进行相关部署: 配置web.xml文件:,4.6 Servlet异常处理,在Servlet中出现异常时,可以采取3种方法进行处理: 在try.catch语句 catch语句块中直接向用户显示一个错误信息的页面。 在try.catch语句 catch语句块中将错误转发到一个专门用于错误处理的Servlet或JSP页面中。 在web.xml中指定进行处理。,4.6 Servlet异常处理,1、创建错误提示页面:,4.6 Servlet异常处理,2、配置web.xml指定错误页面:,4.6 Servlet异常处理,4.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论