Servlet知识总结

Servlet知识总结
Servlet知识总结

Servlet生命周期

Servlet的生命周期是由servlet的容器来控制的。分为3个阶段:初始化阶段、运行阶段、销毁阶段。

初始化阶段:

初始化阶段步骤:

1.Servlet容器加载servlet类,把它的 .Class文件中的数据读到内存中。

2.Servlet容器创建servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。此外servlet容器还会使得servletConfig对象与当前

的web应用的servletContext对象关联。

3.Servlet容器创建servlet对象。

4.Servlet容器调用servlet对象的init(ServletConfig config)方法。

通过初始化步骤,创建了servlet对象和servletConfig对象,并且servlet对象与servletConfig对象关联,而servletConfig对象又与当前对象的servletContext对象关联。当servlet容器完成servlet后,servlet对象只要通过getServletContext()方法就能得到web应用的servletContext对象。

注:servlet初始化的情况:当web应用处于运行阶段时,特定的servlet被客户端首次请求访问。在web.xml文件中为servlet设置了元素

servlet1

servlet.servlet1

0

说明:在servlet的配置当中,5的含义是:标记容器是否在启动的时候就加载这个servlet。

当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;

当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。

正数的值越小,启动该servlet的优先级越高。

当web应用被重新启动时,web应用中的所有servlet会在特定的时间被重新初始化。

运行阶段:

在这个阶段sevlet可以随时响应客户端的请求。当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求的servletRequest和servletResponse对象,然后调用service()方法,并把这两个对象当做参数传递给service()方法。Service()中方法通过servletRequest对象获得请求信息,并处理该请求,再通过servletResponse对象生成响应结果。【不管是post还是get方法提交,都会在service中处理,然后,由service来交由相应的doPost 或doGet方法处理,如果你重写了service方法,就不会再处理doPost或doGet了,如果重写sevice()方法,可以自己转向doPost()或doGet()方法】

注:当servlet容器把servlet生成的响应结果发送给客户后,servlet容器会销毁servletRequest和sevletResponse对象。

销毁阶段:

当Web应用被终止时,servlet容器会先调用web应用中所有的servlet对象的destroy()方法,然后在销毁servlet对象。此外容器还会销毁与servlet 对象关联的servletConfig对象。在destroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭与数据库的连接。

注:sevlet的生命周期中,servlet的初始化和销毁只会发生一次,因此init()和destroy()方法只能被servlet容器调用一次,而service()方法取决与servlet被客户端访问的次数。

我的摘记:

1.写好的Servlet程序的编译后的类文件(.class)放到WEB-INF下classes文件夹下,如果有包也要建成文件夹。

2.404错误:客户端错误,路径写错了;500错误:服务器错误,程序或配置出错

3.修改Servlet后必须重启服务器,web.xml文件可以自动检测

4.访问Servlet的方法(1)浏览器的地址栏(2)超链接方式(3) 表单提交方式

5."String".equals可以避免找不到出现空指针的异常。

6.ServletConfig的方法

1.使用config.getServletName();获得aaa内容

2.使用config.getInitParameter();获得Servlet初始化参数

3.使用config.getServletContext();获得代表Web.xml对象

对于2的用法在.xml中

username

testcofig

7.ServletContxt接口代表整个配置文件全应用唯一(一个web应用只有一个web.xml文件,只有一个ServletContext)

ServletContext ctx = ServletConfig.getServletContext();

8.HttpServlet implements Servlet 作用是servlet接口(GenericServlet抽象类)可以对基于ftp,http,pop3等协议进行开发;

HttpServlet(是GenericServlet抽象类的子类)专门应用于http协议(一般web的开发,包括Session,Cookie)

9.使用request.getServletContext().getRealPath("/文件");

10.两个Servlet之间传递数据,是通过request设置属性值并通过转发方式传递值,但必须保证Request是一个对象(当用户在地址栏中输入一个新地址时表示一个新的Request)

11.有关Cookie:每个网站只能读取自己网站发送的Cookie;向客户端写cookie时,必须设置cookie存活的时间 cookie.setMaxAge(“秒”),setMaxAge()单位默认为秒,c.setMaxAge(0)为0表示浏览器关闭时Cookie消失,负数时则不会创建Cookie对象。浏览器可以设置禁止使用Cookie后,测试时只能用

127.0.0.1访问,不能使用localhost方式访问。

12.重定向(sendRedirect)和转发(foward)的比较:

(1)forward()方法派发请求和响应对象到RequestDispatcher对象所确定的新资源,该资源利用请求和响应对象来处理HTTP请求include()方法的使用与forward()方法类似,但也有一些限制,该方法关键能包含服务器端的资源,被包含的资源不能改变响应状态码或设置头信息(forward的地址栏URL不变,sendRedirect地址栏URL会变);

(2)重定向和请求转发之间最大的区别在于,重定向让客户端浏览器来完成,而请求转发是在服务器端作工作响应重定向会执行两次请求(所以不能通过Request属性获得数据(使用Request在多个Servlet中传值时,只能使用forward)),而请求转发是一次请求只会执行一次;

13.乱码:request.setCharacterEncoding("utf-8") 解决用户请求时的编码问题;response.setContentType("text/html;charset=utf-8")解决响应的编码问题;当使用表单提交数据,使用提交方式时get时,上述方法不管用;数据通过http协议头传输数据(post通过消息体传输数据),解决方式是:修改tomcat服务器的配置文件config/server.xml

redirectPort="8443" URLEncoding="utf-8"/>

14.HttpSession接口,request存储数据(生命周期为一个用户请求),session的生命周期是一次会话,session生命周期长应慎用,如果能用request就用request;session.getID()获得SessionID其是Session的唯一标号(一个浏览器对应一个session)当浏览器访问网页时,Tomcat会给这个浏览器创建一个session对象并且将本session的ID用Cookie的方式回传给浏览器保存起来。

15.Tomcat的目录结构:bin tomcat的命令;config 配置文件;common/lib全局jar包;logs 日志;temp 放临时文件;work 存放jsp生成的Servlet;webapps部署的项目;

16.Tomcat保证一个Servlet只创建一个(但Servlet不是单例模式),servlet是多线程访问的,假如把Connection conn写在servlet成员变量里,成员变量就会被多用户访问,这样不安全,最好不要使用成员变量(可以加synclized,但是效率差点)。

17.Servlet处理HTTP请求

(1)HTTP请求包括包括请求行(HTTP方法请求的URL HTTP版本)、请求头(用于告诉服务器客户端使用什么软件以及客户端想要的服务器如何返回请求的信息,通过请求头我们可以知道浏览器可以使用的字符集类型,浏览器使用的语言类型、浏览器的类型、浏览器是否支持压缩页面等)、消息体以及分隔请求头和消息体的一个空行

(2)HTTP的请求方法:获取HTTP的请求方法用getMethod()方法

get和post方法的比较

1 提交数据类型: get:文本 post:文本和二进制文本

2 提交数据长度: get:不超过255个字符 post:没有限制

3 提交数据可见性 get:作为URl地址的一部分显示在浏览器地址栏 post:作为请求的消息体,不可见

4 提交数据缓存 get:缓存在浏览器URL历史状态中,就是可以回退到原来的网页 post:不会被浏览器缓存,如果html中没有具体制定method属性,浏览器默认将缺省使用get方法。如果使用post请求,必须在表单中指定method=’post’ Http请求通过httpServletRequest对象代表。HttpServletRequest 对象主要用于获取由客户端发送过来的请求头、参数、文件、数据等

(3)获取表单数据

在HttpServletReuest对象中最常用的方法是获取请求参数的方法getParameter()获取表单参数的值,参数名区分大小写,名要与HTML一致,该方法返回与用户输入完全一致的字符串对象getParameterValues()获取同一个参数名的多个参数值,返回字符串数组对象;获取原始表单数据:数据不是由HTML表单提交,而是来自某个用户端程序,需要自己读取和解析这些数据数据来自于上传的文件时,需要自己读取数据。

18. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext 对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此多个Servlet对象之间可以通过ServletContext对象来实现数据通信。ServletContext对象通常也被称之为context域对象。

1.多个Servlet通过ServletContext对象实现数据共享。

在InitServlet的Service方法中利用ServletContext对象存入需要共享的数据

/*获取ServletContext对象*/

ServletContext context = this.getServletContext();

//存入共享的数据

context.setAttribute("name", "haha");

在其它的Servlet中利用ServletContext对象获取共享的数据

/*获取ServletContext对象*/

ServletContext context = this.getServletContext();

//获取共享的数据

String name = context.getAttribute("name");

System.out.println("共享的内容值是:"+name);

2.获取WEB应用的初始化参数。

在web.xml文件中配置需要初始化的参数信息。

url

jdbc:mysql://localhost:3306/4g

password

1314qr

user

root

在DemoServlet的doPost方法中测试获取初始化参数的步骤如下:

/*获取ServletContext对象*/

ServletContext context = this.getServletContext();

/*获取初始化参数*/

//获取指定名称的初始化参数

String url = context.getInitParameter("url");

//获取web.xml文件中所有的初始化应用参数

Enumeration enumer = context.getInitParameterNames();

while(enumer.hasMoreElements()){

String name = enumer.nextElement();

String value = context.getInitParameter(name);

System.out.println(name+"=========="+value);

}

2.实现Servlet的转发:

在测试的Servlet中实现转发的步骤如下:

/*要利用ServletContext对象实现转发获取对象*/

ServletContext context = this.getServletContext();

//在request对象中存入name属性

request.setAttribute("name", "haha");

/*根据转发的地址获取 RequestDispatcher对象*/

RequestDispatcher rd = context.getRequestDispatcher("/index.jsp");

//调用转发方法以下采用任意方法即可

rd.forward(request, response);

//rd.include(request, response);

注意:forward与include的区别

标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。

从一个JSP文件传递request信息到另外一个JSP文件,后面的部分将不会被执行。

可以使用 传递参数。

将包含的文件放在JSP中和其他一起执行。

标签用于把请求转发给另外一个资源。

语法: page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得

getRequestDispatcher后面的参数可以是一个servlet,jsp或者html页面

对于forward方法,本意是让第一个页面处理request,第二个页面处理response。如果第一个页面中已经使用response进行输出了,那么只要没有flush(),forward依然可以成功,并会自动清除刚才的输出内容,但是如果第一个页面调用了flush()方法,则会报错。值得注意的是执行了forward方法调用了第二个页面之后,程序还会返回第一个页面继续执行,但是此时再使用response输出已经没有作用了。建议可以在forward语句后面加上 if (true) return;避免无必要的执行后面的程序。

include方法则不同,它是服务器端的动态加载,执行完第二个页面的程序后可以回到第一个页面继续输出,只需要注意第二个页面不应当更改response的头部信息(改了也没用)。【forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.(forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。

include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息)】

3.利用ServletContext对象读取资源文件。

读取资源文件(properties文件(属性文件))的三种方式

配置的properties的内容如下:

url=jdbc\:mysql\://localhost\:3306/3g ;

user=root;

password=root;

获取实现的代码如下:

/*获取ServletContext对象*/

ServletContext context = this.getServletContext();

//第一种方式

URL url = context.getResource("WEB-INF/classes/db.properties");

InputStream is = url.openStream();

//第二种方式

/*读取db.properties文件*/

String path =context.getRealPath("WEB-INF/classes/db.properties");

/*根据文件的路径构建文件对象*/

File file = new File(path);

/*根据file文件对象创建输入流*/

InputStream is = new FileInputStream(file);

//第三种方式

InputStream is = context.getResourceAsStream("WEB-INF/classes/db.properties ");

以三种方式任意一种可以:

/*解析properties的文件*/

Properties prop = new Properties();

//从输入流中读取属性列表(键和元素对)。

prop.load(is);

Set set = prop.stringPropertyNames();

//遍历set集合

Iterator it = set.iterator();

while(it.hasNext()){

String key = it.next();

String value = prop.getProperty(key);

System.out.println(key+"-----"+value);

}

19.servlet的主要三个作用:

1.获得数据并封装

2.处理数据[业务逻辑]

3.选择视图

20.

Java_Web总结

选择题: 1、Servlet类文件放置的位置是()。 A.WEB-INF/lib B.WEB-INF/servlet C.WEB-INF/web D.WEB-INF/classes 2、在JSP中,page指令的()属性用来引入需要的包或类。 A.extends B.import C.languge D.contentType 3、一个servlet源文件的后缀名是()。 A..jsp B..exe C..class D..java 4、J2EE中,JSP EL 表达式${user.loginName}的执行效果等同于()。 A.<% = user.getLoginName()%> B.<%user.getLoginName();%> C.<% = user.loginName%> D.<% user.loginName;%> 5、在Web容器中,以下哪个类的实例代表HTTP的请求()。 A.HttpRequest B.HttpServletRequest C.HttpServletResponse D.HttpPrintWriter 6、Web应用中,常用的会话跟踪方法不包括()。 A.URL重写B.Cookie C.隐藏表单域D.有状态HTTP协议 7、以下对PayServlet的定义正确的是()。 A.class PayServlet implements javax.servlet.servlet B.class PayServlet extends javax.servlet.GenericServlet C.class PayServlet extends javax.servlet.http.HttpServlet D.class PayServlet extends javax.servlet.ServletRequest 8、aa.jsp把请求转发给bb.jsp。aa.jsp在请求范围内存放了一个String类型的name 属性,bb.jsp如何获取该属性()。 A.<% String name=request.getAttribute("name"); %> B.<% String name=(String)request.getAttribute("name"); %> C.<% String name=request.getParameter("name") %> D.<% String name=(String)application.getAttribute("name") %> 9、在JSP页面中,作用域范围由小到大依次是()。

JAVAWEB经验总结之SERVLET API

基本类和接口 一、javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。 Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。 servlet接口中的方法 void init(ServletConfit config)throws ServletException在servlet被载入后和实施服务前由servlet引擎进行?次性调用。如果init()产生溢出UnavailableException,则servle退出服务。ServletConfig getServletConfig()返回传递到servlet的init()方法的ServletConfig对象void 果 String getServletInfo()返回描述servlet的一个字符串 void destory()当servlet将要卸载时由servlet引擎调用service(ServletRequest request, ServletResponse response)throws ServletException,IOException处理request对象中描述的请求,使用response对象返回请求结 二、javax.servlet.GenericServlet类(协议无关版本) GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以用于模拟操作系统的端口监控进程。servlet API提供了Servlet接口的直接实现,称为GenericServlet。此类提供除了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。 除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet 上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。 GenericServlet类中的方法 void destory()编飞组成单词“destory”的一个注册入口 String getInitParameter(String name)返回具有指定名称的初始化参数值。通过凋用config.getInitParameter(name)实现。 Enumeration getInitParameterNames()返回此serv]et已编码的所有初始化参数的?个枚举类型值。调用config.getInitParameterNames()获得列表。如果未提供初始化参数,则返回?个空的枚举类型值(但不是null) ServletConfig getServletConfig()返回传递到init()方法的ServletConfig对象ServletContext getServletContext()返回在config对象中引用的ServletContext String getServletInfo()返回空字符串 void init(ServletConfig config)throws ServletException在一实例变量中保存config对象。编写组成单词“init”的注册入口,然后调用方法init() void init()throws ServletException可以被跳过以处理servlet初始化.在config对象被保存后init(ServletConfig config)的结尾处自动被调用.servlet作者经常会忘记调用super.init(config) void log(String msg)编写注册servlet的入口.为此调用servlet上下文的log()方法.servlet的名字被加到消息文本的开头。 void log(String msg,Throwable t)编写一个入口和servlet注册的栈轨迹。此方法也是ServletContext中相应方法的一个副本。 abstract void service(Request request,Response response)throws ServletException,IOException 由servlet引擎调用为请求对象描述的请求提供服务。这是GenericServlet中唯一的抽象方法。因此它也是唯一必须被子类所覆盖的方法。 第1/7页

java开发技术总结

数据库 oracle-->数据库管理系统-->SQL、PL/SQL-->Java(JDBC+SQL) DBA,数据库编程程序员 1.概念导论 1)什么是数据库 有组织和结构存储数据。可以存储 字符、字节、图形、图像等类型数据 DB(数据库):数据集合 DBMS(数据库管理系统):对数据集合进行管理和操作的软件 --Oracle --DB2 --MySQL --SQLSERVER JDBC 1.什么是JDBC 全称Java DataBase Connection,Java数据库访问。 JDBC是Java访问数据库的一项技术 JDBC是SUN推出的Java访问数据库的一套标准。由一系列接口构成。 各个数据库厂商负责提供JDBC接口API的实现包。 开发者只需要掌握JDBC接口的使用,就可以实现对各种数据库的操作,不需要了解开发商的实现类。 XML 1、什么是xml(xtendsible markup language可扩 展的标记语言)? 1)定义 基于文本的通用的数据保存格式。 (1)通用的点的坐标 Point类point对象(x=10,y=20) a,序列化 b,数据库表 c,文件 ... (2)数据格式 10 20

HTML 知识准备 1、分层:表现层:UI界面(DOS界面、桌面类型、web类型) 业务层: 数据层:文件、Oracle数据库 2、Web类型的应用程序----B/S类型 打开Browser,输入URL,浏览器将请求发送到服务器 服务器得到请求,分析,返回响应 浏览器得到响应,解析(翻译),显示为页面 3、web学习阶段 客户端技术:HTML+CSS+Javascript---Web基础 服务器端技术:JSP、PHP、https://www.360docs.net/doc/ca3547445.html, 4、web基础的课程 HTML:页面的创建 CSS:页面的外观 JavaScript:页面的动态效果和交互行为--3 一:HTML概述 1、超文本标记语言:一种编写页面的纯文本的标记语言,文件以.html或者.htm为后缀,依靠浏览器运行显示----解释性的语言 2、标记:一些用<>括起来的内容,特殊的显示 3、主流浏览器:IE/Firefox/Chrome/ 4、浏览器兼容性:符合标准规范,具体问题 CSS 一:CSS概述 1、CSS:级联样式表(层叠样式表) 2、特征:为页面定义外观的语言,实现内容和表现的分离,多个样式可以合为一个,如果冲突,以优先级为准 二:基础语法 1、语法:属性名称:值;属性名称:值;比如--color:red; 2、如何应用 方式一(内联方式):<元素style=""/>---将样式直接定义在元素的style属性里 方式二(内部样式表):在页面的head里的style里定义样式 方式三(外部样式表):定义一个单独的.css的文件(定义样式);然后,在页面的head里用link引入---推荐方式 3、外部样式表的优点:实现内容和表现的分离,提高代码的可重用性和可维护性

Servlet方法中的常用五大方法

Servlet方法中的常用五大方法 Servlet方法有很多,但是本篇向你介绍的五大Servlet方法是功能非常强大的,在Web 开发中作用不小。是不是很感兴趣呢? 这五大Servlet方法都是功能比较强大的。相信对于WEB设计来说有一定的帮助。不要一个一个方法的试验,等看完所有的内容,然后一起运用这些方法并结合以前的workshop 来做个小程序。 ◆parseTextMessage()方法 在这个例子里:定义了一个数据接受类。parseTextMessage()方法接受了一组从表单传送过来的对象以及他们的值。我们在做一些产品开发的时候,比如自定义表单,往往不知道传送过来有多少对象,对于这样的问题,程序是无法知道的,用了这个方法后,就可以报所有的对象一下子都拿到了。下面看一下这个例子: 1private void parseTextMessage(HttpServletRequest request){ 2 3Enumeration names;//列举client传送过来的所有的对象 4String name;/ 5String[]value;// 6//接受所有的对象 7names=request.getParameterNames(); 8 9while(names.hasMoreElements()){ 10//得到对象名称 11name=(String)names.nextElement(); 12//根据对象名称重新找到对象的值 13value=request.getParameterValues(name); 14//把对象名称和值放到一个类中,这个类的代码在前面的练习中有 15put(name,value); 16} 17 18//获取一个page的ID,为什么要设置page id,在java规则中有 19pageID=getPostPageID(); 20 21//获取事务id,如果有事务的话

javaweb开发要学习的所有技术和框架总结:

学习javaweb开发要学习的技术和框架总结: 前言:当初想学习javaweb开发的时候,希望能够全方面地学习(这样找工作时就胸有成足了)。但是对这个根本不理解,又不认识从事这方面的熟人,所以学习起来无从下手。经过了一年的‘死’学习,从网上,从书本,从视频里面深入了解了java。想从事java的朋友,只要把这些技术全学会了,哪就业肯定没有问题了。 前端技术: HTML, CSS, JA V ASCRIPT, JQUERY, AJAX HTML “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分(外语:Head)、和“主体”部分(外语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。 CSS 级联样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 JavaScript JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 jQuery jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。

JavaWeb期末总结

第一章Web开发基础知识(简单描述)表单(续) 表单元素

form body
元素括起整个表单,并给出一些基本定义。表单仅占用HTML文档的部分空间;实际上,一个HTML文档可以包含几个独立的、完成不同功能的表单。method指定了信息传递给HTTP服务器的方法;action给出与处理提交信息的脚本相关的URL(如“registinfor.asp”,“registinfor.jsp”)。 表单输入元素 ?用来把不同的字段放在表单里,以便用户输入信息。 ?name属性指定该字段在某个表单中的唯一名称; ?可选的value属性给出该标记的默认值。 ?在提交表单时,向Web服务器呈上以一组用“?”开头并用“&” 号分开的一组“名字=值”形式的信息,如 http://…/Scriptname?name=me&address=here&time=now ?type属性给出所使用标记的样式,“string”可以是: ?CHECKBOX(复选框)。 ?RADIO(单选按钮) ?TEXT(单行的文本输入栏)。 ?IMAGE(图像放在表单里) ?SUBMIT(提交按钮) ?RESET(清除按钮) ?HIDDEN(在表单中保留不供显示的内容) ?FILE(上传文件) 第二章Servlet开发 1.什么Servlet Servlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP (HyperText Transfer Protocol)协议进行工作的。(可以认为Servlet是服务 器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。) 2. Servlet的主要方法 Servlet是一个Java类,通常会有3类方法,分别是: init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的

JAVAWEB复习总结

B1.{JSP-Servlet题目}表示“资源移动”的状态码是。(选择1项) A)200 B)302 C)400 D)500 A2.{JSP-Servlet题目}哪一个对象可以用于获得浏览器发送的请求。(选择1项) A)HttpServletRequest B)HttpServletResponse C)HttpServlet D)Http B3.{JSP-Servlet题目}如果不希望在JSP页面中存取HTTP会话,应该如何设定page指令?(选择1项) A)<%pagesession="disabled"%> B)<%pagesession="false"%> C)<%pagesession="true"%> D)<%pagedisablesession="true"%> CD4.{JSP-Servlet题目}在Servlet的生命周期中,容器只调用一次的方法是。(选择2项) A)service B)getServletConfig C)init D)destroy C5.{JSP-Servlet题目}在使用服务器端的会话管理时,通过什么方法标识会话。(选择1项) A)IP地址 B)Cookie C)Session id D)请求头 A6.{JSP-Servlet题目}下列哪个为JSP的小脚本的标签?(选择1项) A)<%%> B)<@%> C)<%!%> D)<%--%> C7.{JSP-Servlet题目}下面哪一个不是元素的属性。(选择1项) A)scope B)Id C)Value D)Class C8.{JSP-Servlet题目}HttpServlet中,用来处理POST请求的方法是(选择1项)

javaweb知识点总结

javaweb知识点总结 篇一:javaweb期末复习知识点整理 1、 Web应用概述 1. URL与URI URL: 统一资源定位器 URI:统一资源定位符 2. 常见HTML标签 3. 表单的处理 4. 静态文档与动态文档的概念:静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。 5. Servlet概念:服务器端小程序,是使用ServletAPI 以及相关类编写的java程序,主要用来扩展web服务器的功能。 6. 处理404错误:查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看文件内容是否正确,查看tomcat是否启动 2、 Servlet技术模型 1. Servlet的API:包,包 Servlet接口及方法 :

1) public void init(ServletConfig config):完成Servlet初始化并准备提供服务。容器传给该方法一个ServletConfig类型的参数。 2)public void service(ServletRequest req,ServletResponse res)throw ServletException,IOException:对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。 3) public void destroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。 4) public ServletConfig getServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。 5) public String getServletInfo()返回关于Servlet 的信息,如作者,版本及版权信息。 ServleConfig接口作用及方法 HttpServlet类 :新的service方法,doGet,doPost HttpServletRequest接口及常用方法 HttpServletResponse接口及常用方法 2. Servlet的开发步骤 编写一个Servlet类 编译 部署 (1)在tomcat的虚拟目录下,创建Web目录

学习JSP和servlet程序设计心得体会

学习JSP程序设计和Servlet心得体会JSP这门课是教我们怎么做网站的,学习了许多枯燥的语言知识,总算是可以自己做网站了 记得在第一节课上,我就跟学生们讲了“为什么学JSP?”,“JSP学什么?”,“学JSP有什么用?”还有“如何学JSP?”从我对这些问题的讲解中同学们确实体会到了学习JSP的重要性和如何去学。在课上还了解了这门课程我要讲述的主要内容以及需要具备的相关知识。 学生们在JA V A上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。 在前阶段的学习中都感觉很轻松,因为我讲到的HTML学生已经在上个学期的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到JA V A做一些动态的网页就感觉越来越吃力了,之前学过的很多JA V A知识也有很多都已经忘了。所以在第一次上课后完成任务时就用到了比较长的时间,最后才能勉强做到符合我的要求。还出现了很多小错误,有了第一次视频教学的教训,我在后面赶紧复习之前学习的JA V A知识,但是毕竟过了挺久了,有些东西需要重头再教,而且我也是以做项目的形式

来完成教学,项目里包括了JSP呀Servlet等技术,所以学生们大概花了一个多月才将这学期JSP和Servlet 课程中所掌握的一些关于JA V A的东西搞清楚。后来也就顺利的完成了我们要做的项目。 我想简单的谈谈我在JSP程序设计这门课中都学到了什么,JSP的全称是 Java Server Pages,它是一种动态网页技术。我们需要配置的坏境有JDK,Tomcat,还要用到Dreamweaver。最开始我们学习了HTML这种文本标记语言,用HTML可以做一些静态网站,看的出在学生第一次用HTML做出第一个网页时的兴奋,都觉得好神奇!后面我们学到做动态网站,其中就涉及到JSP内部对象及内部对象所对应的一些方法。再就是JSP与数据库的联系,怎么样引用数据库。通过以上所学到的知识我们可以基本上上做出一个比较实用的小网站,比如一个班级网站,在上面可以上传下载一些学习资料,以及存储班上同学的一些基本信息,给班上同学提供一个交流平台等等。 那在以后的学习中学生该如何学呢?从这一次JSP程序设计课程的学习中我总结了以后学习的方法。首先要把基础打牢,不要只是注重技术开发,对于一些基本概念也要掌握;其次要多一些专业方面的书,多了解我们专业动向;再者就是要多上机实践,

韩顺平servlet笔记(个人总结版)

第一课 第二课tomcat 简单模拟

package com.my.first; import java.io.*; import https://www.360docs.net/doc/ca3547445.html,.*; publicclass Mytomcat { /** * @param args */ publicstaticvoid main(String[] args) throws Exception { ServerSocketss = new ServerSocket(9999); Socket s = ss.accept(); System.out.println("在9999上等待。。。"); OutputStreamos =s.getOutputStream(); BufferedReaderbr = new BufferedReader(new FileReader("f:\\hello.html")); String str=""; while((str = br.readLine())!=null){ os.write(str.getBytes()); } br.close(); os.close(); s.close(); // ss.close(); } } 在浏览器中输入 http://localhost:9999 就会出现“hello world” 第三课 启动tomcat 各种问题总结

第四课

第五课 虚拟目录 如在f盘存放着各种web应用,但是空间不够了,这是我在d盘弄个文件当做该web应用的文件。但是要在server.xml中指定一下。 步骤:1、在那个磁盘下建立“f:\web2”,并建立相关的资源文件 2、在server.xml中配置 ps: path中的“/web2”是什么,在地址中就输入什么。 http://localhost:8080/web2/hello2.html context 能配置的属性 path、docBase、reloadable(有改变就重启tomcat)、unpackWAR

Servlet 实验报告

软件学院设计性实验报告 专业:JAVA 年级/班级: 09计算机2班 2011—2012学年第一学期课程名称Java EE框架指导教师周运 姓名张盈盈学号8888 实验地点过街楼机房B区实验时间9月29日5-8节 项目名称编写一个Servlet应用实验类型设计性 一、实验目的 1.掌握Servlet应用,熟悉web开发的MVC模式。 2.了解servlet工作的流程,servlet的作用。 3.掌握servlet的方法init(),destory(),doget(),dopost(); 二、实验仪器或设备 1.计算机一台 2.MyEclipse软件 三、总体设计(设计原理、设计方案及流程等) A:设计原理: 1.servlet相当于MVC模式中的C控制器。 2.作为服务器或监听程序并响应客户请求。 3.后台业务逻辑处理,对后台数据的操作、对组件模型的操作。 4.servlet有专有的方法init(),destory(),doget(),dopost(); B:设计方案及流程: 设计一个登陆页面,用户提交后,将数据提交给action,Servlet来控制处理,判断用户名、密码是否正确,根据不同的结果返回不同的信息。再进行部署测试,运行。 四、实验步骤(包括主要步骤、代码分析等) 1.创建一个web项目命名为myproject。 2.创建登陆页面index.jsp代码如下: 注:由于css是写在页面里面的,此处省略不写,css代码见电子稿。 <%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <% String errormessage=(String)request.getAttribute("errormessage"); if(errormessage==null){ errormessage= ""; } %>

javaWeb总结+小结

JavaWeb B/S与C/S的区别 1,从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。2,从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出了要求。 3,从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S 却是服务器更新维护一次,客户端就要下载相关的补丁才能使用 4,从安全性来讲,B/S是基于服务器的,较之C/S安全性好 5,从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。 6,从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。 但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。 Servlet的使用步骤: 1,创建一个JA V A类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能成为一个Servlet 2,覆写doGet()和doPost()方法 3,最后,在web.xml文件中进行Servlet配置。具体的配置如下: Servlet类名 完整的包.类名称 Servlet类名 网页访问的名称,例如/hello Servlet的生命周期,作用,并说出和CGI(Common Gateway Interface)的区别 就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下: Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service 方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。 与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运

Javaweb开发中的servlet知识总结

Java web开发中的servlet知识总结 1. 请求(request)—响应(response)模式:用户在浏览器的地址栏中输入一个网址并回 车,浏览器会向服务器发送一个HTTP请求,服务器端程序接受这个请求,并对请求做 出处理,然后发出一个回应,浏览器收到这个回应,并把回应的内容显示出来,这就是web应用程序的访问过程。 2. HTTP协议:浏览器单击链接是,会向服务器发送一段文本,告诉服务器请求的是那个 网页,这段文本遵循HTTP协议格式,包含访问方式,HTTP协议版本,所用的浏览器,访问的地址等。 3. Servlet概述:Java web应用程序中所有的请求与响应都是通过servlet来完成的,servlet 是java web的核心程序,所有的网址最终都要交给servlet来处理,servlet没有main之类的执行方法,当用户访问服务器是,服务器通过调用servlet的某些方法来处理整个过程。4. Servlet的工作流程:浏览器提交的数据是遵循HttP协议的文本,这段文本由服务器接 受并解析,封装成httpservletrequest类型的request对象,所有的http头数据都可以通过request的相应方法得到。Tomcat同时把输出流圭寸装成HTTPServletresponse类型的 response,通过设置response的相关属性就可以控制输出的内容,然后服务器将request 和response作为参数,调用servlet的相应方法比如doPost,doGet等。 5. Servlet的作用:主要处理业务逻辑,比如读取数据库,权限检查,业务处理等。 6. Servlet 接口:servlet 是一种实现了javax.servlet.Servlet 接口的类,servlet 规定了特定的 方法来处理特定的请求,开发者只需要实现servlet的相应方法,用户访问web程序的时候,服务器会调用这些方法来完成业务处理。 7. 访问方式:servlet是建立在HTTP规范基础上的,HTTP1.1支持options , get, post, head , put,delete,以及trace七种访问方式,各方式的意义分别是: Get表示查询信息,URL中可以附少量的参数信息,但是URL总长度不能超过255个字符,并且参数会显示在浏览器的地址栏。 Post表示提交信息,一般用于提交大数据信息或者文件,提交的内容不受长度限制,并且不会显示在浏览器的地址栏。 Options,put,delete,trace属于被声明了,但是没有被使用的web访问方式,现在的浏览器也很少用到这几种方式。 8. Java web目录结构:web程序部署在tomcat下的webapps下面,一个webapps下可以部署 法和从服务器移除的方法,这些方法称为生命周期方法,它们是按以下顺序调用的:构造servlet,然后使用init()方法将其初始化 处理来自客户端对service ()的全部调用 从服务器中取出servlet,然后使用destory()方法将其销毁,最终进行垃圾回收并终止它。 10. servlet 的方法: (1)public void destory() (2)public void init(ServletConfig config ) throws ServletException (3)public void service(ServletRequest req,ServletResponse res)throws

Java Web期末个人总结复习资料

第二章Java Web概述 HTTP请求和响应消息: HTTP是Hyper Text Transfer Protocol的缩写,即超文本传输协议。它是一种请求/响应式的协议,客户端在与服务器端建立连接后,就可以向服务器端发送请求,这种请求被称作HTTP请求,服务器端接收到请求后会做出响应,称为HTTP响应。 HTTP协议特点:支持客户端/服务器模式(C/S);简单快速;灵活;无状态(没有记忆功能) 在HTTP中,一个完整的请求消息是由请求行、请求头和实体内容(消息体)三部分组成;一个完整的响应消息主要包括响应状态行、响应消息头和实体内容(响应体)。 HTTP有8种请求方式,常见的是GET、POST(还有HEAD、OPTIONS、DELETE、TRACE、PUT和CONNECT) GET和POST的区别: ①GET方式地址栏有参数,POST方式地址栏没有参数。 ②GET请求有数据大小的限制(大约1KB),而POST没有限制。 ③GET请求只能进行url编码,而POST支持多种编码方式。 ④POST比GET请求方式更安全。 ⑤GET方式通过URL传递参数(?后面为参数),POST方式将表单元素及数据作 为HTTP消息的实体内容发送给服务器。 状态码:1xx:表示请求已接收,需要继续处理。 2xx:表示请求已成功被服务器接收、理解并接受。(200) 3xx:为完成请求,客户端需进一步细化请求。(302,304) 4xx:客户端的请求有错误。(404) 5xx:服务器端出现错误。(500) 在Eclipse中配置Tomcat: Tomcat是Apache提供的开源免费的运行Servlet和JSP的容器(引擎)。 Tomcat特点:稳定、可靠、效率高 Tomcat默认端口为8080,访问方式为: http://localhost:8080 (localhost也可以是127.0.0.1) 第三章Servlet基础 开发动态Web资源的相关技术比较常见的有ASP、PHP、JSP和Servlet等。基于Java的动态Web资源开发,SUN公司提供了Servlet和JSP两种技术。Servlet是使用Java语言编写的运行在服务器端的程序。Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应,它能够处理的请求有doGet()和doPost()等方法。 Servlet技术特点:方便、跨平台、灵活性和可扩展性。 在Servlet接口中定义了5个抽象方法,分别是: ①void init(ServletConfig config) ②ServletConfig getServletConfig() ③String getServletInfo() ④void service(ServletRequest request,ServletResponse response)

Servlet总结

一、SERVLET基础 1 .组件是什么? 是符合一定规范,实现了部分功能的软件模块,组件需要部署到相应的容器里面才能运行。 2 容器是什么? 是符合一定规范,提供组件运行环境的程序。 3、什么是servlet? sun公司制订的一种用来扩展web服务器功能的组件规范。偏重于业务逻辑的实现4、什么是servelet容器? 是符合一定规范,为servlet组件提供运行环境的程序。 5、如何写一个servlet? step1,写一个java类,要实现Servlet接口或者继承HttpServlet抽象类。 step2,编译。(javac -cp servlet-api.jar -d . 类名.java) step3,打包。 创建一个符合如下结构的文件夹: appname (应用名) WEB-INF classes(放字节码文件) lib(可选,放.jar文件) web.xml(部署描述文件) 注:一般在开发完成之后,交付给用户去使用时, 会使用jar命令将以上文件夹压缩成一个以".war" 为后缀的文件。 step4,部署 将step3创建好的文件夹或者压缩文件(.war文件) 拷贝到servlet容器指定的文件夹下面(比如, 拷贝到tomcat的webapps文件夹)。 step5,访问 http://ip:port/appname/servlet-url servlet-url在web.xml文件当中有相应的配置。 5、servlet如何运行的? 比如,在浏览器地址栏输入 http://ip:port/web01/hello?name=sally 参考day01的servlet2.jpg图片 步骤如下: 1)在浏览器中输入地址确认,浏览器根据IP地址与port号与服务器建立连接 2)浏览器将请求资源路径与请求参数根据http协议打包,生成一个请求数据包 3)浏览器向服务器发送请求(请求数据包) 4)Servlet服务器收到请求后,根据http协议进行解析(拆包) 5)Servlet服务器创建request和response对象,将解析后的请求数据保存在request对象内 6)Servlet服务器根据请求资源路径和web.xml文件找到对应的servlet类,对其实例化7)Servlet服务器创建ServletConfig对象

JSPServlet总结

第一章动态网页开发基础 (1)什么是动态网站 动态网页是指在服务器运行的,根据某种条件变化,返回不同的内容。(2)动态的网页的优势 交互性:即网页会根据用户的要求和选择而动态改变和显示内容。 自动更新:即无须改变页面代码,便会自动生成新的页面内容可以节省工作量。 随机性:即当不同的时间、不同的人访问同一网址时会产生不同的页面结果。 问答:动态网页是静态网页的代替品吗? 解答:静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站的多少。 C/S(Client/Server,客户端/服务器)架构的系统,其分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器相互通信。 B/S(Browser/Server,浏览器/服务器)B/S架构的web应用程序不在受安装客户端的限制。 B/S维护和升级方式简单 C/S 一般面向相对固定的用户群,页面友好。 B/S架构的工作流程 (1)浏览器接受用户的输入 (2)浏览器向服务器端发送请求 (3)数据处理:服务器端通常使用服务器端脚本语言(如JSP等)进行数据库访问查询数据、解释HTML文件,呈现结果界面。 (4)发送响应:服务器向浏览器发送响应消息(一般是动态生成HTML页面),并由浏览器解释HTML文件,呈现结果界面。 什么是URL URL(Uniform Resource Locator)的意思是统一资源定位符,是用于完整地描述Internet上网的其他资源的地址的一种标示方法。 URl的组成 (1)协议 (2)服务器域名或IP地址 (3)端口号 Tomcat目录结构 /bin 存放各种平台下用于启动和停止Tomacat的脚本文件。 /conf 存放Tomcat服务器的各种配置文件 /lib 存放Tomcat服务器所需的各种JAR文件 /logs 存放Tomcat日志文件 /temp Tomcat运行时用于存放临时文件 /webapps web应用的发布目录

HttpServletrequest 与HttpServletResponse总结汇总

http协议 浏览器需要URL找到服务器当中的资源,浏览器传给服务器一个请求,服务器对这个请求进行相应的处理(比如增删改查),服务器根据处理结果返回给浏览器,浏览器根据返回结果进行相应的处理(比如显示网页显示图片),那么浏览器和服务器怎么相互传输数据,数据如何解析,传输什么格式的数据需要制定好一套规则,HTTP协议就应运而生了,这是一群外国人(www)勾搭之后产生的,HTTP协议自出现以来,主要解决的就是浏览器和服务器数据交换的格式问题,所以HTTP协议定义了一套数据格式,一个http请求一般含有请求方法,请求地址,http协议版本,和header,这些header就相当于http协议提供的功能,你设置相应的header可以让服务器产生相应的行为,服务器响应中一般包含协议版本,状态码和状态码描述,和一大堆header,不同的是请求和响应所支持的header 并不一样,具体的参观相应的介绍,http与web开发的联系中有request 和response对象,使用相应的方法可以取到http请求中header内容也可以返回相应的http内容给浏览器,还有一点就是response 当中定义一大把状态码和状态描述,比如200对相应ok,404对应找不到, 由来 Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest; HTTP 协议是基于请求-响应的协议,客户端请求一个文件,服务器对该请求进行响应。HTTP 使用TCP 协议,默认使用80 端口。最初的HTTP 协议版本是HTTP/0.9,后被HTTP/1.0 替代。目前使用的版本是HTTP/1.1, 在HTTP 协议中,总是由主动建立连接、发送HTTP 请求的客户端来初始化一个事务。服务器不负责连接客户端,或创建一个到客户端的回调连接(callback connection)。 HttpServletRequest 公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。 一个HTTP 请求包含以下三部分: a.请求地址(URL) b.请求头(Request headers) c.实体数据(Entity body) 举例如下 POST /examples/default.jsp HTTP/1.1

相关文档
最新文档