浅谈JavaWEB入门必备知识之Servlet入门案例详解

工欲善其事、必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详述一下什么是servlet...

个人观点:说白了,servlet就是一个java应用程序、一个运行在服务器上java类,servlet就是java处理web请求的一种机制,它具有独立于平台和协议的特性,可以生成动态的Web页面。再形象点,就是你通过IE等浏览器发送一个http请求后会根据你请求的内容找到相应的serlet类,然后由serlet为你返回一个指定的动态网页。

科学定义:Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(Common Gateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,JavaServlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。

实现过程:

1) 客户端发送请求至服务器端;

2) 服务器将请求信息发送至 Servlet;

3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

4) 服务器将响应返回给客户端。

好了,废话不多说,如果还不明白的话,就请看我下面的一个案例吧...
我这里通过一个小小的案例来让你彻底的了解一下servlet到底是个啥玩意?它的实现步骤是什么?
案例:Servlet用户登录验证系统

第一步:开发Login.java(登录界面)

//登录界面
package com.xushouwei.cn;
import javax.servlet.http.*;
import java.io.*;
public class Login extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        this.doPost(req,res);
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        try{
            //解决中文乱码问题
            res.setContentType("text/html;charset=gbk");
            PrintWriter pw=res.getWriter();
            pw.println("<html>");
            pw.println("<head>");
            pw.println("</head>");
            pw.println("<body>");
            pw.println("<h1>用户登录</h1>");
            pw.println("<form action=loginCl method=get>");
            pw.println("用户名:<input type=text name=username><br>");
            pw.println("密码:<input type=password name=pwd><br>");
            pw.println("<input type=submit value=提交><br>");
            pw.println("<input type=reset value=重置><br>");
            pw.println("</form>");
            pw.println("</body>");
            pw.println("</html>");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        
    }
}

第二步:开发LoginCl.java界面(用户处理界面)

//用户验证
package com.xushouwei.cn;
import javax.servlet.http.*;
import java.io.*;
public class LoginCl extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        this.doPost(req,res);
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        try{
            
            //接收用户名和密码 
            String u=req.getParameter("username");
            String p=req.getParameter("pwd");
            //验证
            if(u.equals("xushouwei")&&p.equals("123456"))
            {
                //合法用户
                res.sendRedirect("wel");
            }
            else
            {
                //不合法
                res.sendRedirect("login");//这里写上你要调到的servlet的url
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        
    }
}

第三步:开发Wel.java界面(欢迎界面)

//这是欢迎界面
package com.xushouwei.cn;
import javax.servlet.http.*;
import java.io.*;
public class Wel extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        this.doPost(req,res);
    }
    
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        try{
            
            res.setContentType("text/html;charset=gbk");
            PrintWriter pw=res.getWriter();
            pw.println("<h1>欢迎来到徐守威的主页面!</h1>");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        
    }
}

以上三步每一步都是一个servlet,那么开发servlet有几种方法呢?详情请看这篇文章http://www.cnblogs.com/Jasxu/p/servlet.html

这里我就不在详细说了...

既然我们所需要的servlet都开发好了,那么我们需要一个配置文件web.xml文件(该文件相当于一个手续一样,表明你要去访问那个serlvet)

web.xml文件配置如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

<display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
  
  <servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>com.xushouwei.cn.Login</servlet-class>
  </servlet>
  
   <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>LoginCl</servlet-name>
    <servlet-class>com.xushouwei.cn.LoginCl</servlet-class>
  </servlet>
  
   <servlet-mapping>
    <servlet-name>LoginCl</servlet-name>
    <url-pattern>/loginCl</url-pattern>
  </servlet-mapping>
  
  
  <servlet>
    <servlet-name>Wel</servlet-name>
    <servlet-class>com.xushouwei.cn.Wel</servlet-class>
  </servlet>
  
   <servlet-mapping>
    <servlet-name>Wel</servlet-name>
    <url-pattern>/wel</url-pattern>
  </servlet-mapping>

</web-app>

以上步骤完成后,编译一下各个java文件生成.class文件类型,下面我们就可以把以上文件部署到tomcat服务器中进行测试了,目录结构如下

好了,部署好以后我们直接启动tomcat并在浏览器输入:http://localhost:8080/myWebSite/login

验证即可...

以上就是完全利用servlet进行用户验证并进行页面跳转而开发的一个使用入门型的servlet入门案例!

时间: 2024-10-12 17:51:33

浅谈JavaWEB入门必备知识之Servlet入门案例详解的相关文章

走进JavaWeb技术世界4:Servlet 工作原理详解

本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号[Java技术江湖]的<走进JavaWeb技术世界>其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作

浅谈量子计算机 大发云网站源码架设修复详解

一.两类量子计算机 量子计算机主要分为通用量子计算机(也称为标准量子计算机)和专用量子计算机.通用量子计算机通过量子纠缠.量子干涉.量子叠加等量子态实现计算,例如,Google于2018年3月发布的72量子比特的量子计算机Bristlecone:专用量子计算机则是通过其他理论或模型实现计算(大发云网站源码架设修复Q_917_899_899 测试bbs.yasewl.com 如,量子退火理论等),例如,D-Wave公司的发布的各型量子计算机,该公司于2018年发布的量子计算机已具有高达2000个量

浅谈IM软件业务知识——非对称加密,银行U盾的原理

概述 首先了解一下相关概念:RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数论:将两个大素数相乘非常容易,但要对这个乘积的结果进行 因式分解却非常困难,因此可以把乘积公开作为公钥,该算法能够抵抗目前已知的所有密码攻击.RSA算法是一种非对称算法,算法需要一对密钥,使用其中一个 加密,需要使用另外一个才能解密.我们在进行RSA加密通讯时,就把公钥放在客户端,私钥留在服务器. RSA非对称加密算法,可以验

浅谈IM软件业务知识—会话session的概念,附一张IM软件的层次图

session一般出现在计算机领域,IM软件中的session,老的IM有两层:首先是逻辑层的session来管理会话的参与者,消息列表,会话类型等等:还有协议层的session,主要是代表客户端跟服务器的一个事物通道. 老的IM软件 客户端跟Server交互的每一类操作都是基于会话.比如客户端登录,需要建立一个登录的会话:客户端发消息,需要建立一个会话.下面举例: 客户端向Server发了一条消息,这条消息的发送就建立在会话之上.客户端需要下面几个步骤. 1. 创建一个session ID=1

Android基础入门教程——8.3.16 Canvas API详解(Part 1)

Android基础入门教程--8.3.16 Canvas API详解(Part 1) 标签(空格分隔): Android基础入门教程 本节引言: 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在Android基础入门教程--8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前

Android基础入门教程——2.5.3 AlertDialog(对话框)详解

Android基础入门教程--2.5.3 AlertDialog(对话框)详解 标签(空格分隔): Android基础入门教程 本节引言: 本节继续给大家带来是显示提示信息的第三个控件AlertDialog(对话框),同时它也是其他 Dialog的的父类!比如ProgressDialog,TimePickerDialog等,而AlertDialog的父类是:Dialog! 另外,不像前面学习的Toast和Notification,AlertDialog并不能直接new出来,如果你打开 Alert

开启 J2EE(六)— Servlet之Filter详解及乱码处理实例

定义和功能 Filter:过滤器,它能够在request到达Servlet之前预处理request,也可以在离开Servlet时处理response,通过对request或response的处理已达到过滤功能.但是Filter只是对request和response请求进行了拦截处理,通常不产生请求或者响应. 实现的接口 我们写Servlet需要继承一个类,Filter也一样,要实现一个接口(扩展性的体现啊):javax.servlet.Filter,并实现该接口的三个方法: <span styl

Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash

Android基础入门教程--8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash 标签(空格分隔): Android基础入门教程 本节引言: 在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 这个Matrix可是有大文章的,前面我们在学Paint的API中的ColorFilter中曾讲过ColorMatrix 颜色矩阵,一个4 * 5 的矩阵

Android基础入门教程——2.3.2 EditText(输入框)详解

Android基础入门教程--2.3.2 EditText(输入框)详解 标签(空格分隔): Android基础入门教程 本节引言: 上一节中我们学习了第一个 UI控件TextView(文本框),文中给出了很多实际开发中可能遇到的一些需求 的解决方法,应该会为你的开发带来便利,在本节中,我们来学习第二个很常用的控件EditText(输入框): 和TextView非常类似,最大的区别是:EditText可以接受用户输入!和前面一样,我们不一个个讲属性, 只讲实际应用,要扣属性可以自己查看API文档