JavaWeb--03.Servlet

23 篇文章 0 订阅

JavaWeb–03


前言

21世纪,走进了信息时代,各种各样的软件层出不穷,但是总离不开程序开发,离不开程序开发语言,Java语言作为人们所熟知的一门语言,对于其有必要进行系统的学习。


Servlet

Servet是Java的一个接口,用于定义网站前端数据与数据库数据进行交互所用到的方法规
范,也就是后端,其运行在服务器上;

创建第一个Servlet

(1).方式一,实现Servlet接口

Servlet是一个接口,实现接口需要实现其未实现的抽象方法;其中init方法是在servle
t初始化时调用,service是处理请求时调用,destroy方式是在服务器关闭时调用;
public class ServletDemo implements Servlet {
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("--init--");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }


    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("--service--");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("--destroy--");
    }
}

除了Servlet实现类写完后,还需要在WEB-INF下的web.xml进行配置,一个servlet可以配置多个servlet-mapping

	<!--一个servlet与其对应的servlet-mapping共同构成一组映射,将url映射为对应的Servlet类-->
    <servlet>
        <servlet-name>demo</servlet-name><!--配置servlet的名称,即别名,用于区分不同的servlet-->
        <servlet-class>com.company.project.servlet.ServletDemo</servlet-class><!--servlet类对应的全类名-->
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name><!--配置需要映射的servlet名称-->
        <url-pattern>/demo</url-pattern><!--配置映射的url-->
    </servlet-mapping>

或者使用注解的方式,即在Servlet实现类上使用WebServlet注解

//name与上面定义的name一样,用于区别,urlPatterns即上面的映射url
@WebServlet(name = "demo",urlPatterns = "/demo")
public class ServletDemo implements Servlet {
}

配置结束,则可以运行项目,在浏览器输入localhost:8080/JavaWebDemo/demo进行访问,可以在控制台看到其输出:

在访问其对应的映射url时,其第一次访问,进行了初始化,接着执行了service中的代码;
在这里插入图片描述

在服务器关闭时,执行了destroy方法
在这里插入图片描述

(2).方式二,继承HttpServlet类

HttpServlet类继承自GenericServlet类,而GenericServlet实现了Servlet接口;
在这里插入图片描述在方式一中可以看到其共有5个成员方法需要重写,但是实际起作用,用于数据交互的主要是service方法,重写5个方法过于繁杂,故可以选择继承HttpServlet:

@WebServlet(name = "login", urlPatterns = "/login")
public class LoginServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行了doGet方法--");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行了doPost方法--");
    }
}

继承HttpServlet后,可以选择重写其方法,其中有Servlet中未包装的service方法,以及包装过后的一系列doXxx方法,一般网站请求都为get或者post,故重写其doGet与doPost就基本可以满足需求;
在这里插入图片描述运行程序,在浏览器地址栏输入localhost:8080/JavaWebDemo/login
此时,会执行doGet方法:
在这里插入图片描述
在webapp下新建一个login.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
<div align="center">
    <form action="login" method="post">
        用户名:<input type="text" name="username" value="" placeholder="请输入用户名"><br/>
        密码:<input type="text" name="password" value="" placeholder="请输入密码"><br/>
        <input type="submit" value="登录"><br/>
    </form>
</div>

</body>
</html>

在浏览器访问localhost:8080/JavaWebDemo/login.html
在这里插入图片描述点击登录,即可看到:
在这里插入图片描述

笔记如有错误,遗漏之处,欢迎指正!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值