热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

servlet简介_动力节点Java学院整理

Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分。本文给大家简单介绍servlet的基本知识,感兴趣的朋友一起看看吧

Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分(其实学到现在J2EE里面的13个标准才接触了3个,他们分别是EJB,Servlet,JSP),Servlet技术的推出扩展了Java语言在服务器端开发的功能,巩固了Java语言在服务器端开发过程中的地位,而且现在使用非常广泛的JSP技术也是基于Servlet的原理,JSP+JavaBeanstalk+Servlet成为实现MVC模式的一种有效的选择。

Servlet简介

和前面学习的JavaBean一样,Servlet本质上也是Java类,编写Servlet需要遵循java的基本语法,但是与一般的Java类不同的是Servlet是只能运行在服务器端的Java类,而且必须遵循特殊的规范,在运行过程中有自己的生命周期,这些特性都是Servlet所独有的。另外Servlet和HTTP协议是紧密联系的,所以使用Servlet几乎可以处理HTTP协议所有方面的内容,这也正是Servlet受到开发人员青睐的最大原因。

Servlet工作原理

一个简单jsp+servlet的登录例子

JSP页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
 
 
  
  
  
   
    name: 
     
   
  
 

LoginServlet代码

package com.bjpowernode.test; 
import java.io.IOException;  
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse;  
public class LoginServlet extends HttpServlet { 
  @Override 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    String username=request.getParameter("username"); 
     
    System.out.println("username="+username); 
     
    response.setContentType("text/html;charset=UTF-8"); 
     
    response.getWriter().println(username+" login success"); 
  } 
  @Override 
  public void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
    doGet(req, resp); 
  } 
} 

配置文件代码

<&#63;xml version="1.0" encoding="UTF-8"&#63;> 
 
   
  
  index.jsp 
  
  
  MyServlet 
  com.bjpowernode.test.LoginServlet 
  
  
  MyServlet 
  /loginServlet 
  
 

过程详解

1、在jsp页面中提交表单到Tomcat,请求的url为http://127.0.0.1:8080/JavaWebExercise/loginServlet

2、当请求达到Tomcat后服务器截取url获得客户端所请求的项目名称(这里为JavaWebExercise)。

3、找到项目后再根据url截取所对应的servlet访问名称,这里为loginServlet。

4、根据loginServlet找到Servlet-name,这里为MyServlet。

5、根据Servlet-name找到对应的class文件,这里为com.bjpowernode.test包下面的LoginServlet类。

6、采用反射实例化找到的servlet类。

7、根据请求的类别,调用servlet父类中service方法进行分发,

8、根据service的分发调用相应的doGet/doPost(这里我们调用的是get方法)。

9、取得传递过来的参数值。

10、调用其他javaBean完成业务逻辑。

11、完成业务逻辑返回给Servlet。

12、输出html字符串

13、将html返回给Tomcat服务器

14、通过得到的html渲染页面。


推荐阅读
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
author-avatar
披着羊皮的狼19972010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有