以登录实例简单介绍Servlet使用
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使用的更多相关文章
- CAS单点登录原理简单介绍
1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...
- 基于Servlet的MVC模式用户登录实例
关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...
- Linux守护进程简单介绍和实例具体解释
Linux守护进程简单介绍和实例具体解释 简单介绍 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程. ...
- 实例级别和类级别的static、构造函数、字段属性的简单介绍
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实例级别 ...
- 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 ...
- ssh远程登录命令简单实例
ssh远程登录命令简单实例 ssh命令用于远程登录上Linux主机. 常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh -h查 ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 《HTML 5网页开发实例具体解释》样章、内容简单介绍、前言
http://spu.jd.com/1167757597.html http://product.dangdang.com/23484942.html 样章 http://download.csdn. ...
- Tstrings类简单介绍及实例
用TStrings保存文件;var S: TStrings;begin S := TStringList.Create(); { ... } S.SaveToFile('config.txt' ...
随机推荐
- [转]servlet配置中init-param
需要初始化的参数比如你的servlet里面有个属性为int total=0默认是0,你想让他初始时50则用init-param 给他赋值 init-param面对应的参数名和值,是给servlet在初 ...
- php 自动补位
1 sprintf("%06d", 2); 2 str_pad();
- Linux设备文件简介
转:http://www.360doc.com/content/11/0418/00/5087210_110410837.shtml 版权声明 本 文作者是一位自由软件爱好者,所以本文虽然不是软件,但 ...
- 转载:做ArcEngine的二次开发出现“没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)”
转自:http://blog.sina.com.cn/s/blog_638e61a40100ynnc.html 出现这个问题主要是因为32位操作系统和64位操作系统存在兼容性问题. 解决方案: 1.鼠 ...
- 使用nsswitch控制linux dns解析顺序
参考:1.DNS原理入门参考:http://www.ruanyifeng.com/blog/2016/06/dns.html 2.http://cn.linux.vbird.org/linux_ser ...
- iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
菜单控制器和菜单项:弹出自定义的菜单栏窗口 提示: 1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES2. Menu所处的View必须 ...
- 配置Eclipse自动编译NDK/JNI
Eclipse关联ndk-build(自建Builder方法) 1. Project->Properties->Builders->New,新建一个Builder 2. 参数配置 ...
- Maven nexus 安装nexus私服出现的两个问题
1. 在win10中安装nexus时提示:wrapper | OpenSCManager failed - 拒绝访问. (0x5) 主要是没有权限.需要以管理员的身份运行 如果你是直接点击 start ...
- http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
- VMware(bridge、NAT、host-only、custom)含义
摘自: http://www.liangston.com/?post=48 VMware(bridge.NAT.host-only.custom)含义 作者:LiangSton 发布于:2012-1- ...