• 初识JAVA,对servlet的理解


     一、WEB开发的简单理解


        Web开发是一个指代网页或站点编写过程的广义术语。网页使用 HTML、CSS 和 JavaScript编写。这些页面可能是类似于文档的简单文本和图形。页面也能够是交互式的,或显示变化的信息。编写交互式server页面稍微复杂一些,但 却能够实现更丰富的站点。现在的大多数页面都是交互式的,并提供了购物车、动态可视化甚至复杂的社交网络等现代在线服务。
        
        通俗的说,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容器中——这个容器就是一个WEBserver,tomcat,weblogic等都能够。

    3)、就是连接Client(浏览器)和DB(数据库)的一个桥梁,一个控制器。
       
        1、生命周期
        
            在真正的应用程序中,每一个WEB 程序每次调用的servlet是一个实例。
            我们从client发出一个request (请求),被webserver接收,然后由这个webserver開始“管理”Servlet.
            其运行过程例如以下:
            首先,实例化Servlet的构造函数
                仅仅实例化一次。这点感觉就是一个设计模式:单例。仅仅要WEBserver第一次调用这个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  。一个是用户发来的信息,一个是server用来返回给客户的信息。
            最后:当这个WEB程序关系,servlet程序销毁。
            生命周期如图:
         
        2、接口
        
            请求:HttpServletRequest
                从request 发来的字符串中,解析我们须要的參数信息,在servlet中进行逻辑操作。
                
            响应:HttpServletResponse
                依据server的要求,或者servlet逻辑推断的结构,依照一定的HTML格式发送给client。           
            
        3、处理数据
            处理数据就是生命周期中提到的两种方法:doGet, doPost。
            Post ,get的提交这里不再赘述,仅仅要记住,client以什么样的方式发送过来,就会在servlet中寻找相应的方式处理数据。
            
        我们来看看详细的实例。   

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

            先看一下思路图:

           

        做这个样例前的准备工作:
            JAVA环境这个是必须的,然后是安装servlet 的依赖环境/容器-webserver。这里以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中加入新东西,必须又一次启动,才干被载入。

    好了,到这里,归位以后,你就能够执行你的程序了。看看效果怎样。自己动手试一下吧。

  • 相关阅读:
    子查询
    多表连接
    类型转换和其他函数
    亲测!Jquery2.0不支持IE8-了
    Sass结合Modernizr的使用方法
    子元素绝对定位撑不开父元素的解决方法
    ajax withCredentials在firefox下问题的解释
    记录遇到的IE8兼容性问题汇总
    对于requirejs AMD模块加载的理解
    requirejs 小结
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4281721.html
Copyright © 2020-2023  润新知