JavaWeb--03.Servlet
2021/8/24 20:07:44
本文主要是介绍JavaWeb--03.Servlet,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JavaWeb–03
Servlet
目录
- JavaWeb--03
- Servlet
- 前言
- 创建第一个Servlet
- (1).方式一,实现Servlet接口
- (2).方式二,继承HttpServlet类
前言
21世纪,走进了信息时代,各种各样的软件层出不穷,但是总离不开程序开发,离不开程序开发语言,Java语言作为人们所熟知的一门语言,对于其有必要进行系统的学习。
Servet是Java的一个接口,用于定义网站前端数据与数据库数据进行交互所用到的方法规范,也就是后端,其运行在服务器上;
创建第一个Servlet
(1).方式一,实现Servlet接口
Servlet是一个接口,实现接口需要实现其未实现的抽象方法;其中init方法是在servlet初始化时调用,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
点击登录,即可看到:
笔记如有错误,遗漏之处,欢迎指正!
这篇关于JavaWeb--03.Servlet的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南