码迷,mamicode.com
首页 > 其他好文 > 详细

以登录实例简介Servlet使用

时间:2015-08-12 06:44:18      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

1.简介

   Java Servlet 是运行在 Web 服务器或应用服务器上的程序,使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

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

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


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

技术分享


2.登录实例

   编写步骤:
      1.建立LoginSerlvet并继承HttpServlet
      2.覆盖doGet或doPost方法,编译
      3.在web.xml配置文件中进行配置
      4.写html登录页面并放入Tomcat中webapps中对应web项目中
      5.启动《Tomcat服务器》,输入网址: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>     <!--供客户端访问的名称必须以/开头-->
	</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>

运行结果图:

技术分享


时序图:

技术分享

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

HttpServletRequest: 包装客户端提交过来的所有数据。1.客户端的IP地址  2 .客户端的表单数据  3.Cookies信息 
HttpServletResponse:包装了向客户端写出的数据。    1.将数据库信息输出  2.向客户端输出图片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使用

标签:

原文地址:http://blog.csdn.net/u010928364/article/details/47303231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!