初识JAVA,对servlet的理解

一、WEB开发的简单理解

Web开发是一个指代网页或网站编写过程的广义术语。网页使用 HTML、CSS 和 JavaScript编写。这些页面可能是类似于文档的简单文本和图形。页面也可以是交互式的,或显示变化的信息。编写交互式服务器页面略微复杂一些,但 却可以实现更丰富的网站。如今的大多数页面都是交互式的,并提供了购物车、动态可视化甚至复杂的社交网络等现代在线服务。

通俗的说,web开发就是我们说的做网站.它分为网页部分,和逻辑部分也就是我们说的前台与后台.前台负责与用户的交互,显示数据.用到HTML显示数据,CSS控制样式,JS编写复杂交互.后台编写处理这些逻辑的程序.可以用C#,java,vb.php等语言。

那么我们先来看一个WebApplication的简单交互过程:

对web程序的直观印象是强大.一个应用程序,不用安装,只要有个浏览器,你就能干自己的事了.方便,快捷,干净,环保。这就是目前阶段对它的认识。

上篇文章粗俗的说了一下跟JAVA有关的容器,其中跟JAVA架构有关的容器之一WEB容器就是WEB开发的核心,是servlet,jsp ,bean的容器。其强大的功能,我还说不清,这篇博客主要介绍WEB容器内容之一“servlet”。

二、servlet

1)、Servlet 是提供基于协议的request/response 服务的JAVA类——也就是说Servlet是手工编写的.Class文件。

2)、Servlet必须存放在一个web容器中——这个容器就是一个WEB服务器,tomcat,weblogic等都可以。

3)、就是连接Client(浏览器)和DB(数据库)的一个桥梁,一个控制器。

1、生命周期

在真正的应用程序中,每个WEB 程序每次调用的servlet是一个实例。

我们从client发出一个request (请求),被web服务器接收,然后由这个web服务器开始“管理”Servlet.

其执行步骤如下:

首先,实例化Servlet的构造函数

只实例化一次。这点感觉就是一个设计模式:单例。只要WEB服务器第一次调用这个Servlet,就实例化,其后在不实例化。java中有好多地方都把设计模式给融合了。向java中的监听器(listener)就有“观察者”的作用。当然这些东西还需要我进一步学习。

其次:执行初始化init方法,这个方法只执行一次。

只要这个servlet类别实例化了,就不会再执行这个INIT函数。

然后:根据传递方式(post,get),由servlet中的service 方法选择执行doGet,or doPost。

servlet是继承自HttpServlet。所以,要按照自己的要求重写doGet,doPost方法。

doGet/doPost:函数定义:doGet(HttpServletRequest request,HttpServletResponse  response),都包含两个重要且必须的参数:HttpServletRequest,HttpServletResponse  。一个是用户发来的信息,一个是服务器用来返回给客户的信息。

最后:当这个WEB程序关系,servlet程序销毁。

生命周期如图:

2、接口

请求:HttpServletRequest

从request 发来的字符串中,解析我们需要的参数信息,在servlet中进行逻辑操作。

响应:HttpServletResponse

根据服务器的要求,或者servlet逻辑判断的结构,按照一定的HTML格式发送给客户端。

3、处理数据

处理数据就是生命周期中提到的两种方法:doGet, doPost。

Post ,get的提交这里不再赘述,只要记住,客户端以什么样的方式发送过来,就会在servlet中寻找对应的方式处理数据。

我们来看看具体的实例。

三、实例讲解——这是一个关于用户登陆的例子。

先看一下思路图:

做这个例子前的准备工作:

JAVA环境这个是必须的,然后是安装servlet 的依赖环境/容器-web服务器。这里以tomcat为例。

安装tomcat讲解:http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4be90.html

安装了tomcat之后,我们以前从简:都有记事本来完成我们的工作:

		/* 1、HTML */
		<html>
			<head>
				<title>登陆</title>
			</head>
			<body>
				<form action ="loginServlet">
					用户名:<input type ="text" name="username"><br>
					密码: <input type ="password" name=="password"><br>
					<input type ="submit" value="登陆">
				</form>
			</body>
		</html>
		/* 2)Servlet */
			import java.io.*;
			import java.servlet.*;
			import javax.servlet.http.*;

			public class loginServlet extends HttpServlet{

				public void doGet(HttpServletRequest request,HttpServletResponse  response)
				throws  ServletResponse,Ioexception {

				String username=request.getParameter("username");
				String password=request.getParameter("password");

				System.out.println("username="+username);
				System.out.println("password="+password);

				response.setContentType("text/html;charset=GB18030");

				response.getWriter().println("登陆成功!");
				}
			}
		3)XML
			<?xml version ="1.0" encoding ="ISO-8859-1"?>
			<web-app xmlns="http://java..sun.com/xml/ns/j2ee"
				xmlns :xsi="http://www.w3.org/2001/XMLSchema-instance"
				xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee"http://java.sun.com./xml/ns/j2ee/web-app_2
				version="2.4">

				<servlet>
					<servlet-name>Myservlet</servlet-name>
					<servlet-class>LoginServlet</servlet-class>
				</servlet>

				<servlet-mapping>
					<servlet-name>Myservlet</servlet-name>
					<url-pattern>/loginServlet</url-pattern>
				</servlet-mapping>
			</web-app>

 先编译loginservlet .java,使其变成.class文件。

文件归位:    这些东西写好以后,还需要:归位。一个完整的WEB Application的目录:

子文件夹:WEB-INF

Lib:存放第三方的东西,如Oracle,这里没有用到。

Class:存放一些JAVA的class类。即这里的loginservlet.class类。

XML配置文件——login.xml。

html文件——————与WEB-INF 在同一级目录中,这里的login.html

注意:1、用到了外来的东西:数据库驱动,还有数据库helper。这些东西必须要拷贝到  WEB Application 的lib下。

每次在Tomcat中添加新东西,必须重新启动,才能被加载。

好了,到这里,归位以后,你就可以运行你的程序了。看看效果如何。自己动手试一下吧。

初识JAVA,对servlet的理解

时间: 2024-10-21 22:39:58

初识JAVA,对servlet的理解的相关文章

初识JAVA反射&lt;一&gt;_0626

反射 一.最开始接触javaSE的时候就没有怎么学过反射,感觉好难,老师讲的也很晦涩,然后就没有然后了,最近项目中用到了AOP切面编程,全都是运用的反射,不学不行了,索性问问过来人. 1.一种说法是java反射实际上就是转换,讲java代码转换为二进制. 2.第二种说法就是将javaBean什么的转换成你需要的形式. 现在给我的想法,我觉得在SpingMVC上就用到了反射,我前台的ajax传过来的值,可以直接传到我的Controller的参数中得类,比如说, $.ajax{ .... data:

【Java】Servlet 工作原理解析

Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求.本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请

java复习--初识java

1. 初识Java 1.什么是Java? Java是一门计算机语言,属于高级语言,是SUN公司(已经被Oracle公司收购)于1995年推出的一门高级语言. 为了使软件开发人员针对特定的市场进行开发,SUN公司将Java分为三个技术平台,分别是JavaSE.JavaEE.JavaME JavaSE(Java Platform Standard Edition)标准版,是为开发普通桌面应用程序提供的解决方案,JavaSE是三个平台中最核心的部分,JavaEE和JavaME都是从JavaSE的基础上

初识Java Web

初识Java Web 系统学习Java Web也有一周时间了,整理一下这一周中接触到的新概念以及根据这一周的所学知识完成的一个基于JSP+Servlet+Java Bean+MySql的留言板Demo 几个概念 tomcat tomcat是一个"Web App Server",底层是Socket的一个程序,是JSP/Servlet的一个容器,简单来说,当我们在我们电脑本地编写HTML,css时,我们写的页面只能自己访问,别人不能远程访问我们写的页面,而tomcat就是一个能让别人访问自

畅销书对Java中Iterator的理解误区

声明:本博客为原创博客,未经允许,不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/28110615 最近放假,闲来无事,便翻看以前看过的一些书,竟然发现有些书本(甚至是一些畅销书)对Java中Iterator有很大的误解,比如某畅销书在Collection那一章有这么一句话:"当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集

【转】java提高篇(二)-----理解java的三大特性之继承

[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大

Java 基础:认识&理解关键字 native 实战篇

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 泥瓦匠初次遇见 navicat 是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个navicat呢?这是我所要学习的地方.所以今天泥瓦匠想要总结下navicat. 一.认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯.比如解决某一个方案都喜欢就单单这

如何使用Java、Servlet创建二维码

归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指数上升. 让我们来看看QR码的简要概述,以及如何在Java中生成它们. QR码介绍 QR码(Quick Response 快速响应码)是矩阵条形码(或二维码)的一种类型,最先为于汽车行业而设计.得益于其快速读取性和较大的存储容量,QR码开始在汽车行业以外流行.图案是在白色背景上由有序排列的黑色方块组

屌丝的第一次博客 初识Java

大家好, 我是第一次玩这个博客,首先我要强调的是我不太会说话!如果有什么得罪的地方,你TM的来打我啊?(*^__^*) 嘻嘻!!! 前面只是和大家开了个玩笑,进入正题,本人是第一次接触Java,以后还要向大家请教啊! 现在只学习了Java的第一章“初识Java”,了解了一下Java的由来,以及他的发展史!! 最主要的是我知道了Java的程序结构,以及编写Java程序的注意事项,主要有以下几点: 1.Java的程序结构 public class 类名(必须要和文件名相同){ public stat