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

我的学习笔记-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  
讲的太笼统了

相关推荐

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

    JSP-Servlet学习笔记第2版,详细介绍了jsp和servlet,及其原理,包含大量实例

    方立勋servlet学习笔记

    方立勋servlet学习笔记

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

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

    servlet工作原理

    该资源是达内java web 培训课程的servlet部分内容,学习相关视频请联系达内相关人员,本人提供的仅仅是配套视频自己整理的笔记。

    Java学习笔记-个人整理的

    {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{subsection.1.4.2} {1.4.3}\texttt {char}}{24}{subsection.1.4.3} {1.4.4}转义字符}{25}{subsection.1.4.4} {1.4.5}Boolean ...

    servlet--tomcat--jsp笔记(凯达培训)

    笔记比较详细,包括原理,使用方法,并且配有图进行解释!是不可多得的学习笔记!

    JSP网络编程学习笔记源代码 part2

    全书内容分为7篇,共23章,第一篇为“JSP应用开发基础”,主要讲述JSP技术背景情况、JSP技术的基本原理及开发环境的搭建;第二篇为“Servlet核心技术”,主要讲述Servlet的技术特点、请求和响应、数据共享、会话跟踪...

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    Java/JavaEE 学习笔记

    Servlet学习笔记..............212 Servlet前言.............212 第一章 Servlet Basic ........................214 第二章 Form表单.219 第三章 Servlets生命周期................222 第四章 资源访问 ..............

    SpringBoot学习笔记完整教程

    Spring Boot 学习笔记,包括底层实现原理及代码实战,非常齐全,助你快速打通 Spring Boot 的各个环节。 1. Spring boot helloworld 2. Spring boot 返回 json 数据 3. Spring boot 使用其他 json 转换框架 4. ...

    J2EE学习笔记

    共享本人近几年学习工作总结文档。 J2EE学习笔录 2 第一章:JAVA的输入输出流 2 1.1:概述: 2 1.2:主要输入输出类 3 1.3例程 建立聊天室: 5 第二章:JAVA设计模式 18 2.1:创建型设计模式 19 2.2:结构型设计模式 32...

    J2EE学习笔记(J2ee初学者必备手册)

    Servlet学习笔记..............212 Servlet前言.............212 第一章 Servlet Basic ........................214 第二章 Form表单.219 第三章 Servlets生命周期................222 第四章 资源访问 ..............

    Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记)

    本Jva(Java)学习笔记是一份深入且详尽的教程,不仅包括Java的基础知识,还融入了作者的个人见解和实际编程经验。内容涵盖: Java基础:数据类型、控制流、异常处理。 面向对象编程:类与对象、继承、多态、封装。...

    java8源码-akangaroo:学习笔记,完善中

    学习笔记较长,如果想查看文章的目录,chrome浏览器可以配合简悦插件使用,或者下载到本地使用Typora打开。 :hot_beverage: Java基础 Java容器 Java并发 数据结构和算法 数据结构 树 图 算法 分治 动态规划 回溯 ...

    整理后java开发全套达内学习笔记(含练习)

    原则,原理,主义 ['prinsipl] priority n. 优先级 [prai'ɒriti] process n. 程序, 进程 ['prɒses] protected (关键字) 受保护的,私有的 [prә'tektid] provide v.规定(供应,准备,预防)[prә'vaid] refer to v....

    jsp 公司管理系统的制作原理

    jsp 公司管理系统的制作原理JSP+Servlet+JavaBean

    博客::laptop:学习笔记:notebook_with_decorative_cover:学习笔记

    作为自己学习java开发写博客用的仓库。希望自己能每天坚持。大概内容:java基础Mysql Redis Spring SpringMVC Mybatis activeMQ servlet JVM原理达博春云JUC算法设计模式

    Spring Boot学习资料教程.docx

    本教程为笔者学习 Spring Boot 时写的笔记,适合没有接触过此框架的新手。内容非常全面,其中的代码都能运行,笔者都做了验证。本教程是简单笔记记录,从零到一学习 Spring Boot。本教程涉及的知识如下: Hell World...

    简陋的JavaWeb学生公寓管理系统 Servlet+JSP+MySql+Layui.zip

    文档与笔记:整理了开发过程中的关键决策、技术难题以及学习心得,有助于深入理解项目背后的思考过程。 二、适用人群 这个项目资源包适用于即将毕业或已经毕业,希望通过实际项目经验增强自己JavaWeb开发能力的同学...

Global site tag (gtag.js) - Google Analytics