码迷,mamicode.com
首页 > 编程语言 > 详细

Java Servlet学习笔记

时间:2017-11-24 00:11:13      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:tin   发送请求   mon   常用   一个   direct   名称   会话状态   基于   

Java Servlet组件
Java Servlet组件的原理及编程
Java Servlet 的配置和生命周期
Servlet的生命周期:
    1,创建servlet对象时,会调用init方法进行初始化
    2,任何来自客户端的请求,都会调用service方法服务
    3,当servlet销毁之前,会调用destory方法进行销毁
Servlet原理
Servlet: Server服务器  let小型程序
运行在服务器端的小型程序。
 
请求是以线程的方式访问目标Servlet!
 
Servlet运行原理:
    1,用户通过HTTP协议发送get请求,访问web容器
    2,web容器将http请求封装成Request对象,并创建了response对象
    3,判断servlet是否被创建,如果没有,初始化目标Servlet
    4,调用servlet的service方法,并将request和response当成参数传进去
    5,service会根据http请求的类型,自动调用doget/dopost方法
    6,销毁request和response对象,并将数据通过http返回给用户
 
request常用的方法:
    request.getMethod();获取请求类型
    request.getRemoteAddr();获取客户端IP
 
    request.getRequestURL();获取请求的url
    request.getRequestURI();获取请求的资源
 
response常用的方法:
    response.setCharactorEncoding("utf-8");设置编码
    response.getWrite();获取字符输出流
 
 
Servlet简介
Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。 最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。
Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
1) 客户端发送请求至服务器端;
2) 服务器将请求信息发送至 Servlet;
3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
4) 服务器将响应返回给客户端。
 
技术分享图片
 
Servlet流程处理
1、客户端发送请求到服务器
2、服务器获取URL中的URI(/ContextPath/ServletPath)
3、根据URI中的应用名获取ServletContext对象
4、通过ServletContext对象来匹配ServletPath和url-pattern
5、根据匹配的结果获取相应的 类全名
6、一次性加载类封装成ServletConfig对象
7、对象根据多态调用Service()方法
8、将返回结果给用户
 
Servlet生命周期
服务器只创建每个Servlet的单一实例,每个用户请求都会引发新的线程。 创建Servlet实例时,会调用init()方法,针对每个用户请求都会创建一个线程,该线程调用前面创建实例的service()方法,由service()方法依据接收到的HTTP请求的类型,调用相应的doXxx方法,比如doGet(),最后调用destroy()方法销毁。
  doGet 和 doPost 方法的参数都是 HttpServletRequest 和 HttpServletResponse 对象。其中HttpServletRequest 对象代表了客户端的请求,servlet 通过这个对象获得客户 端 的 请 求 数 据; HttpServletResponse对象代表了servlet对客户端请求的响应,sevlet用这个对象向客户端返回数据。
 
Servlet优点
高效    传统的CGI程序以进程方式运行,而Servlet以线程方式运行。
方便    Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表  单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
功能强大    可以完成很多传统的CGI程序很难做到的事情。
可移植性好     Servlet API具有完善的标准。
 
Servlet交互
浏览器与Web服务器的动态交互
技术分享图片
Method属性指定了数据传送方式,可以是GET或POST
各种输入控件,接受用户输入。
提交按钮,点此Button将把FORM内的数据传送到服务器
GET方式将数据接在URL后面传送给服务器端程序,     如:http://url?name1=abc&name2=def
POST方式将数据放在HTTP请求的请求头后面发送。
 
Servlet 接口
javax.servlet 包的接口为:
技术分享图片
 
ServletConfig
用来封装web.xml中对当前Servlet的配置信息
getInitParameter()---可以获取初始化参数
web.xml
     <init-param>
           <param-name/>
                <param-value/>
      </init-param>
 
ServletContext
代表当前Servlet运行的上下文环境,
Web容器会为每一个Web工程创建一个对应ServletContext对象  
setAttribute()  
getAttribute()  
removeAttribute()
 
ServletRequest
为Servlet所发送的请求,用ServletRequest封装
setAttribute()
getAttribute()
removeAttribute()
getParameter()
常用子接口HttpServletRequest
 
ServletResponse
Servlet对客户端所做的响应,用ServletResponse描述   
getWriter():获取PrintWriter输出流给客户发送的响应内容   
setContentType:设置响应内容的响应类型和字符集信息   
sendRedirect:设置重新请求路径  
子接口HttpServletResponse
 
Servlet结构
 
Servlet的创建:
    1,写一个类,继承HttpServlet,覆写 service/doget/dopost方法
 
    2,直接创建Servlet
 
技术分享图片
 
Servlet部署
    1,在web.xml中进行配置
 
    <servlet>
        <servlet-name>名字</servlet-name>
        <servlet-class>包名+类名</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>名字</servlet-name>
        <url-pattern>虚拟URL:/根目录</url-pattern>
    </servlet-mapping>
 
    2,使用注解的方式进行配置
    @WebServlet(name="",urlPatterns={"url","url"})
    @WebServlet("url")
 
Servlet会话技术
掌握Servlet跳转方式
forward跳转:用户发送请求后,服务器获取请求并处理,在服务器内部跳转到指定请求路径上,并响应到浏览器的一个过程。
redirect跳转(重定向):用户发送请求后,服务器获取请求并处理,将结果响应给客户端浏览器,浏览器检测到响应的请求中有一个特殊的头信息location,并指向一个地址,浏览器会自动发送第二次请求到服务器,并响应到客户端。
 
cookie的创建获取
session的创建过程
Session的创建过程:    session的创建采用赖汉式,当用户获取session的时候,服务器会首先到客户端获取cookie name值为jsessionid的cookie, 如果找到,获取对应的value并在服务器端返回对应的session,如果当前session是有效的,则返回给用户。反之当服务器在浏览器中未找到name=jsessionid的cookie,服务器会调用 getSession创建session,并将session的id写入到浏览器cookie中
 
Servlet作用域
作用域就是能够保存命名属性的内存空间 主要包括 生命周期 和 共享范围
技术分享图片
 
Servlet下载文件思路:
     * 1,获取文件在服务器端的路径和文件的名称
     * 2,需要告诉浏览器,以下载文件的方式运行
     * 3,创建输入流和输出流、缓冲区
     * 4,输入流读取文件、输出流响应文件

Java Servlet学习笔记

标签:tin   发送请求   mon   常用   一个   direct   名称   会话状态   基于   

原文地址:http://www.cnblogs.com/jxtx92/p/7886678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!