使用HttpServlet完成一个假登录

Servlet

Servlet也叫“servlet applet”,是Java服务器的小程序,是一种基于Java技术的Web组件,运行在服务器端,由Servlet容器管理,用来生成动态的Web内容。

Servlet程序其实就是一个按照Servlet规范编写的Java类。它具有平台独立性,可以被编译成字节码,移植到任何支持Java技术的服务器中运行。

Servlet可以使用所有的Java API。也就是说,Java能做的事,Servlet都能做。

Servlet是Java语言中编写Web服务器扩展功能的重要技术,同时也是JSP技术的底层运行基础。

使用Servlet创建动态网页的第一步,就是创建 Servlet类。

Servlet规范的最顶层是一个名为javax.servlet.Servlet的接口,所有的Servlet类都要直接或者间接地实现该接口。直接实现Servlet接口不太方便,所以Servlet又内置了两个Servlet接口的实现类(抽象类),分别为Genericservlet和HttpServlet,因此,创建Servlet类有如下三种方式:

1.实现javax.servlet.Servlet接口,重写其全部方法。

2.继承javax.servlet.GenericServlet 抽象类,重写service()方法.

3.继承javax.servlet.http.HttpServlt抽象类,重写doGet()或doPost()方法.

一般第三种方式使用最多。

Servlet、GenericServlet、HttpServlet三者的关系

1.GenericServlet是实现了Servlet 接口的抽象类。

2.HttpServlet是GenericServlet的子类,具有GenericServlet的一切特性。

3.Servlet 程序(MyServlet类)是一个实现了Servlet接口的Java 类。

Servlet容器

Servlet容器就是Servlet代码的运行环境(运行时),它除了实现 Servlet 规范定义的各种接口和类,为Servlet的运行提供底层支持,还需要管理由用户编写的Servlet类,比如实例化类(创建对象)、调用方法,销毁类等。

Servlet 中的容器和生活中的容器是类似的概念:生活中容器用来装水、装粮食,Servlet 中的容器用来装类,装对象。

因为我们编写的Servlet类没有main()函数,不能独立运行,只能作为一个模块被载入到Servlet容器,然后由Servlet容器来实例化,并调用其中的方法。

一个动态页面对应一个Servlet类,开发一个动态页面就是编写一个 Servlet类,当用户请求到达时,Servlet 容器会根据配置文件(web.xml)或者注解来决定调用哪个类。

HttpServlet抽象类

javax.servlet.http.HttpServlet继承了GenericServlet抽象类,用于开发基于HTTP协议的Servlet程序。由于Servlet主要用来处理HTTP的请求和响应,所以通常情况下,编写的Servlet类都继承自HttpServlet。

使用HttpServlet完成一个假登录

首页部分:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>第一个Web项目</title>

</head>

<body>

<h2>欢迎学习Java Web。</h2>

<a href="login.jsp">去登录</a><br>

<a href="zhuce.jsp">去注册</a>

</body>

</html>

结果如图:

登录部分:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>登录</title>

</head>

<body>

<h2>登录</h2>

<form action="login" method="post">

账号:<input type="text" name="user" value=""> <br>

密码:<input type="password" name="pwd" value=""> <br>

<input type="submit" value="登录">

</form>

</body>

</html>

结果如图:

Java代码部分:

public class Login extends HttpServlet {

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Login-get...");

doPost(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Login-post...");

request.setCharacterEncoding("utf-8");

String user = request.getParameter("user");

String pwd = request.getParameter("pwd");

System.out.println(user);

System.out.println(pwd);

response.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=UTF-8");

if (user.equals("季唯") && pwd.equals("111")){

response.getWriter().write("success!");

}else{

response.getWriter().write("error!");

}

}

}

结果如图:

注册部分:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>注册</title>

</head>

<body>

<h2>注册</h2>

<form action="zhuce" method="post">

账号:<input type="text" name="user" value=""> <br>

密码:<input type="password" name="pwd" value=""> <br>

<input type="submit" value="注册">

</form>

</body>

</html>

结果如图:

Java代码部分:

public class Zhuce extends HttpServlet {

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Login-get...");

doPost(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Login-post...");

request.setCharacterEncoding("utf-8");

String user = request.getParameter("user");

String pwd = request.getParameter("pwd");

System.out.println(user);

System.out.println(pwd);

response.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=UTF-8");

if (user.equals("季唯") && pwd.equals("111")) {

response.getWriter().write("success!");

} else {

response.getWriter().write("error!");

}

}

}

结果如图:

web.xml部分:

<servlet>

<servlet-name>login</servlet-name>

<servlet-class>com.du.servlet.Login</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>login</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>zhuce</servlet-name>

<servlet-class>com.du.servlet.Zhuce</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>zhuce</servlet-name>

<url-pattern>/zhuce</url-pattern>

</servlet-mapping>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值