您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > JSP&Servlet课件1
JSP/Servlet讲义1第1章开发环境配置网络名词介绍•Web:网络,互联网等技术领域•TCP/IP:TransmissionControlProtocol/InternetProtocol)的简写,中文译名为传输控制协议/网际协议,又叫网络通讯协议,这个协议是是Internet最基本的协议、Internet国际互联网络的基础•HTTP:超文本传输协议(HypertextTransferProtocol)•URL:统一资源定位符(URL,英语UniformResourceLocator的缩写),Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL地址,俗称“网址”。•端口:如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:256×256)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0到65535(256×256-1)。安装Tomcat•Tomcat是一个传动的Web服务器软件,能够接收HTTP请求,并且可以构造一个HTTP响应•是一个Apache基金会的开源项目,可以免费下载使用•可以运行Servlet和JSP程序,也称为Servlet容器和JSP容器tomcat安装目录中的子目录•bin:此目录下包含了启动,关闭和其他一些程序;•lib存放公用的web应用的类库,任何项目都可以使用这些类库•conf:包含配置文件和相关DTD文件,其中非常重要的一个是tomcat的主要配置文件server.xml;•logs:存放日志文件;•webapps:存放应用程序示例,以后部署的应用程序需要放在此目录;•work:tomcat运行时生成的临时文件,包括jsp编译后产生的class文件等。Tomcat和Servlet和JSP的对应版本关系TomcatServletJSP6.02.52.15.02.42.04.02.31.2开发工具的编码设置•如果没有正确的设置开发工具的编码,会导致文件乱码,应该在开发前统一编码,例如GBK或者UTF-8WEB应用程序基本结构站点根目录WEB-INFclasseslibweb.xml其他内容第2章Servlet基础Servlet•Servlet是服务器端的组件技术,可以让客户端执行服务器端的代码,实际上servlet也就是一个java的类,只不过是客户端可以连接服务器在服务器端执行这些类的代码。•任何Servlet类都必须直接或者间接实现javax.servlet.Servlet接口,在这个Servlet接口中只定义了5个方法initgetServletConfigservicegetServletInfodestroy没有任何和http协议相关的内容。•java提供了一个实现了Servlet接口的类:javax.servlet.GenericServlet类,这是一个抽象类,但仍然和协议无关,所以JavaEE提供一个继承了此类的子类javax.servlet.http.HttpServlet里面提供针对于http协议使用的方法,但这个类仍然是一个抽象类不能直接创建实例。•如果某个类要成为Servlet,则它应该从HttpServlet继承,根据数据是通过GET还是POST发送,覆盖doGet、doPost方法之一或全部。doGet和doPost方法都有两个参数,分别为HttpServletRequest(请求对象)类型和HttpServletResponse(响应对象)类型。Servlet继承图javax.servlet.Servlet接口javax.servlet.GenericServletjavax.servlet.http.HttpServlet自定义Servlet类第一个Servletimportjava.io.*;importjavax.servlet.http.*;publicclassFirstServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{PrintWriterout=response.getWriter();out.println(html);out.println(head);out.println(titleHELLO,WORLD/title);out.println(/head);out.println(body);out.println(hello,world);out.println(/body);out.println(/html);}}配置web.xml部署描述文件•加入以下标签servletservlet-nameFirstServlet/servlet-nameservlet-classcom.china.soft.FirstServlet/servlet-class/servletservlet-mappingservlet-nameFirstServlet/servlet-nameurl-pattern/FirstServlet/url-pattern/servlet-mapping访问Servlet•在将WEB应用程序站点部署之后•打开浏览器,在地址栏输入回车Servlet的生命周期1.当第一次有人访问这个servlet时首先调用构造起创建实例2.然后开始生命周期,执行init方法,执行初始化操作3.产生两个对象(request请求对象和response响应对象)调用service方法4.service方法根据请求方式的不同调用doGet或者doPost方法5.当有人再次调用同样的servlet重复第3步到第5步,不会再创建同样的Servlet对象实例6.servlet实例会常驻内存(持久性),保证多个请求使用的是一个对象实例,当对象成为垃圾对象,被gc回收时,会调用destroy方法,在tomcat中一个servlet被创建实例后只有服务器重启才会成为垃圾对象•其中init,service,destroy三个方法被称为Servlet的生命周期关于doGet和doPost方法•doGet方法对应的客户端发起的get请求•doPost方法对应的是客户端发起的post请求•其中除了设置formmethod=“post”提交表单时post请求之外,其他的如formmethod=“get”或者直接通过URL访问Servlet均属于get请求•我们应该覆盖doGet或者doPost方法来实现功能,而尽量不去覆盖init,service方法get和post两种请求方式GETPOST传递数据的方式追加在URL后面在请求正文中作为消息主体一起发送安全性不安全安全数据大小受到URL长度限制,多了丢失数据长度几乎无限制字符集一种特殊的URL编码ISO单实例多线程•只有第一次访问Servlet的时候会创建Servlet对象的实例•当其他客户端访问相同的Servlet的时候,均使用的是同一个对象,每一个客户端都是一个独立的线程第3章请求对象和响应对象请求对象:HttpServletRequest接口•javax.servlet.http.HttpServletRequest接口•这个接口继承了javax.servlet.ServletRequest接口,包含了所有请求的信息,例如请求的来源,报头信息,客户端传给服务器端的参数数据等等。HttpServletRequest接口常用方法•publicStringgetParameter(Stringkey)–获得指定参数名对应的值,需要注意的是如果参数不存在,返回一个null值,单选按钮和复选按钮如果没有选择任何值返回null,其他表单控件返回空字符串。•publicString[]getParameterValues(Stringkey)–如果一个参数可以返回多个值,比如复选框集合,则可以用此方法获得对应参数的所有值,复选按钮如果没有选择任何值返回null•publicEnumerationgetParameterNames()–此方法返回一个Enumeration对象,包含对应请求的所有参数名字列表HTTP请求•客户端向服务器端发起的http请求由三部分组成–请求行–消息报头–请求正文HTTP请求——请求行•请求行包括方法符号和URI和协议的版本,例如–GET/J5EE/ThreeServlet?deptno=10HTTP/1.1(CRLF换行)–POST/J5EE/Request1ServletHTTP/1.1(CRLF换行)HTTP请求——消息报头•消息报头包括很多客户端的信息,例如accept=image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/msword,application/vnd.ms-powerpoint,application/vnd.ms-excel,*/*referer==zh-cncontent-type=application/x-=gzip,deflateuser-agent=Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)host=localhost:7777content-length=148connection=Keep-Alivecache-control=no-cache常见消息报头解释•Cache-Conctrl缓存指令一般设置为no-cache•connection连接形式最常见Keep-Alive连接形式•accept表示客户端可以接收哪些类型的信息例如text/html表示接收html,*/*表示任何类型•accept-encoding客户端支持的编码•accept-language客户端语言种类,可以在internet选项——“语言”中设置,可以判断这个值来决定显示什么语种的网页•host请求资源的主机和端口号•user-agent获得客户端操作系统信息和浏览器信息•referrer页面来源•content-length发送的请求正文的长度HTTP请求——请求正文•请求正文就是请求最后的内容,如果用POST发送数据的话可以看到请求正文的内容,用的是ISO编码,GET方法发送数据没有请求正文,GET的传递的数据是追加在URL后面的,并且都是要先转换为ASCII编码•例如username=tom&age=27&schoolLevel=%E5%88%9D%E4%B8%AD&skill=java&skill=c%2B%2B&skill=delphi&myInfo=hellorequest对象-请求报头相关的方法•StringgetHeader(Stringname)–取得name报头的值•EnumerationgetHeaderNames()–取得所有报头的名字显示所有的请求报头信息Enumeratione=request.getHeaderNames();while(e.hasMoreElements()){Stringkey=e.nextElement().toString();Stringvalue=request.getHeader(key);System.out.println(key+=+value);}request对象的其他方法//获得WEB应用路径out.
本文标题:JSP&Servlet课件1
链接地址:https://www.777doc.com/doc-6226115 .html