java Web笔记
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笔记的更多相关文章
- Java Web 笔记(1)
JavaWeb 学习笔记,狂神说java,链接:https://www.bilibili.com/video/av68833391 Java Web 1.基本概念 1.1.前言 web开发: web, ...
- 1.JAVA WEB 笔记中文乱码
JAVA WEB 乱码问题解析 乱码原因 在Java Web开发过程中,经常遇到乱码的问题,造成乱码的原因,概括起来就是对字符编码和解码的方式不匹配. 既然乱码的原因是字符编码与解码的方式不匹配,那么 ...
- [转]Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)
来源:http://www.jianshu.com/p/56caa738506a 0. 绪言 Java Web开发中,除了基础知识外,开发环境搭建,也是一项基本功.开发环境包括了IDE.项目管理.项目 ...
- Java WEB 笔记
1. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-version 到一个非中文目录下 2). 配置一个环境变量,JAVA_HOME(指向 JDK 安装目录)或 JRE_ ...
- Java Web 笔记(杂)
Java Web 概述 什么是Java Web 在Sun的Java Servlet 规范中,对Java Web 应用做了这样的定义: "Java Web" 应用由一组Servlet ...
- Java Web笔记(2)
学习笔记,狂神说java,链接:https://www.bilibili.com/video/av68833391 5.Maven 我为什么要学习这个技术? 在Javaweb开发中,需要使用大量的ja ...
- Java Web 笔记(4)
11.Filter (重点) Filter:过滤器 ,用来过滤网站的数据: 处理中文乱码 登录验证-. Filter开发步骤: 导包 编写过滤器 导包不要错 实现Filter接口,重写对应的方法即可 ...
- Java Web 笔记(3)
8.JSP 8.1.什么是JSP Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术! 最大的特点: 写JSP就像在写HTML 区别: HTML只 ...
- Java Web笔记之Servlet(1)
今天在学习Servlet时,使用浏览器显示的网页效果与预期的有差异,仔细查找发现实<!DOCTYPE>声明的问题,截图如下: 代码如下: package secondServlet; im ...
随机推荐
- luogu P2254 [NOI2005]瑰丽华尔兹
题目链接 luogu P2254 [NOI2005]瑰丽华尔兹 题解 为什么我我我不放放放bzoj的链接呢? 因为打的暴力啊,然后bzojT了呀QAQQQQQ(逃 然后luogu竟然过了呀呀呀 dp[ ...
- 都9102年了,还不会Docker?10分钟带你从入门操作到实战上手
Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎.它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支 ...
- NHibernate官方文档中文版--基础ORM(Basic O/R Mapping)
映射声明 对象/关系映射在XML文件中配置.mapping文件这样设计是为了使它可读性强并且可修改.mapping语言是以对象为中心,意味着mapping是围绕着持久化类声明来建立的,而不是围绕数据表 ...
- Inno Setup入门(十七)——Inno Setup类参考(3)
标签 标签(Label)是用来显示文本的主要组件之一,也是窗口应用程序中最常用的组件之一,通过对标签的使用,将能够给用户提供更加详细的信息. Pascal脚本中的标签由类TlLabel实现,该 ...
- css/js(工作中遇到的问题)-5
后端换行符处理 问题描述 // Windows new line support (CR+LF, \r\n) str = str.replace(/\r\n/g, "\n"); 遍 ...
- [转] SSIS可靠性和扩展性—事务
本文转自:http://www.cnblogs.com/tylerdonet/archive/2011/09/23/2186579.html 在这一个随笔中将介绍在package中如何使用事务来保证数 ...
- iOS: 设置App的国际化和本地化
原文链接:http://www.cocoachina.com/appstore/20160310/15632.html 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的 ...
- iOS:多线程的详细介绍
多线程: 一.概念 1.什么是进程? 程序的一次性执行就是进程.进程占独立的内存空间. 2.什么是线程? 进程中的代码的执行路径. 3.进程与线程之间的关系? 每个进 ...
- SpringMVC防止XSS注入
xss(Cross Site Scripting)注入就是,跨站脚本攻击,和sql注入类似的,在请求中添加恶意脚本,实现控制用户. XssHttpServletRequestWrappe.java 重 ...
- Python程序员技能表—446家知名企业的Py招聘信息(转载)
Python程序员技能表—446家知名企业的Py招聘信息 转载: python 正在学习python或者想学习python的可以加群:330637182 正在学习python或者想学习python的可 ...