Java Servlet学习笔记

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,输入流读取文件、输出流响应文件

时间: 2024-10-31 19:46:01

Java Servlet学习笔记的相关文章

Java Servlet学习笔记(一)

Servlet简介 Servlet是运行在web容器上的小程序.这种程序使用Java编程语言实现.在通信量大的服务器上,Servlet的优点在于它们的执行速度快于CGI程序,各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进行,这意味着服务器端处理请求的系统开销明显降低. Servlet生命周期 服务器收到客户端的请求后: 1.web容器判断相应的Servlet类是否已加载到内存,并创建了该Servlet的实例.如果是,则转到第4步,否则第2步: 2.加载并创建该Servlet类的一个

Java Servlet学习笔记(二)

Java Filter在服务容器启动时就会被加载,其加载顺序与web.xml中注册的顺序一致. Servlet3.0以下,需要使用以下定义在web.xml中注册. <fileter> <filter-name></filter-name> <filter-class></filter-class> <init-param> <param-name></param-name> <param-value>

测试servlet学习笔记

操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开

SERVLET 学习笔记

SERVLET 学习笔记 一.Servlet基本定义 Servlet是服务器端上面运行的一段小的java程序,一个servlet就是一个简答的java类.通常servlet都是通过请求和返回的模式来被访问的,客户端通过resuest请求,servlet则通过response来返回需要的内容. 二.Tomcat容器等级 Tomcat容器等级分为四个等级,由内向外分别是:context容器àSERVLET容器àHOST(主机)容器àENGINE(引擎)容器.其中,CONTEXT容器,一个CONTEX

Servlet学习笔记(八)—— 自定义过滤器的编写改进:自定义实现FilterChain

笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,但是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤,最后response过滤,并且中间几项过滤的顺序不能动态改变.所以这里做个改进,实现一个过滤顺序的FilterChain. 多个Filter的执行顺序在这篇博文中得到很仔细的讲解,总结一点,多个过滤器的执行顺序是根据web.xml中不同<filter-mapping>的顺序来先后执行的,比如: <?xml version="1.0"

JavaWeb 后端 &lt;二&gt; 之 Servlet 学习笔记

JavaWeb 后端 <二> 之 Servlet 学习笔记 一.Servlet概述 1.什么是Servlet Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应. 2.Servlet中的方法 public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException ServletRequest req:代表着请

Servlet学习笔记(七)—— JSP概述

1.Servlet两个缺陷: ①所有HTML标签必须包在Java字符串中,使得发送HTTP响应十分繁琐: ②所有文本和HTML标签都必须进行硬编码,即使对表示层做极其微小的修改,也需要重新编译. 2.注释: (1)JSP备注:<% %>,不会发送到浏览器,不能嵌套 (2)HTML备注:<!-- -->,不被容器处理,直接发送到浏览器,用途之一是标识JSP页面.在处理带有许多JSP片段的应用程序时,开发者通过查看HTML源代码,可以轻松查出某个HTML代码部分生成了那个JSP页面.

Servlet学习笔记(六)—— 自定义过滤器的编写

Boss今天让我写一个类似BBS留言板的过滤器,要求对字符编码.登录权限.敏感词进行过滤操作. 总体分两模块: 一.过滤器 //Filter.java package lewa; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public interface Filter { public void init(); public void doFilter(ServletRequest reu

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com