Java Web 程序设计之Servlet初探

时间:2022-09-29 09:53:30

Java Web 程序设计之Servlet初探

摘要:随着Web应用业务需求的增多,动态Web资源的开发变得越来越重要,目前,很多公司都提供了开发动态Web资源的相关技术,其中比较常见的有PHP、JSP和Servlet等。基于Java We的动态Web资源开发,Sun公司提供了Servlet和JSP两种技术,接下来就对Servlet技术的相关知识进行详细的探讨。

关键字:Java Web、程序设计、Servlet

一、Servlet概述

Servlet是Servlet Applet的缩写,也就是服务器端小程序的意思,Applet是运行在客户端浏览器上的Java小程序,目前,Applet已经不常用了,而Servlet却在不断发展,已经成为很多框架的技术基础。Servlet是特殊的Java类,Servlet编写必须符合Java规范,而Servlet也有着Java不具有的特性,比如,Servlet没有main方法,它运行在服务器端,它的创建和销毁都是由Servlet容器来完成,比如说Servlet的容器Tomcat。另外,Servlet与HTTP协议联系紧密,使用Servlet可以处理所有HTTP协议的相关内容,这也是Servlet应用广泛的原因之一。

二、Servlet处理流程分析

Servlet处理流程分析以Tomcat服务器为例来阐述Tomcat如何处理客户端请求。Tomcat即是一个Servlet容器,也具有Web Servlet功能,也就是说它有处理HTML页面功能。

1、客户端发送HTTP请求,该请求会首先到达Tomcat内置的Web Server;

2、Web Server接受到请求之后,会将请求转发给Servlet容器;

3、Servlet容器接收到请求后会加载Servlet,产生Servlet实现后会向其传递表示请求的request对象和响应的response对象,然后,servlet对象得到客户端的请求信息,并进行相应的处理;

4、Servlet处理请求完毕后,有可能会传递给其他的Servlet处理;

5、全部处理完成之后,将处理结果发送给请求对象,这样一个Servlet请求处理完毕了。

三、Servlet的执行流程

1、init( )方法只被调用一次,且只有该方法成功调用后Servlet才处于服务器状态;

2、service( )方法处理客户端请求,该方法会被执行多次,而执行的次数与请求次数有关;

3、destroy( )方法是Servlet不再使用,容器销毁Servlet实例之前调用该方法,该方法只会被调用一次。

四、Servlet编程实例

1、实例的流程为在登录页面login.jsp搜索用户的信息,将该信息提交至loginServlet.java进行业务逻辑处理,若用户信息校验成功则显示用户登录成功的success.jsp,否则显示error.jsp页面。

2、创建登录页面

(1)添加表单及其组件,在表单上添加一个文本框,name为username,添加一个密码框,name为pwd,添加一个提交按钮,value值为提交,添加一个重置按钮,value值为重置。

(2)修改表单action值为loginServlet,作用是转向用户请求处理页面;method值为post,作用是用于将指定的资源提交到服务器进行处理;onsubmit="return check()",作用是限定转向用户请求处理页面的条件是JavaScript的check( )方法返回值为true。在method的HTTP请求类型中POST和GET最为常用,POST具有重新提交、数据长度无限制、数据类型无限制、URL不可见、安全性高的特点,GET具有不会重复提交、数据最大长度为2018个字符、数据为ASCII类型、URL中可见、安全性差的特点,故POST方法更较为常用。

(3)添加JavaScript脚本,新建check( )方法用于验证用户名和密码的值是否为空,直到都不为空才可提交。

3、创建业务处理页面

(1)修改doGet( )方法,去掉其中所有语句,调用doPost( )方法。

(2)实现doPost( )方法完成业务逻辑处理。

怎样区分是进入以上两个方法中的哪一个呢?打开loginServlet找到它的父类HttpServlet,打开进入大纲视图,即window菜单下的show view选项,选中outline,找到HttpServlet中的service()方法,可以看出该方法能够根据不同的请求方法执行不同的请求操作。

业务处理流程是选用重定向文件,还是请求转发呢?

重定向文件无法获取以前提交的表单数据信息,而请求转发则可以共享一组请求和响应对象,所以,此处选择请求转发实现success.jsp中显示用户信息功能。

(3)配置web.xml文件

添加结点和,两个结点通过loginServlet进行关联,也是两个结点关联的唯一方式,具体如下:

HelloServlet com.xqy.servlet.HelloServlet

HelloServlet

/HelloServlet

4、其他页面

(1)用户登录校验成功页面:建立success.jsp页面,修改该title为登录成功提示页面,在body中输出用户提交的信息,添加返回登录页面的超链接。

(2)用户登录校验失败页面:建立error.jsp页面,修改该title为登录失败提示页面,在body中输出登录失败提示信息。

(3)启动tomcat服务器,部署该项目,打开IE浏览器运行程序。浏览器请求首先发送给loginServlet,loginServlet处理完毕以后会将request对象和response对象传递给success.jsp,这个传递的过程可以称为请求转发。此过程只涉及一次浏览器与服务器的交互,即只有一次请求响应,在转发的过程中共享同一组请求和响应对象。

参考文献:

[1] 《PHP完全自学手册》 作者 宫垂刚等 机械工业出版社

[2] 《PHP从入门到精通》作者陈超 化学工业出版社

作者简介:夏庆英(1980.7-),女,汉族,山东安丘人,讲师,本科,主要从事程序设计语言教学工作。

上一篇:美国创业教育经验借鉴 下一篇:玩耍是宝宝们的天职