初识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>
文件归位: 这些东西写好以后,还需要:归位。一个完整的WEB Application的目录:
Lib:存放第三方的东西,如Oracle,这里没有用到。
Class:存放一些JAVA的class类。即这里的loginservlet.class类。
XML配置文件——login.xml。
html文件——————与WEB-INF 在同一级目录中,这里的login.html
每次在Tomcat中添加新东西,必须重新启动,才能被加载。
好了,到这里,归位以后,你就可以运行你的程序了。看看效果如何。自己动手试一下吧。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。