Get:标记在地址栏中 放在请求行中显示get?Username=。。。Password=。。。

Post:使用的是二进制的上传下载 请求行不显示信息 数据传输量大数据隐蔽对文本没有 pst不能再浏览器中的记录中缓存

 

********************************************************************

发送大量的数据要用Post 密码用post

默认情况下数据传输方式是使用的Get

用method属性秀给传递方式。Servlet类进行请求处理

固定格式:  

Protect void doxxx(HttpServletRequest request,HttpServletRespnse respnse)throw IOException,...{}

 

给參数起名字的时候不能以jsp开头

 

Servlet的使用:

Servlet 是一种基于java技术的web组件,是一种基于java的且与第三方平台无关的类。通常,它能够被Web server编译、载入和执行,最后生成动态的资源内容。

为什么要使用Servlet?

Servlet是採用java语言编写,而由java 跨平台性的特点可知,servlet的移植性非常好,且servlet API具有完好的标准,差点儿全部的主流server都支持servlet.

Servlet与传统的CGI(Common Gateway Interface)相比,功能要强大。且处理的请求採用的是线程,而非进程,从而节省大量的资源开销,因此Servlet处理请求更轻量级、更高效

继承自Javax..servlet 和javax.servlet.http两个包

 

 

 

Servlet接口

 

Servlet API的核心是Servlet接口,全部Servlet类都必须实现该接口。

它定义了五个方法,当中当中三个init、service和destroy是由Servlet容器来调用的。

 

 在servlet容器或web server启动时, 对servlet进行实例化,此时调用servlet的构造方法;

servlet实例化后,调用该servlet实例的init方法,对servlet进行一些初始化处理,处理完毕后,将该servlet注入到servlet容器中;

当client向web server或servlet容器请求servlet时,web server或servlet容器首先会依据请求的servlet名称去servlet容器中找相应的servlet,假设servlet不存在该名称相应的servlet,则向client响应请求不存在等信息;

假设请求的servlet存在于servlet容器,则调用servlet的service方法,生成动态资源,响应给client; (记住,整个过程该servlet仅仅有一个实例,即单例);

当web server退出或servlet容器销毁时。调用servlet的destroy方法,最后唯一的sevlet实例将会被GC。

另外两个方法:

public ServletConfig getServletConfig()

-----该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象

public String getServletInfo()

-----返回String。当中包含关于Servlet的信息,如作者、版本号等。此方法非常少用,返回null就可以

HttpServlet类 

添加了一个新的service()方法,格式例如以下:

protected void service (HttpServletRequest,

                  HttpServletResponse)

      throws ServletException, IOException;

该方法是Servlet向客户请求提供服务的一个方法。

编写Servlet能够覆盖该方法。 

HttpServletRequest接口    

该接口扩展了ServletRequest接口。

提供了关于HTTP请求对象的视图;

定义了从请求对象中获取如HTTP请求头、cookies信息的方法。

HttpServletResponse接口 

该接口扩展了ServletResponse接口;

提供了针对HTTP的发送响应的方式;

定义了为响应设置如HTTP响应头、设置cookies信息的方法;

该方法是Servlet向客户请求提供服务的一个方法。

Httpservlet是一个抽象类能够用来继承可是不能够生成对像 可是继承的类能够new对像

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Servlet容器处理请求的过程

 

1)用户点击一个链接,指向了一个servlet而不是一个静态页面。

2)容器“看出”这个请求是一个Servlet,所以它创建了两个对象HttpServletRequest和HttpServletResponse。

3)容器依据请求中的URL找到正确的Servlet。为这个请求创建或分配一个线程,并把请求和响应对象传递给这个Servlet线程。

4)容器调用Servlet的service()方法。

依据请求的不同类型,service()方法会调用doGet()或doPost()方法。这里假设调用doGet()方法。

5)doGet()方法生成动态页面,并把这个页面“塞到”响应对象里。需要注意的是,容器还有响应对象的一个引用!

6)线程结束。容器把响应对象转换为一个HTTP响应,并把它发回给客户。然后删除请求和响应对象。

 

请求的方式是post那么就用Dopost方法

Get方式用DoGet方法(也就是对其进行重写)

Servlet 在server起来之后就已经被创建之后server调用service方法传递给servlet对像然后创建request。response

 

****************************** **********************************用Tomcat的管理平台管理Web应用的生命周期:

 

普通情况下。Web应用随着Servlet容器的启动而启动。随着Servlet容器的执行而执行,随着Servlet容器的终止而终止。

通常,在应用执行期间,相应用的web.xml文件进行改动后,不能马上生效。必须又一次启动应用才会生效。

Tomcat作为Servlet容器的一种详细实现。提供了一个管理平台,用户能够在Tomcat执行时,手工管理单个Web应用的生命周期。

 

 

(演示)步骤:

1、改动<CATALINA_HOME>/conf/tomcat-user.xml,添加以下的用户:

<tomcat-users>

<role rolename=“manager-gui"/>

<user username="tomcat" password="tomcat"                 roles="manager-gui"/>

</tomcat-users>

2、启动Tomcat

3、http://localhost:8080/manager/html

 

 

Servlet初始化步骤:

1:servlet容器载入servlet 类

2:Servlet容器创建servletCnfig对像包含特定的servlet初始化配置信息,并和Web应用的ServletContext对像相关联、

3:servlet让其的创建Servlet对像。

4:servlet容器的调用Servlet对像的init()方法对其进行初始化

*************************************************************

Servlet工作原理

首相是客户端方请求,servlet调用service方法对其进响应

2:service方法中对请求的方式进行了匹配,选择调用doGet()还是调用doPost()方法进入相应的方法中调用逻辑层的方法。实现对客户端的响应

3:在servlet接口和GGenericServlet中乜有Doget()方法,doPost()方法,HttpServlet中定义了这些方法可是都返回的是error信息所以每次定义一个servlet方法时候。都必须实现doGet或者是doPost方法

Servlet的销毁阶段

1:档Web应用终止时servlet会先调用对象的Destroy()方法然后进行销毁

2:在destroy()方法中通常写关于文件传输流关闭数据库链接的语句释放所占用的全部资源

servletContext是一个公共的空间能够被全部的用户訪问

**************************************************

上传文件:
通过HTML页面中表单进行上传利用文件进行上传

 

*************************************************************

RequestDispatcher

在Servlet中, 能够使用javax.servlet.RequestDispatcher来处理请求转发。

 

requestDispatcher对象由servlet容器创建,用于封装一个由路径所标识的server资源。转发的动作包含:

 

1) public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException;

    该方法必须在响应被提交给客户端之前调用,否则抛出IllegalStateException异常。

forward进入后。原先的Servlet将终止执行。

2) public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException;

   include进入被调用的对象后,执行完相关操作后仍然会继续原先的servlet。

获得RequestDispatcher对象

从ServletRequest对象获取:

    public RequestDispatcher getRequestDispatcher(String path);

//Path:目标组件的路径

从ServletContext对象获取:

    public RequestDispatcher getRequestDispatcher(String path);

    public RequestDispatcher getNamedDispatcher(String name);

 

servletRequest和servletContext有相同的方法:getRequestDispatcher,那么差别是什么?

差别:

servletRequest的getRequestDispatcher方法。參数path能够以斜杠(/)开头,代表当前上下文根的路径。假设不用斜杠开头,则相对于当前Servlet的路径。

servletContext的getRequestDispatcher方法,參数path必需要以斜杠(/)开头。

 

java Web笔记的更多相关文章

  1. Java Web 笔记(1)

    JavaWeb 学习笔记,狂神说java,链接:https://www.bilibili.com/video/av68833391 Java Web 1.基本概念 1.1.前言 web开发: web, ...

  2. 1.JAVA WEB 笔记中文乱码

    JAVA WEB 乱码问题解析 乱码原因 在Java Web开发过程中,经常遇到乱码的问题,造成乱码的原因,概括起来就是对字符编码和解码的方式不匹配. 既然乱码的原因是字符编码与解码的方式不匹配,那么 ...

  3. [转]Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)

    来源:http://www.jianshu.com/p/56caa738506a 0. 绪言 Java Web开发中,除了基础知识外,开发环境搭建,也是一项基本功.开发环境包括了IDE.项目管理.项目 ...

  4. Java WEB 笔记

    1. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-version 到一个非中文目录下 2). 配置一个环境变量,JAVA_HOME(指向 JDK 安装目录)或 JRE_ ...

  5. Java Web 笔记(杂)

    Java Web 概述 什么是Java Web 在Sun的Java Servlet 规范中,对Java Web 应用做了这样的定义: "Java Web" 应用由一组Servlet ...

  6. Java Web笔记(2)

    学习笔记,狂神说java,链接:https://www.bilibili.com/video/av68833391 5.Maven 我为什么要学习这个技术? 在Javaweb开发中,需要使用大量的ja ...

  7. Java Web 笔记(4)

    11.Filter (重点) Filter:过滤器 ,用来过滤网站的数据: 处理中文乱码 登录验证-. Filter开发步骤: 导包 编写过滤器 导包不要错 实现Filter接口,重写对应的方法即可 ...

  8. Java Web 笔记(3)

    8.JSP 8.1.什么是JSP Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术! 最大的特点: 写JSP就像在写HTML 区别: HTML只 ...

  9. Java Web笔记之Servlet(1)

    今天在学习Servlet时,使用浏览器显示的网页效果与预期的有差异,仔细查找发现实<!DOCTYPE>声明的问题,截图如下: 代码如下: package secondServlet; im ...

随机推荐

  1. js数组,在遍历中删除元素

    /** * 有效的方式 - 改变下标,控制遍历 */ for (var i = 0; i < arr.length; i++) { if (...) { arr.splice(i, 1); // ...

  2. DP套DP

    DP套DP,就是将内层DP的结果作为外层DP的状态进行DP的方法. [BZOJ3864]Hero meet devil 对做LCS的DP数组差分后状压,预处理出转移数组,然后直接转移即可. tr[S] ...

  3. AtCoder - 3954 Painting Machines

    题面在这里! 题解见注释 /* 考虑一个可以用 K ((n+1)/2 <= K < n)次染黑的方案, 那么将操作前K次的机器从小到大排序,一定是: a1=1 < a2 < . ...

  4. 【数位dp】UVA - 11361 - Investigating Div-Sum Property

    经典数位dp!而且这好像是数位dp的套路板子……不需要讨论原来我很头疼的一些边界. 改天用这个板子重做一下原来的一些数位dp题目. http://blog.csdn.net/the_useless/a ...

  5. python基础之序列化 time random os

    序列化与反序列化 json  pickle 1.什么是序列化与反序列化? 序列化就是将内存中的数据结构转成一种中间格式储存到硬盘或者基于网络传输 反序列化是网络,硬盘将被序列化的对象重新读到内存 2. ...

  6. Delphi DevExpress下载

    http://download.csdn.net/detail/wozengcong/8395285#comment

  7. 加速 Android Studio 的编译速度 2.2

    Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...

  8. 【js】js数组置空的三种方式

    方式1: var arr = new Array(1,2,3); alert(arr); arr.splice(0, arr.length); alert(arr); 方式2: var arr = n ...

  9. Linux用来抗衡Win的那些桌面环境

    作为一个 Linux 的爱好者,参加了 9 月 22 日 Linux Deepin 在北京举行的用户与开发者大会(给大家一个链接).名为参加会议,实为打酱油.但 Linux Deepin 团队的一些理 ...

  10. Shell学习:if语句 if -z -n -f -eq -ne -lt

    if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fitest.sh: line 14: sy ...