1 背景概述
在近期的公司项目开发的过程中,笔者初步学习Servlet的开发、配置与使用,本文主要介绍了Servlet的相关概念以及优势说明并附上笔者开发简单样例。今天将笔者学习的心得总结出来与大家分享,希望能对大家有所帮助。
2 Servlet简介
2.1 基本概念
Servlet是一个供其他Java程序调用的java类,比如tomcat服务器,它不能独自运行,它的运行由servlet引擎来控制和调度。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
2.2 生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
- Servlet 通过调用 init () 方法进行初始化。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 通过调用 destroy() 方法终止(结束)。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
3 优势说明
3.1 CGI 比较
- 性能优化
在传统 CGI 中,如果有 N 个并发的对同一 CGI程序的请求,则该CGI程序的代码在内存中重复装载了 N 次;而对于 Servlet,处理请求的是 N 个线程,只需要一份 Servlet 类代码。在性能优化方面,Servlet 也比 CGI 有着更多的选择。
- 可移植性
Servlet 用 Java 编写,Servlet API具有完善的标准。因此,为 IPlanet Enterprise Server 写的 Servlet 无需任何实质上的改动即可移植到 Apache、MicrosoftIIS 或者 WebStar。几乎所有的主流服务器都直接或通过插件支持 Servlet。
- 功能强大
在Servlet中,许多使用传统 CGI 程序很难完成的任务都可以轻松地完成。例如,Servlet 能够直接和 Web服务器交互,而普通的 CGI 程序不能。Servlet 还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
3.2 JSP 比较
- JVM识别性
Jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)。
- 逻辑控制
Jsp更擅长表现于页面显示,Servlet更擅长于逻辑控制。
- 内置对象
Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
- 客户端响应
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应
4 简单样例
基于DP创建servlet以及对应的文件配置实现用户修改密码的功能
4.1 样例创建
在数通畅联(agileai.com)官网资源分享中下载对应的介质(AEAI DP应用开发平台)
启动服务器HotServer
打开设计器创建项目
- 创建项目填写项目名称以及主包名
- 填写服务器地址端口(HotServer端口为6060),填写服务器用户名以及密码
- 点击“测试连接”按钮
- 服务器连接成功后点击“Next”按钮
- 输入数据库名称以及用户名密码,点击“测试连接”按钮
- 数据库连接成功后点击“初始化数据”,弹出如下界面:
- 点击“Finish”按钮完成工程的创建
4.2 功能代码
- RedirateServlet
用于点击后重定向至修改密码页面,功能代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String jspName = "/jsp/uui/ModifyUserPassword.jsp"; try { this.getServletContext().getRequestDispatcher(jspName).forward(request,response); } catch (ServletException | IOException e) { e.printStackTrace(); } }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
|
- UpdatePwdServlet
用于修改密码页面提交后,实现密码修改的功能,主要功能代码如下:
1) 修改密码
2) 校验密码
4.3 文件配置
在web.xml中添加创建的Servlet的配置
<servlet> <servlet-name>UpdatePwdServlet</servlet-name> <servlet-class>com.agileai.text.servlet.UpdatePwdServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UpdatePwdServlet</servlet-name> <url-pattern>/updatepwd</url-pattern> </servlet-mapping>
<servlet> <servlet-name>RedirateServlet</servlet-name> <servlet-class>com.agileai.text.servlet.RedirateServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RedirateServlet</servlet-name> <url-pattern>/redirate</url-pattern> </servlet-mapping> |
4.4 演示效果
浏览器输入http://localhost:6060/servlet访问效果如下:
点击修改密码,跳转到修改密码页面:
填写用户名,密码、新密码后,修改成功页面如下:
点击登录。跳转到登录页面,输入用户名以及新的密码进行登录
如果原密码输入错误将跳转至错误提示页面
5 个人总结
笔者作为数通畅联的一名技术人员在项目中初步接触Servlet,学习Servlet的开发与配置,并开发简单的样例与大家分享,笔者认为Servet虽然可以多线程响应,但每开发一个Servlet都需要进行对应的配置很是繁琐。如果希望了解数通畅联更多的产品信息欢迎访问数通畅联官网(agileai.com)。
6 附件及说明
附件为servlet样例工程,导入AEAI DP部署后即可运行使用。附加及文档地址:https://pan.baidu.com/s/1pLbfcON
相关推荐
在这个"Java servlet初步使用"的主题中,我们将探讨Servlet的基本概念、生命周期、会话管理以及如何在实际项目中应用它们,比如实现一个简单的网上书店功能。 1. **Servlet基本概念** - Servlet是一个Java类,遵循...
通过J2-03第三课 servlet技术初步入门的学习资料,你可以进行以下实践: 1. 创建一个简单的Servlet,处理GET请求并返回欢迎消息。 2. 学习如何通过Servlet传递参数,并在Servlet中处理这些参数。 3. 理解Servlet的...
实验5主要涵盖了Servlet的基本概念和操作,包括Servlet的创建、生命周期的理解以及初始化参数的设置与读取。Servlet是Java Web开发中处理HTTP请求的核心组件,它扩展了服务器的功能,允许开发者编写动态的、交互式的...
JavaServlet程序设计初步是IT领域中关于Web开发的一项基础技术,它是Java EE(企业版)平台的一部分,用于构建动态Web应用程序。本节将深入探讨JavaServlet的核心概念、工作原理以及如何进行基本的程序设计。 一、...
JAVA100例之实例79Servlet的初步学习
Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送一个请求时,Servlet会接收到这个请求,处理数据,然后返回响应。Servlet的主要生命周期方法包括:`init...
刚刚接触java时做的日志管理系统,做的很简单,适合初学着 servlet servlet servlet servlet servlet日志管理系统 servlet servlet servlet servlet servlet日志管理系统 servlet servlet servlet servlet servlet...
当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...
Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...
Servlet是Java Web开发中的核心组件,它是一种服务器端的接口,用于处理来自客户端(通常是Web浏览器)的请求并返回响应。在Java EE中,Servlet API是实现这些功能的基础框架。`javax.servlet.Servlet`是Servlet的...
Servlet API还提供了Filter的概念,允许开发者在请求到达Servlet之前和响应离开Servlet之后对其进行拦截和处理。`javax.servlet.Filter`接口定义了`doFilter()`方法,这使得我们可以实现如认证、日志记录、数据过滤...
Servlet是Java平台上的一个核心技术,用于构建动态Web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端Java程序如何与HTTP协议交互,以及如何处理来自Web客户端的请求并生成响应。这份"Servlet...
### Servlet核心知识点详解 #### 一、Servlet简介与工作原理 Servlet是一种运行在服务器端的Java应用程序,专门用于处理客户端的HTTP请求并生成响应。它作为Web应用的重要组成部分,能够提供动态网页服务,实现了...
Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....
Servlet 线程安全问题 Servlet 线程安全问题是指在使用 Servlet 编程时,如果不注意多线程安全性问题,可能会导致难以发现的错误。Servlet/JSP 技术由于其多线程运行而具有很高的执行效率,但这也意味着需要非常...
<servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservice </servlet...
### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...