Servlet实例应用.doc_第1页
Servlet实例应用.doc_第2页
Servlet实例应用.doc_第3页
全文预览已结束

下载本文档

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

文档简介

Servlet实例应用1.虽然可以用:String name=getServletConfig().getServletName()得到Servlet名称,但可以从GenericServlet直接继承getServletName方法更方便. Service就不用象doPost激活了public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html);PrintWriter out=response.getWriter(); out.print( this.getServletName( ) );Enumeration e=this.getInitParameterNames();/得到多个参数玫举数组 while(e.hasMoreElements() String key=(String)e.nextElement(); String value=getInitParameter(key); out.print(key+=+value); ServletContext context=this.getServletContext();/也可从GenericServlet中直接得到String path=context.getRealPath(/); out.print(path); 得到:C:tomcatwebappstest2. 用ServletContext得到初始化参数:(从GenericServlet中直接得到)public class Context extends HttpServlet public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException PrintWriter out=response.getWriter();Enumeration e=getServletContext().getInitParameterNames(); while(e.hasMoreElements()String key=(String)e.nextElement();String value=getServletContext().getInitParameter(key);out.print(key+=+value);ServletContext在web.xml中的配置: Context test.Context 不同于在Servlet内部配 company witbridge 3使用输入流访问资源文件:public class FileAccess extends HttpServlet public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException PrintWriter out=response.getWriter();FileInputStream fis=new FileInputStream(perties);/文件必和tomcat启动程序同级别目录: user=root,否则全路径:c:pertiesProperties props=new Properties(); props.load(fis); /Properties保存在流中或从流中加载, load从输入流中读取属性列表,getPXX返回Stringout.print(props.getProperty(user); fis.close(); /用指定键在属性列表中搜索属性4.使用ServletContext接口访问资源文件:public class Resource extends HttpServlet protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException PrintWriter out=response.getWriter();URL urlIt315=this.getServletContext().getResource(/perties);InputStream ips=this.getServletContext().getResourceAsStream(/perties); out.print(urlIt315.toString();Properties props=new Properties();props.load(ips);out.print(props.getProperty(dataBase); /好处:路径与调试环境无关,只要/setHeader(java.lang.String name, java.lang.String value)5.HttpServletResponse的应用:响应消息头:如setContentType(“text/html;charset=”);a.SetHeader(自动刷新,URL覆盖)public class Refresh extends HttpServlet protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /response.setHeader(Refresh, 2);response.setHeader(Refresh, 1;URL=http:/localhost:8080/ ); b.禁止浏览器缓存显示动态图片:public class Cache extends HttpServlet protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html );response.setDateHeader(Expires, 0); response.setHeader(Pragma, no-cache);response.setHeader(Cache-Control, no-cache); /防止不同浏览器支持不同响应头PrintWriter out=response.getWriter();out.print(Math.random();response.setBufferSize(0);int len=response.getBufferSize( );out.print(len);/8192 6.RequestDispatcher(共享数据和URL不变)和response.SendRidirect:a.Include:被包含的Servlet程序不能改变响应消息的状态码和响应头,如果他里面存在这样的语句执行结果将被忽略:public class Included extends HttpServlet protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html;charset=GB2312);/被包含执行时将被忽略PrintWriter out=response.getWriter();out.print(中国+);out.print(URL+request.getRequestURI()+);/test/servlet/Include根目录下out.print(QueryString:+request.getQueryString()+);/为null,得到?后面语句out.print(Param p1:+request.getParameter(p1)+); /可以得到参数的测试:public class Include extends HttpServlet protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExceptionresponse.setContentType(text/html;charset=GB2312);PrintWriter out=response.getWriter();String china=中国;RequestDispatcher rd=this.getServletContext().getRequestDispatcher(/servlet/Included?p1=+china); rd.include(request, response); /从Config中继承b.forward:在调用者和被调用者程序中设置响应状态码和状态头都不会被忽略,URL仍为调用方response.setContentType(text/html;charset=GB2312);/也需要设置,转向全部元素全路径RequestDispatcher rd=this.getServletContext().getRequestDispatcher(/index.jsp);rd.forward(request, response);c:sendRedirect方法用于生成302响应码和Location响应头,从而通知客户端去重新访问Location响应头中指定的URL,调用和被调用者之间就不能共同享用request和

温馨提示

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

评论

0/150

提交评论