以登录实例简单介绍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' ...
随机推荐
- 【OpenJudge9275】【Usaco2009 Feb】【递推】Bullcow
Bullcow 总时间限制: 12000ms 单个测试点时间限制: 1000ms 内存限制: 131072kB [描述] 一年一度的展会要来临了,农民约翰想要把N(1 <= N <= 10 ...
- POJ 2187 Beauty Contest (求最远点对,凸包+旋转卡壳)
Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 24283 Accepted: 7420 D ...
- 轻量级的REST中间件
轻量级的REST中间件 纯净的REST中间件,绝对的轻量级,不需要安装任何三方控件 基于HTTPS.SYS和WEBSOCKET通信,支持海量并发 支持跨越DELPHI6~DELPHI10.2.2的开发 ...
- ecshop ecmall shopex
ecshop 是一个B2C商城 适合企业及个人快速构建个性化网上商店.系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序.(如沃购网) 山大路是dedecms ecmall(ECMall ...
- CKFinder的_thumbs缓存文件夹
<CKFinder2.0.2的使用与破解> 作者: 宓晨 说下背景,发下牢骚! 由于网站需要支持对图片的上传以及操作的管理,还有文字+图片的组合上传.问了一下同 ...
- 在Oracle 11.2.0.1.0下dbms_stats.gather_table_stats收集直方图不准
SQL> select * from v$version; BANNER ------------------------------------------------------------ ...
- 【云计算】Ubuntu14.04 搭建GlusterFS集群
1.修改 /etc/hosts 所有服务节点执行(如果集群中没有DNS,可忽略此步骤): 10.5.25.37 glusterfs-1-5-25-3710.5.25.38 glusterfs-2-5- ...
- android开发笔记之Volley (1)
1. volley的简介 Volley is an HTTP library that makes networking for Android apps easier and most import ...
- POJ 3122-Pie(二分+精度)
题目地址:id=3122">POJ 3122 题意:给出n个pie的直径.有F+1个人,假设给每人分的大小同样(形状能够不同),每一个人能够分多少.要求是分出来的每一份必须出自同一个p ...
- php输出语句echo、print、print_r、printf、sprintf、var_dump比较
一.echo echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void ...