1.简单介绍

Java Servlet 是执行在 Web server或应用server上的程序,使用 Servlet。您能够收集来自网页表单的用户输入。呈现来自数据库或者其它源的记录。还能够动态创建网页。

作用:Web 浏览器的请求和 HTTP server上的数据库或应用程序之间的中间层

简单说就是接受client传递的输入然后进行处理(链接数据库等)然后在将对应的结果(html等)在返回给client显示相当于MWC中的Ccontroller层。

Servlet程序的基本执行过程时序图:以下通过一个登陆实例来简单说明下。

2.登录实例

   编写步骤:

      1.建立LoginSerlvet并继承HttpServlet

      2.覆盖doGet或doPost方法,编译

      3.在web.xml配置文件里进行配置

      4.写html登录页面并放入Tomcat中webapps中相应web项目中

      5.启动《Tomcatserver》,输入网址:http://127.0.0.1:8080/text_servlet/login.html执行程序

《apache-tomcat-5.5.26》中有相应的程序,配置好Tomcat相应的环境变量就能够执行。



 LoginServlet.java

<span style="font-family:SimSun;font-size:14px;">
import javax.servlet.http.*;
import javax.servlet.*; public class LoginServlet extends HttpServlet{ protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
java.io.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");
response.getWriter().println("login Success!");
}
}</span>

 web.xml

<span style="font-family:SimSun;font-size:14px;">
<?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_4.xsd"
version="2.4">
<servlet>
<servlet-name>MyServlet</servlet-name> <!--servlet内部名称-->
<servlet-class>LoginServlet</servlet-class> <!--自己编写的servlet类名称。假设有包必须写完毕-->
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name> <!--servlet内部名称-->
<url-pattern>/loginServlet</url-pattern> <!--供client訪问的名称必须以/开头-->
</servlet-mapping>
</web-app>
</span>

 login.html

<span style="font-family:SimSun;font-size:14px;">
<html>
<head>
<title>登录</title> </head>
<body>
<form action="loginServlet">
用户:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html></span>

执行结果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



时序图:

    对第7步:service的说明:在第6步中在对LoginService实例化后会调用调用父类HttpServlet中service方法来确定client进行的是dopost提交还是doget提交,然后在转到子类相应的方法。假设子类中没有相应的提交方法,会调用HttpServlet中的父类的方法。

HttpServletRequest: 包装client提交过来的全部数据。1.client的IP地址  2
.client的表单数据  3.Cookies信息 

HttpServletResponse:包装了向client写出的数据。    1.将数据库信息输出 
2.向client输出图片html等

3.servlet生命周期

 生命全过程:

    1.载入Servlet并实例化 new

    2.初始化 init

    3.处理请求 service doGet doPost

    4.退出服务 destroy()

TestLifeCycleServlet实例:

import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*; public class TestLifeCycleServlet extends HttpServlet{
//1.构造函数
public TestLifeCycleServlet(){
System.out.println("-------------TestLifeCycleServlet()----------------");
}
//2.init方法
public void init(){
System.out.println("-------------init()----------------");
}
//3.doGet方法
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
java.io.IOException{
System.out.println("-------------doGet()----------------");
}
//4.销毁时调用的方法
 public void destroy(){ }
}

输入:http://127.0.0.1:8080/text_servlet/TestLifeCycleServlet。

记得将生成的.class文件放在Tomcat相应的文件夹和配置相应的web.xml文件。

执行结果为:

特点:单实例多线程

TestLifeCycleServlet会在第一次使用的时候new,并且在new完该Servlet后。会调用init方法,new和init方法仅仅一次。以后不再实例化,所以Servlet是单实例多线程的,Servlet不是线程安全的。所以一般不定义成员变量。

以登录实例简单介绍Servlet使用的更多相关文章

  1. CAS单点登录原理简单介绍

    1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...

  2. 基于Servlet的MVC模式用户登录实例

    关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...

  3. Linux守护进程简单介绍和实例具体解释

    Linux守护进程简单介绍和实例具体解释 简单介绍 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程. ...

  4. 实例级别和类级别的static、构造函数、字段属性的简单介绍

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实例级别 ...

  5. jsp-3 简单的servlet连接mysql数据库 使用mvc的登录注册

    简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...

  6. ssh远程登录命令简单实例

    ssh远程登录命令简单实例 ssh命令用于远程登录上Linux主机. 常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh -h查 ...

  7. 自动化测试基础篇--Selenium简单的163邮箱登录实例

    摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...

  8. 《HTML 5网页开发实例具体解释》样章、内容简单介绍、前言

    http://spu.jd.com/1167757597.html http://product.dangdang.com/23484942.html 样章 http://download.csdn. ...

  9. Tstrings类简单介绍及实例

    用TStrings保存文件;var  S: TStrings;begin  S := TStringList.Create();  { ... }  S.SaveToFile('config.txt' ...

随机推荐

  1. 1.3 (JavaScript学习笔记)JavaScript对象

    在JavaScript中所有事物都是对象,字符串.数值.数组.函数...等, JavaScript还允许自定义对象.这些在1.1中有所介绍. 一.遍历对象属性 <!DOCTYPE html> ...

  2. 数据结构--汉诺塔--借助栈实现非递归---Java

    /*汉诺塔非递归实现--利用栈 * 1.创建一个栈,栈中每个元素包含的信息:盘子编号,3个塔座的变量 * 2.先进栈,在利用循环判断是否栈空, * 3.非空情况下,出栈,检查是否只有一个盘子--直接移 ...

  3. Codeforces Beta Round #3 B. Lorry 暴力 二分

    B. Lorry 题目连接: http://www.codeforces.com/contest/3/problem/B Description A group of tourists is goin ...

  4. 阿里云ECS使用SSH连接CentOS 6.9经常断线的问题解决:OperationTimedOut

    说明:不一定有效,可以试一下. 设置: vi /etc/ssh/sshd_config #添加或修改以下配置 ClientAliveInterval #每隔多少秒给SSH客户端发送一次信号 Clien ...

  5. WebAPI 操作返回

    定义了一个返回枚举: public enum ResultExceptionEnum { 积分不足 = , 支付失败 = , 用户不存在 = , 验证码发送失败 = , 验证码不正确 = , 账号已存 ...

  6. 异常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项

    常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项 看到这个异常,我估计谁都会头大一阵子,不过还好,由于前面知道要设置为x86,加上以前观察过I ...

  7. cmd复制粘贴

    右击菜单栏,选择“快速编辑模式” 复制:选择文本后按回车,然后就可以去其他地方粘贴了 粘贴:右击鼠标就可以粘贴内容 简单到都不好意思发布出来了....

  8. easyui combobox设置只读属性

    $("#id").combobox('readonly',true); //只读 $("#id").combobox('readonly',false); // ...

  9. HLJU 1221: 高考签到题 (三分求极值)

    1221: 高考签到题 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 9  Solved: 4 [Submit][id=1221">St ...

  10. JAVA逐行读取TXT文件

    package help; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...