美文网首页
学习Servlet

学习Servlet

作者: Tommmmm | 来源:发表于2018-05-08 10:57 被阅读0次

一、什么是Servlet
servlet就是一个Java接口,接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法。

其中最主要的是两个生命周期方法init()和destroy(),还有一个处理请求的service()

所有实现servlet接口的类,都需要回答这三个问题:
初始化时要做什么
销毁时要做什么
接受到请求时要做什么

请求怎么来到servlet呢?
答案是servlet容器,比如我们最常用的tomcat

tomcat才是与客户端直接打交道的家伙,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。

二、Servlet的运行过程
Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
  ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
  ②装载并创建该Servlet的一个实例对象。
  ③调用Servlet实例对象的init()方法。
  ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。






三、编写一个servlet

//登陆页面
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>登录页面</title>  
</head>  
<body>  
<form action="loginServlet" method="post"><!-- action写要请求Servlet的名 -->  
    用户名:<input type="text" id="uname" name="uname"><br><br>  
    密码:<input type="password" id="pwd" name="pwd"><br><br>  
    <input type="submit" value="登录">    
    <input type="reset" value="重置">   
</form>  
</body>  
</html>  
//登陆成功页面
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>登录成功页面</title>  
</head>  
<body>  
登录成功!${name},${pwd}<form action="loginServlet" method="get"><input type="submit" value="注销登录"></form>  
</body>  
</html>  
@WebServlet("/loginServlet")  
public class loginServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
  
    public loginServlet() {  
        super();  
        // TODO Auto-generated constructor stub  
    }  
  
    protected void doGet(HttpServletRequest request,  
            HttpServletResponse response) throws ServletException, IOException {  
        HttpSession session = request.getSession();//获取session  
        Object name = session.getAttribute("name");//从session中获取用户名  
        Object pwd = session.getAttribute("pwd");//从session获取用户密码  
        System.out.println(name+":"+pwd); //测试一下,输出获取的用户名和密码  
        session.invalidate(); //注销session  
        response.sendRedirect("login.jsp"); //跳转到login.jsp页面  
    }  
  
    protected void doPost(HttpServletRequest request,  
            HttpServletResponse response) throws ServletException, IOException {  
        // doGet(request, response);  
        // 设置编码为utf-8  
        request.setCharacterEncoding("utf-8");  
        response.setCharacterEncoding("utf-8");  
  
        // 获取用户名和密码  
        String name = request.getParameter("uname");  
        String pwd = request.getParameter("pwd");  
  
        // 校验用户名和密码是否正确  
        if ("admin".equals(name) && "123".equals(pwd)) {// 验证成功  
            HttpSession session = request.getSession();//获取session  
            session.setAttribute("name", name);// 将用户名和密码保存在session中  
            session.setAttribute("pwd", pwd);// 将用户名和密码保存在session中  
            response.sendRedirect("success.jsp");// 跳转到success.jsp页面  
        } else {// 校验不成功,则留在跳转到login.jsp页面  
            response.sendRedirect("login.jsp");  
        }  
    }  
 
}

当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。

相关文章

  • Servlet

    1.Servlet 学习大纲 servlet 概念以及相关接口简介 servlet 执行过程 servlet 路径...

  • 第12讲.Servlet

    Servlet 学习摘要: 理解为何要学习Servlet? 什么是Sevlet?如何编写一个Servlet程序。S...

  • 2018-10-27

    学习servlet

  • 黑猴子的家:JavaWeb 之 Servlet 实现自动配置

    Eclipse中创建Servlet(web_servlet03)实现自动配置通过 web_servlet03 学习...

  • 第八篇学习总结

    第八篇学习总结 一、Servlet 1、Servlet概述 Servlet是Java Server Applet的...

  • 2018-10-28

    servlet学习完毕

  • Servlet简介

    Servlet学习的大纲 servlet概念及相关接口简介 servet 执行过程 servlet映射路径 缺省s...

  • 第二章 Web应用开发技术

    Servlet API是开发Servlet的主要技术,学习这种技术的主要方法就是掌握Servlet API中定义的...

  • Servlet学习

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTT...

  • Servlet学习

    Servlet 是Server + Applet 的缩写,表示一个服务器应用。运行在如Tomcat容器中。 其中i...

网友评论

      本文标题:学习Servlet

      本文链接:https://www.haomeiwen.com/subject/lsavrftx.html