`
csbison
  • 浏览: 153492 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Servlet学习笔记

阅读更多

   [Servlet]

●  Servlet(Java服务器小程序),是用Java编写的服务器端程序。可以看成是用Java编写的CGI,但是功能和性能比CGI强多了。

●  为了简化开发,我们编写的Servlet一般直接继承自HttpServlet,HttpServlet类封装了编写Http协议Servlet的大部分功能。

    HttpServlet类继承自javax.servlet.GenericServlet,间接实现了Servlet, ServletConfig 接口。

    A subclass of HttpServlet must override at least one method, usually one of these:

 

    * doGet, if the servlet supports HTTP GET requests 
    * doPost, for HTTP POST requests 
    * doPut, for HTTP PUT requests 
    * doDelete, for HTTP DELETE requests 
    * init and destroy, to manage resources that are held for the life of the servlet 
    * getServletInfo, which the servlet uses to provide information about itself

 

●  HTTP 1.1 协议支持7种请求方法:GETPOStHEADOPTIONSPUTDELETETRACE。在Internet应用中,最常用的请求方法是GETPOST

●  GET方法是通过URL将数据传送给服务器端,可以直接在url中注明参数,也可以通过表单的方式<form action="xxx" method="get">。存在url的明文传送和数据大小限制的问题。这是默认调用的方式。

●  POST方法则可以隐藏发送给服务器端的数据,而不是url的明文传送。所以安全性好些,适合发送大量数据。它是通过表单的方式<form action="xxx" method="post">来发送参数。

●  GET方法、POST方法都是通过request.getParameter("xxx")来获取对应参数数据。

●  Servlet规范规定,所有的Servlet都必须在Web配置文件web.xml中声明。部署Servlet时,必须在相应web项目的web.xml文件中指定这个servlet的名字和类,同时做servlet的映射。

●  Servlet规范规定,在WEB-INF目录下的内容是私有的,对Web客户端来说不可访问,当然Web应用本身则可以完全访问。

●  Servlet规范规定,首先加载WEB-INF/classes目录中的资源,然后才是WEB-INF/lib目录。

●  有关Servlet的官方DTD描述:(DTD可以看做是标记语言的语言文件,它是一套定义XML标记如何使用的规则。)

    (摘自 http://java.sun.com/dtd/web-app_2_3.dtd )

 

<!--

The servlet element contains the declarative data of a servlet. If a jsp-file is specified and the load-on-startup element is present, then the JSP should be precompiled and loaded.

Used in: web-app

-->

<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>

<!--

The servlet-class element contains the fully qualified class name of the servlet.

Used in: servlet

-->

<!ELEMENT servlet-class (#PCDATA)>

<!--

The servlet-mapping element defines a mapping between a servlet and a url pattern

Used in: web-app

-->

<!ELEMENT servlet-mapping (servlet-name, url-pattern)>

<!--

The servlet-name element contains the canonical name of the servlet. Each servlet name is unique within the web application.

Used in: filter-mapping, servlet, servlet-mapping

-->

<!ELEMENT servlet-name (#PCDATA)>

 

●  所有的JSP都必须编译成Servlet,并且在Servlet容器中执行。但Servlet必须手动编译成类,而修改JSP时只要修改它的源程序,容器会对发生改变的JSp进行自动编译。

    JSP会被web服务器编译成Servlet(tomcat中生成的.java文件和.class文件是存放在 %CATALINA_HOME%\work\Catalina目录下)。如果JSP页面中没有使用Page指令特别指定method属性,则JSP中所有的Scriptlet会被合并包含在该ServletService方法(_jspService()方法)中。所以在Scriptlet中可以包含任何合法的java注释,可以调用其他类(只需在page指令中import);任一小段Scriptlet中定义的变量或方法都可以再另一小段Scriptlet中调用。

●  JSP可以把显示和内容分离,实现的方法就是借助JavaBean。重新编译JavaBean时,tmd还得重启Tomcat服务器?

●  一般的JSP项目,可以采用JSP+Servlet+JavaBean的模式,此模式遵循视图控制器(MVC)模式,在此模型中,javaBean作为模型的角色,封装数据;Servlet作为控制器,处理业务逻辑;最后由JSP进行显示。

 

●  Java Servlet API中有几个比较重要的类,它们决定了Web应用的请求/响应方式及各种共享数据的存放地点

    * HttpServletRequest,Servlet组件从HttpServletRequest对象中读取用户的请求数据;此外HttpServletRequest可以存放request范围内的共享数据。
    * HttpServletResponse
,用于生成Http响应结果。 
    * HttpSession
,存放session范围的共享数据 

    * ServletContext
,存放application范围的共享数据。

●  Servlet类使用javax.servlet.RequestDispatcher.forward()方法来转发它所收到的Http请求。


● 
清楚 session,attribute,cookies,querystring等的区别。
   A:
客户端一关闭,session就失效了。
● 
清楚 request,response的作用,构成元素。
   A: request
header,response也有header

 

●  以下是《More Servlet and JSP》的读书笔记。

1. HTML文档的 DOCTYPE行的好处是告诉HTML验证程序使用的是何种版本的HTML,以便验证程序知道依据何种规范检查HTML文档。
2. Servlet
service方法检查HTTP请求类型(GET,POST,PUT,DELETE),并适当地调用doGet,doPost等方法。其他方法(put,delete)是有客户机产生的。
3.
如果希望你的servlet阻止多线程地访问,可以使servlet继承自SingleThreadModel接口。
  
jsp中,则可以通过<@ page isThreadSafe>属性来指定。
4. HTTP
的请求头是直接由浏览器设置并跟在开始的GETPOST请求行之后立即发送的。
5. HTTPSession
对象位于服务器上,它们只是通过某种后台机制,如cookieURL重写与客户机自动关联。
6.
什么时候需要synchronized代码块。线程跟进程的区别?
7. ServletContext
是全部Servlet共享的上下文,

   ServletConfig
是全部Servlet共享的配置对象(web.xml信息)
  
PageContext仅仅是单个JSP文件的上下文;Servlet是没有PageContext对象的。

8. servlet
可以发送请求到同一服务器的任意位置。
9.
网页中的image,css等如果使用了相对路径,则最好是相对于服务器的根,而不是相对于目的页的实际位置。
  
否则程序如果使用了servlet.forward(),则可能出现路径错误的bug.

 

10. Web应用的简单验证包括用户再HTML表单或对话框中输入用户名和口令,更强的验证包括使用由客户机发送到服务器的X509证书。
11.
为防范攻击者在网络数据传输中窃取数据;此过程涉及使用SSL(Secure Sockets Layer安全套接层),对浏览器及服务器之间的通信进行加密。

 

12. 利用声明性的安全性(例如在web.xml中指定),就不用单个servletjsp去处理安全方面的代码。而可以在web.xml中声明某些
URL
需要保护,某些URL只能利用SSL来访问。

 

13. ServletRequestgetScheme()方法对常规请求返回"http",SSL请求返回"https"。同时,isSecure()方法对常规请求返回false,
SSL
请求返回true

 

 

分享到:
评论

相关推荐

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 共三卷

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷

    林学良Jsp&Servlet学习笔记

    **林学良Jsp&Servlet学习笔记**: 这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们...

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet;或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 《JSP & Servlet学习笔记(第2版)》针对Servlet 3.0的...

    Servlet学习笔记(java的Servlet)

    Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案

    吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案 本资源为吉林大学珠海学院JSP&Servlet学习笔记(第二版)的课后答案,涵盖了JSP和Servlet相关的知识点。本笔记共分为九章,每章节都包含了相关的问题答案,...

    JSP&Servlet学习笔记(第2版)_打印版

    根据提供的文件信息,标题为“JSP&Servlet学习笔记(第2版)_打印版”,描述指出文档经过空白边裁剪处理以便于打印。虽然提供的部分内文无法直接转化为明确的知识点,但我们可以根据标题和描述推测该文档的主要内容,...

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...

    jsp&servlet学习笔记(第2版)光盘

    jsp&servlet学习笔记(第2版)光盘,买书附赠光盘,完片版本。

    [JSP&Servlet学习笔记(第2版)] 林信良

    [JSP&Servlet学习笔记(第2版)] 林信良

    [JSP&Servlet;学习笔记(第2版)]

    **JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。

    Servlet学习笔记3

    ### Servlet学习笔记3:深入理解Servlet与Web应用资源管理 #### 标题解析与扩展知识点 **标题**:“Servlet学习笔记3”表明这是系列学习笔记的一部分,专注于Servlet技术的深入探讨。 **知识点**: 1. **Servlet...

    JSP_Servlet学习笔记(第2版)

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP &Servlet;时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...

    JSP & Servlet学习笔记

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...

Global site tag (gtag.js) - Google Analytics