`
mixer_a
  • 浏览: 363687 次
社区版块
存档分类
最新评论

我的学习笔记-Servlet简介及工作原理

阅读更多

 

 

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

Servlet简介

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

Servlet工作原理

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

JSP页面代码

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
	<form action="http://127.0.0.1:8080/JavaWebExercise/loginServlet" method="get">
		name:<input type="text" name="username"/>
		<input type="submit" value ="submit">
	</form>
  </body>
</html>

 

LoginServlet代码 

 

package com.foxmail.xxy668;

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);
	}

}

 

 配置文件代码

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>MyServlet</servlet-name>
  	<servlet-class>com.foxmail.xxy668.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>MyServlet</servlet-name>
  	<url-pattern>/loginServlet</url-pattern>
  </servlet-mapping>
</web-app>
 

 

 

过程详解

1、在jsp页面中提交表单到Tomcat,请求的urlhttp://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.foxmail.xxy668包下面的LoginServlet类。

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

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

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

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

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

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

12、输出html字符串

13、将html返回给Tomcat服务器

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

整个调用的过程如下图所示



 

22
6
分享到:
评论
13 楼 cd_huangbo 2012-05-21  
只是一个简单的工作流程,貌似没涉及到原理讲解。
12 楼 万俟辉夜 2012-05-21  
总结的很好。。。
11 楼 long_yu2 2012-05-21  
10 楼 tiantiangeq 2012-05-21  
JSP+JavaBeanstalk+Servlet成为实现MVC模式的一种有效的选择。

有嘛?

Struts
hibernate
Spring 等框架咋还大行其道?
9 楼 HappyBoys 2012-05-20  
,,,
8 楼 w156445045 2012-05-20  
JSP+JavaBeanstalk+Servlet成为实现MVC模式的一种有效的选择。

有嘛?

Struts
hibernate
Spring 等框架咋还大行其道?
7 楼 tag13346 2012-05-19  
Servlet是一种服务器端的一种组件
6 楼 xbwolf 2012-05-19  
Servlet是编程语言?
5 楼 tag13346 2012-05-19  
第一句话就有问题。。
4 楼 zzq19860626 2012-05-19  
呵呵 ,还不错了
3 楼 cuippan 2012-05-19  
2 楼 haoyl_bj 2012-05-18  
不错,呵呵,明白了
1 楼 jyjava 2012-05-18  
讲的太笼统了

相关推荐

    java-servlet学习笔记

    在本篇学习笔记中,我们将深入探讨与Java Servlet相关的知识点,包括其工作原理、生命周期、配置以及实际应用。 首先,了解Servlet的工作原理至关重要。当一个HTTP请求到达服务器,Web容器(如Tomcat)会识别请求的...

    jsp-servlet笔记源码

    总的来说,这份"jsp-servlet笔记源码"提供了一个实用的学习资源,结合理论知识与实践代码,对于提升Java Web开发技能大有裨益。通过深入研究,开发者不仅可以熟练掌握JSP和Servlet的使用,还能提升对Web应用架构设计...

    JSP-Servlet学习笔记第2版.pdf

    由于直接学习笔记的内容没有给出具体的实例代码和详细解释,所以这里只提供了理论层面的知识点。如果需要学习具体实现,可以寻找相关的教程和项目实践来加深理解。同时需要注意的是,由于JSP/Servlet技术相对老旧,...

    林学良Jsp&Servlet学习笔记

    **林学良Jsp&Servlet学习笔记**: 这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们...

    方立勋servlet学习笔记

    ### 方立勋servlet学习笔记知识点总结 #### 一、Servlet概述与生命周期 - **Service方法**:在Servlet中,`service`方法是核心方法之一,由服务器调用来处理客户端的请求。它根据HTTP请求类型(如GET或POST)调用...

    servlet笔记,servlet的总结

    #### 一、Servlet简介与工作原理 Servlet是一种运行在服务器端的Java应用程序,专门用于处理客户端的HTTP请求并生成响应。它作为Web应用的重要组成部分,能够提供动态网页服务,实现了服务器端的业务逻辑处理。与...

    jsp/servlet个人学习笔记

    学习 JSP 和 Servlet 要注重理论与实践相结合,不仅要理解它们的工作原理,还要通过编写实际项目来提升技能。同时,不断关注新技术,如 Spring Boot 和微服务架构,这将有助于你更好地适应 Java Web 开发的未来趋势...

    webservice学习笔记 -- XFrie

    【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    JSP Servlet 学习笔记源码

    本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...

    SPBT 源码学习笔记 - spbt-0707-test-java-web

    【标题】"SPBT 源码学习笔记 - spbt-0707-test-java-web" 指的是一份关于SPBT(可能是某个特定软件或框架的缩写)源码的学习资料,专注于测试和Java Web开发部分。这份笔记可能详细解析了SPBT在Java Web环境中的工作...

    servlet学习笔记 servlet_note

    本篇笔记将深入探讨Servlet的基本概念、工作原理、生命周期以及在Web应用程序中的角色。 首先,了解HTTP基础至关重要。HTTP(超文本传输协议)是Web上客户端(如浏览器)与服务器之间的通信协议。HTTP请求由浏览器...

    Servlet学习笔记2

    ### Servlet学习笔记2 在Java Web开发中,Servlet是一种重要的技术,它负责处理客户端的请求并生成响应。本文档将围绕“Servlet学习笔记2”这一主题进行深入探讨,旨在为读者提供一个清晰的学习路径和实践指导。 #...

    jsp&servlet;学习笔记_第2版_光盘(看评论酌情下载)

    学习笔记"及提供的源码,开发者可以全面了解JSP和Servlet的工作原理,学会如何创建动态Web应用,同时提升解决问题和实际开发的能力。结合实际项目练习,能够更好地将理论知识转化为实践经验,从而在Java Web开发领域...

    Servlet学习笔记5

    ### Servlet学习笔记5 #### 一、Servlet与Filter的基本概念及使用 在Web开发中,Servlet作为Java EE标准的一部分,在处理HTTP请求时扮演着至关重要的角色。而在Servlet的应用过程中,Filter是一个非常重要的组件,...

    Servlet笔记

    ### Servlet核心概念与实践 ... ... ...请求参数通常出现在URL中。...- **POST请求**:如`POST /servlet/sery HTTP/1.1`...通过深入学习Servlet的工作机制,开发者可以更好地控制Web应用程序的行为,从而提高应用的安全性和性能。

    java的servlet学习笔记,深入了解servlet的原理以及运用

    主要讲述的是servlt以及jsp的主要内容,详细的javaweb学习笔记,能够让小白完完全全的了解servlet的运行机制,并且能够深入学习javaweb

    学习Servlet课程笔记(附源代码)

    【Servlet课程笔记】 ...以上就是学习Servlet的基础内容,包括开发环境的搭建、Servlet的概念、功能、工作原理以及基础的Servlet应用。通过这些,你可以开始构建简单的Web应用,并逐步深入到更复杂的Java Web开发中。

    DWR学习笔记-HelloWorld篇

    【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...

Global site tag (gtag.js) - Google Analytics