一 Servlet工作
(1) 接收客户端显示数据,
(2) 接收HTTP隐式数据(报头、cookie),
(3) 负责与后台交互(EJB,WebService等),
(4) 发送显示数据到客户端,
(5) 发送隐式数据到客户端(如cookie信息)。
二 传统CGI技术与Servlet
效率:
并发(多进程"CGI",多线程"servlet"),
载入内存(运行一次CGI载入一次,只保留一份类)
缓存机制(不缓存"CGI",缓存"servlet")
servlet基于java平台,使这项技术
强大、安全、可移植、廉价、主流、便利
三 Servlet与JSP
Serlet:编译jsp代码、Request过来的代码,然后Response给客户端Html代码。
JSP:jsp其实就是Servlet的另外一种表达方式,只不过jsp更易于网页设计(表现),而Servlet更易于流程处理。
四 servlet的生命周期
servlet创建:一般在第一次访问URL的时创建,也可以配置web.xml在服务器加载的时候创建。
(1) init方法 "在首次servlet的时候,加载此方法,只执行一次"
常规初始化(初始化参数)。
(2) service方法 "每次访问创建一个线程调用此方法"
service:提供GET,POST,PUT,HEAD,OPTION,TRACE请求的自动支持。
(3) doXxx方法 "如doPost/doGet方法"
常用请求:
GET:正常的URL请求,没有指定METHOD的HTML表单
POST:METHOD=POST的HTML表单。
PUT,DELET,OPTIONS,TRACE,HEAD
(4) destroy
五 servlet SingleThreadModel模式
servlet可以通过SingleThreadModel的方式去独立访问一个servlet。
SingleThreadModel针对高并发servlet有非常大劣势:
(1) servlet访问排队时间长,导致IO堵塞。
(2) servlet的规范允许容器启动多个servlet实例以线程池的方式去访问,将导致同样的同步问题,或数据的不共享等问题。
解决方案:对于高并发的servlet,最好还是使用synchronized的方式去处理代码同步块儿。
六 Servlet 核心 API
HttpServletRequest
1.request封装:
Request-Line封装
Request-Line =Method SP Request-URL SP HTTP-Version CRLF
Method:最主要用到的是GET 和 POST方法
public abstract String getMethod();
Request-URL:URL地址
public abstract String getRequestURI();
public abstract StringBuffer getRequestURL();
public abstract String getQueryString();//GET请求的查询字符串
SP:空格
HTTP-Version:HTTP版本
CRLF:空行
报头封装
public abstract String getHeader(String s);
public abstract Enumeration getHeaders(String s);
public abstract Enumeration getHeaderNames();
//报头便利封装
public abstract String getAuthType();
public abstract long getDateHeader(String s);
public abstract int getIntHeader(String s);
public abstract String getCharacterEncoding();
public abstract String getContentType();
public abstract void setCharacterEncoding(String s);
public abstract void setContentLength(int i);
public abstract void setContentType(String s);
public abstract Cookie[] getCookies();
public abstract HttpSession getSession();
Servlet信息
public abstract String getPathInfo();
public abstract String getPathTranslated();
public abstract String getContextPath();
public abstract String getServletPath();
public abstract ServletOutputStream getOutputStream() throws IOException;
public abstract PrintWriter getWriter() throws IOException;
HttpServletResponse
2.response封装
//状态行封装:
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version:HTTP版本
Status-Code:设置状态代码 public abstract void setStatus(int i);
eason-Phrase:原因短语
//报头封装
public abstract void addCookie(Cookie cookie);
public abstract boolean containsHeader(String s);
public abstract void setDateHeader(String s, long l);
public abstract void addDateHeader(String s, long l);
public abstract void setHeader(String s, String s1);
public abstract void addHeader(String s, String s1);
public abstract void setIntHeader(String s, int i);
public abstract void addIntHeader(String s, int i);
//设置服务器错误| 重发状态代码
public abstract void sendError(int i, String s)
throws IOException;
public abstract void sendRedirect(String s)
throws IOException;
//地址编码
public abstract String encodeURL(String s);
public abstract String encodeRedirectURL(String s);
七 绝对URL
对于HTML/JSP标签中的url,必需重整个web server应用位置开始
对于serverlt forward的url,必需相对于当前应用的位置开始
分享到:
相关推荐
《Servlet与JSP核心编程第二版第一卷》(Core Servlets and JavaServer Pages Volume 1, 2nd Edition)是一本深入讲解Servlet与JSP技术的专业书籍。本书通过作者Marty Hall亲自开发并教授的课程,为读者提供了丰富的...
《Core Servlets and JavaServer Pages: Volume 1》是一本深度探讨Servlet和JavaServer Pages(JSP)技术的专业书籍,对于理解Web开发的基础至关重要。Servlet是Java编程语言中用于扩展服务器功能的Java类,而JSP则...
《Core Servlets and JavaServer Pages:Volume 1》是一本深度探讨Servlet和JavaServer Pages(JSP)技术的经典著作,其源代码包含了丰富的实例和练习,帮助读者深入理解这两种技术的核心概念和应用。以下是该书涉及...
《核心Servlets与JavaServer Pages(第1卷 第2版)》是一本深入探讨Java Web开发技术的经典著作,尤其聚焦于Servlets和JavaServer Pages(JSP)的技术细节与实践应用。本书由Prentice Hall和Sun Microsystems Press...
Pages, Volume 1: Core Technologies, covers the servlet and JSP capabilities that you are likely to use in almost every real-life project. This book, Volume 2: Advanced Technologies, covers features ...
Prentice Hall Core Servlets And Javaserver Pages Advanced Technologies Volume 2.2Nd Edition Dec 2007.pdf volume II, 2008年出版, pdf格式, 英文, ISBN:0-13-148260-2 Servlet 2.4/JSP 2.0
《Core Servlets and JavaServer Pages Volume 2》是关于Web应用程序开发的一本经典教程,主要聚焦于Servlets和JavaServer Pages(JSP)的高级技术。这本书的第二版提供了全面而深入的指导,帮助开发者掌握这两项...
《核心Servlets与JavaServer Pages高级技术》第二版是一本深度探讨Servlets和JavaServer Pages(JSP)的书籍,由Marty Hall、Larry Brown和Yaakov Chaikin三位作者共同编写。本书作为该系列的第二卷,专注于高级技术...
Servlet与jsp核心技术第二版上下卷合订本,其中第二卷为2007年出版的.part1
Servlet与jsp核心技术第二版上下卷合订本,其中第二卷为2007年出版的。英文原版。(分卷2)
《核心Servlets与JavaServer Pages高级技术》第二版是一本深度探讨Servlets和JavaServer Pages(JSP)的书籍,由Marty Hall、Larry Brown和Yaakov Chaikin三位作者共同编写。本书作为系列的第二卷,专注于高级技术,...
同时,本书的两个文件名——"Prentice.Core.Servlets.And.Java.Server.Pages.Volume.1.Core.Technologies.2nd.Edition.chm"和"Core+Servlets+and+JavaServer+Pages%28Advanced.Technologies.Volume.2.2nd.Edition%29...
Servlets和JSP核心技术 卷2 内容还是很详细的,看过卷1的人可以继续用这本书深造,呵呵 目录: Chapter 1. Using and Deploying Web Applications Section 1.1. Purpose of Web Applications Section 1.2. ...
Prentice.Hall.Core.Servlets.and.JavaServer.Pages.Advanced.Technologies.Volume.2.2nd.Edition.Dec.2007.chm chm版的方便查询,有3个包 sun官方servlet&jsp进阶版 需要的同学就下吧
Prentice.Hall.Core.Servlets.and.JavaServer.Pages.Advanced.Technologies.Volume.2.2nd.Edition.Dec.2007.chm chm版的方便查询,有3个包 sun官方servlet&jsp进阶版 需要的同学就下吧
Prentice.Hall.Core.Servlets.and.JavaServer.Pages.Advanced.Technologies.Volume.2.2nd.Edition.Dec.2007.chm chm版的方便查询,有3个包 sun官方servlet&jsp进阶版 需要的同学就下吧
10. **参考书籍**:《Core Servlets and JavaServer Pages: Volume 1: Core Technologies》第二版是一本不错的入门教材,可以帮助你系统地学习JSP和Servlet。 学习JSP的过程可能涉及大量实践,建议通过创建小项目来...