当前位置:文档之家› servlet技术总结

servlet技术总结

servlet技术总结
servlet技术总结

Servlet(小服务程序)技术总结

Servlet简介及生命周期:

servlet容器:就是你所有的应用服务器(如Tomcat),服务器的主要功能就是创建和维护servlet类所需的一些实例(如 doPost(HttpServletRequest req,HttpServletResponse res)中的req和res 对象及ServletContext对象,所以当你在不同的页面会话时,就不需自己创建这些对象,只要拿到这些对象用就行了),servlet容器就创建的 HttpSession对象,也就是你通过HttpSession session=res.getSession();所获取的对象。

Servlet被服务器实例化后,容器运行其init()方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doGet或者doPost方法等,当服务器决定将实例销毁的时候调用其destroy方法。

int(ServletConfig config):由于servlet初始化参数的使用非常依赖于部署描述文件(web.xml),该文件可存放servlet所需要的起始参数以及web应用程序的结构数据。当servlet容器读取web.xml文件内容后,封装成一个对象(这个对象就是ServletConfig对象传给了init方法)并在调用init方法时传递给servlet。

GenericServlet实现了ServletConfig接口与Servlet接口,它提供了两种init方法:

第一种init方法是Servlet接口中init()方法的实现,将

量中,然后调用第二种不带参数的init()方法。所以我们可以在Servlet内重写init方法,并通过ServletCongig对象来取得某些初始参数。

如果重写第二种init()方法,那么应该在子类的该方法中,写上super.init(config)代码调用,否则出现空指针异常。

service方法与doGet/doPost方法的关系:service()在javax.servlet.Servlet接口定义的,

javax.servlet.GenericServlet实现了javax.servlet.Servlet这个接口,javax.servlet.http.HttpServlet继承了

javax.servlet.GenericServlet这个类,doGet/doPost就是在javax.servlet.GenericServlet类中实现的。

javax.servlet.http.HttpServlet的service()方法主要做的事情就是判断请求类型是get还是post,然后调用对应的doGet/doPost执行

servlet与cgi(Common Gateway Interface公共网关接口)的区别:在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

Servlet 与Struts2:Struts2:新建一个action接受用户的请求。在这个action中调用模型中方法(查询数据库),得到结果后再跳转到jsp页面中显示出来。

Servlet:新建一个servlet接受用户的请求,调用模型中的方法(查询数据库)。

Servlet内置对象的作用范围及访问方法:

HttpServletRequest,HttpServletResponse:这两个属性的作用范围最小。

时间上:只是本身请求和应答完成就失效,当然转发是把当前的request对象取出来传给另一个资源,其实本身的request对象还是只生存到本次请求结束,response也同样。

空间上:只能发送请求的客户端有效。

HttpSession:一次连结到客户端关闭,时间作用范围比上面两个大,空间任用范围相同。

ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet 有效,一个servlet的ServletConfig对象不能被另一个servlet访问

ServletContext:对任何servlet,任何人在任何时间都有效,这才是真正全局的对象。

HtttpSession:

Session机制:http协议本身是“连接-请求-应答-关闭连接”模式的无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,session就是一种保存上下文信息的机制。它是针对每一个用户的,当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号(sessionID),保存这个session id的方式可以采用cookie,系统会创造一个名为JSESSIONID的输出返回给客户端Cookie保存。这个用户随后的所有请求都应包括这个标识号,服务器会校对这个标识号以判断请求属于哪个session,通过SessionID来区分不同的客户。session是以cookie或URL 重写为基础的,默认使用cookie来实现。

如果在jsp中没有显式使用 <%@page session="false"%>,那么jsp编译时会加上HttpSession session = HttpServletRequest.getSession(true),这就是为什么打开一个jsp页面就建立了一个session。服务端自动创建的session对象,过期时间tomcat默认是30分钟。

JSESSIONID:Jsessionid只是tomcat的对sessionid的叫法,其实就是sessionid;在其它的容器也许就不叫jsessionid了。

保存session id的几种方式:

1.保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

2.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种:一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。

3.另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。

session在下列情况下被删除:

1.程序调用HttpSession.invalidate();

2.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间

3.服务器进程被停止。(关闭浏览器,只会是浏览器端内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。)

Cookie:cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。

代码:String usercode = (String)request.getSession().getAttribute("usercode");

Session session=req.getSession();

ServletConfig:

跟servletContext不同的是,一个Servlet对应一个servletConfig(不管有多少客户访问它从而开启了多少个线程),而servletContext是一个web工程只有一servletContext。当然servletConfig也可以取得关联的servletContext。也就是说,容器只有在创建servlet 实例时才会读文件中的,并且在servlet一生中只读一次

首先HttpServlet继承自GenericServlet类,而 GenericServlet类又继承自Servlet 接口,Servlet接口有方法getServletConfig() ,所以HttpServlet肯定有方法getServletConfig() 。

----------------------------------------------------------------------------------

ServletConfigTest

com.guo.ServletConfigTest

color

red

在servlet代码中:

out.println(getServletConfig().getInitParameter("color"));

----------------------------------------------------------------------------------ServletConfig中的方法:

getInitParameter(String name):根据给定的初始化参数,返回匹配的初始化参

数值。

getInitParameterNames():返回一个Enumeration对象,里面包含了所有的初始化参数。getServletContext():返回一个servletContext()对象.

getServletName():返回servlet的名字,即web.xml中的的子元素的值。

如果没有配置这个子元素,则返回servlet类的名字。

ServletContext:

是Servlet中最大的一个接口,呈现了web应用的Servlet视图ServletContext实例是通过getServletContext()方法获得的。启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml的两个节点:,紧接着容器创建一个servletContext,这个web项目所有部分都将共享这个上下文。

1).初始化参数

ServletContext对象是在Web应用程序装载时初始化的。正像Servlet具有初始化参数一样,ServletContext也有初始化参数。Servlet上下文初始化参数指定应用程序范围内的信息。[1]

adminEmail

webmaster

元素是针对整个应用的,所以并不嵌套在某个元素中,该元素是元素的直接子元素。[1]

从Servlet中访问初始化参数:ServletContext application=this.getServletContext();

out.println(application.getInitParameter("email"));

2).属性

可以通过编程的方式绑定,也可以作为web应用的全局变量被所有Servlet和JSPs访问

设置Context属性:ServletContext application=this.getServletContext();

application.setAttribute("person1",new Person("Jim"));

application.setAttribute("person2",new Person("Green"));

获取Context属性:ServletContext application=this.getServletContext();

(一种集合)Enumberation persons=application.getAttributeNames();

while(persons.hasMoreElements()){

String name=(String)persons.nextElement();

Person p=(Person)persons.getAttribute(name);

application.removeAttribute(name);

web.xml里面可以定义两种参数context-param和init-param区别:

(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:

context/param

avalible during application

name1

value1

// 服务器启动后就读取了

(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:

MainServlet

com.wes.controller.MainServlet

param1

avalible in servlet init()

0

// 容器创建servlet实例时才会读取

在servlet中可以通过代码分别取用:

package com.wes.controller;

import javax.servlet.*;

public class MainServlet extends HttpServlet ...{

public MainServlet() ...{

super();

}

public void init() throws ServletException ...{

System.out.println("下面的两个参数param1是在servlet中存放的");

System.out.println(this.getInitParameter("param1"));

System.out.println("下面的参数是存放在servletcontext中的");

System.out.println(getServletContext().getInitParameter("context/param"));

}

} //第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到

//第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取得

Web.xml中的listener:

监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。

常用的监听接口有以下几个:

ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。

ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。

HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法;当销毁一个Session时,激发

sessionDestroyed(HttpSessionEvent se)方法。

HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。

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.doczj.com/doc/e91912256.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.doczj.com/doc/e91912256.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

相关主题
文本预览
相关文档 最新文档