中科院Java Web开发视频教程笔记——第3讲

1 Servlet 概述

1)Java技术细节分成三个子平台:

Java SE:(Standard Edition)标准版的Java平台,基础平台为下面两个平台提供底层的技术支持,同时桌面程序的编写也用此平台。

Java EE:(Enterprise Edition)Java的企业版平台,开发大型的企业级应用,包含java web开发。

Java ME:(Micro Edition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。

2)一个Servlet就是一个标准的服务器端应用程序,它可以执行商务逻辑,处理HTTP请求。

需要运行在服务器端;需要Web容器的支持;Java编写

javax.servlet.Servlet  核心接口,定义了servlet中必须要实现的接口。我们一般不直接实现这个接口,而是继承实现这个接口的类。

javax.servlet.GenericServlet 已经实现了Servlet接口的类

javax.servlet.http.HttpServlet 我们一般选择这个类继承,其中的doGet和doPost方法是最重要的。

3)Servlet处理流程

(3.1)客户端使用浏览器提交对Servlet的调用的Get或者Post请求。通过Servlet的调用url地址(get请求)或者先请求HTML页面填表单(post请求)提交请求。

(3.2)服务器接到请求之后,如果该Servlet是第一次被调用,这个类将被加载并实例化这个Servlet,生成对象。

(3.3)服务器调用该Servlet对象的service()方法

(3.4)Servlet产生动态回复内容,放在response中

(3.5)服务器发送回复内容给客户端的浏览器

2 手工编写Servlet

具体步骤:

1)编写Servlet源程序,生成class文件

首先,新建java文件,构建一个继承自HttpServlet的类,如HelloServlet,在此类中实现

doGet(HttpServletRequest request,HttpServletResponse response) 和/或

doPost(HttpServletRequest request,HttpServletResponse response)方法。

通过上面两种方法实现用户访问的结果。然后,编译生成class文件。

2)建立Web应用目录结构

新建Web应用目录目录,如hello,在里面建WEB-INF目录,然后再在WEB-INF目录中建classes目录和lib目录。calsses目录用来放单个的类文件,而将类组成的类库jar文件放入lib中。

3)编写web.xml文件

在WEB-INF目录下新建web.xml文件(注意这里的目录结构都是指定的,一定不能乱放,包括classes目录和lib目录)。web.xml的开头的内容均为一些xml等的声明,比较麻烦易出错,最好直接拷贝现有的web.xml文件中的内容。然后在 中间添加对servlet的声明和映射配置。

hello    //当前servet的名字,任意的

com.hello.HelloServlet//此servlet对应的类,包括包明,不包括后缀名

                           //加映射,通过映射路径访问servlet

hello //要映射的servlet名字

/myhello  //通过哪个路径访问,访问路径

4)运行Servlet

将我们第一步编写完的类,连同它的包名(目录)一起copy到hello的classes目录下;然后把整个hello目录下的内容(这是一个web应用)移到到tomcat的webapps目录下。启动tomcat,启动浏览器,输入url为当前servlet的地址(http://localhost/hello/myhello ,其中localhost指本机,如果是其他远程机器输入ip地址;第一个hello为应用的上下文,即应用的名字;myhello为映射路径,与中间内容一致即可,是任意的),调用这个servlet。

3 通过Eclipse编写Servlet(Eclipse本身是不带servlet能力的需要装插件MyEclipse)

具体步骤:

首先对Eclipse进行配置,使通过Eclipse就能够启动和停止tomcat的运行。MyEclipse本身自带了一个Tomcat的服务器和数据库,但是不太好用。可以首先去掉Eclise自带的Tomcat:选择Restart server按钮下的Tomcat,选configure,使之disable;然后选择Configure Server添加我们自己的Tomcat6.x。

1)新建Web Project

新建Web Project(注意不是Web Server Project)如webProject1。建好之后会自动构建目录结构,源程序放在src目录下。

2)新建Servlet文件

然后在此工程中新建servlet文件,servlet向导会自动构建相应的类如FristServlet框架和web.xml文件,只需选择要类名、实现的方法名,目录名之类的就可以了,很方便!

3)部署Web应用程序

选择Project Deployments,选要部署的project,然后点击Add按钮;然后进入New Ddeployment页面,选择server、Deploy type,Deploy Location。

4)运行输出

启动Tomcat ,启动浏览器输入地址回车,即向servlet发送Get请求,调用doGet()方法,将相关信息封装在HttpServletRequest 对象中。

5)Servlet文件的调试

通过在浏览器中输入URl调试

4 Servlet的生命周期

和生命周期有关的方法:是服务器调用,我们应用程序不应该掉用

init()方法

service()方法:我们实现的doPost(),doget()方法就是通过service()方法调用的

destroy()方法

5 Servlet获取初始化的参数

具体步骤

1)新建GetInitParameterServlet类

在web.xml中增加:


  GetInitParameterServlet
  com.jing.webProject1.GetInitParameterServlet
 
  repeat
  10
 

在GetInitParameterServlet类中的doGet()方法中用Integer.parseInt(getInitParameter("repeat"))得到repeat的值,注意此方法的输出是字符串,这里应用Integer.parseInt()方法将其转化为整数。

2)运行输出

注意:关于中文乱码问题应在doGet()方法中修正response.setContentType("text/html charset = utf-8");

6 Servlet 获得服务器的运行参数(服务器的ip地址,服务器名,端口号,协议名,协议版本,请求方式,请求的URL,上下文路径,Servlet路径)

步骤:

1)新建GetServletInfoServlet类

通过doGet()或doPost()方法的第一个参数HttpServletRequest request对象获取:

request.getServerName()获取服务器的名字

request.getProtocol()获得协议名

request.getRemoteAddr()获得服务器的ip地址…

2)运行输出

7 Servlet 获得头信息(根据http协议用户发送过来的请求有一个头信息,包含当前访问者的浏览器型号、版本,编码格式操作系统等等信息)

通过doGet()或doPost()方法的第一个参数HttpServletRequest request对象获取:

request.getHeaderNames()       返回参数的名字作为下面函数的参数传入

request.getHeader(String str)   返回参数对应的值

你可能感兴趣的:(中科院Java Web开发视频教程笔记——第3讲)