前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态网页(Servlet介绍、作用、创建)

动态网页(Servlet介绍、作用、创建)

作者头像
全栈开发日记
发布2022-05-13 14:07:24
6460
发布2022-05-13 14:07:24
举报
文章被收录于专栏:全栈开发日记

目录:

Servlet 介绍 Servlet 作用 Servlet 创建

Servlet 介绍

Servlet 是指:Servlet Applet服务器应用程序。

ServletServer Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

说人话就是获取到请求,然后做出相应的动作。

比如你要登录操作,提交表单之后就会给服务器发送一个请求,而Servlet获取到这个请求,然后判断你是否登录成功,然后做出登录成功或失败的动作。

Servlet 作用

获取并解析请求参数;

处理业务逻辑;

给客户端响应请求结果;

Servlet 创建

Servlet类的定义方式

implements Servlet (实现接口)

extends HttpServlet (继承)推荐

Servlet创建方式

1、基于XML

Java类中的代码:创建类继承HttpServlet,并且重写doGet和doPost方法。

代码语言:javascript
复制
public class UserServlet extends HttpServlet {
//一般在开发过程中,我们的业务逻辑只写在一个方法中,另一方法调用写业务逻辑的方法
/**
* 当请求方法为get请求时,servlet会自动调用doGet
*/ 
  @Override 
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     String userName = req.getParameter("userName");
      //处理业务逻辑
     PrintWriter writer = resp.getWriter();
     writer.print(userName);
   }
   /**
   * 当请求方法为post请求时,servlet自动调用doPost
   */ 
  @Override 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     doGet(req,resp);
  }
}

在web.xml中配置servlet:配置Servlet名称和全限定类名,以及声明什么样的请求可以进入Servlet中。

代码语言:javascript
复制
<!--每个servlet都有一个servlet标签-->
<servlet> 
  
   <!-- servlet的名称-->
   <servlet-name>userServlet</servlet-name>
      
   <!-- 放置servlet的全限定类名 让tomcat使用反射创建servlet的实例 --> 
   <servlet-class>com.sofwin.controller.UserServlet</servlet-class>
  
</servlet> 
    
<!-- 每个servlet标签,都有对应的servlet-mapping 配置什么样的请求进入到该servlet --> 
<servlet-mapping> 
    
   <!-- 已有servlet的名称-->
   <servlet-name>userServlet</servlet-name> 
       
   <!-- 作用:拦截请求,让复合要求的请求进入到该servlet
    写法:
     1.完全映射 /system/user.action。前面“/”符号意为根目录
     2.路径映射 /* 任意请求都进入到 servlet中
     3.类型映射 *.do|*.action 如果请求是以do或action结尾的才能进入到servlet中
     注意:3种方式不能混合使用
     比如:/*.doxxx 不可用
   --> 
   <url-pattern>/userServlet</url-pattern> 
   
</servlet-mapping>

注意:

代码语言:javascript
复制
<servlet-class>全限定类名</servlet-class>

这里面放的是Servlet类的全限定类名。

什么是全限定类名?

就是这个Java类的路径。

基于Annotation(注解)

创建类继承HttpServlet:

代码语言:javascript
复制
//数组的作用是为一个servlet提供多种请求方式
@WebServlet(name = "roleServlet",urlPatterns = {"/role","/role1","/role2"})
public class RoleServlet extends HttpServlet{
  
  @Override 
  protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
      doPost(req,resp);
  }

  @Override 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      String userName = req.getParameter("userName");
      PrintWriter out = resp.getWriter(); out.print("hello:"+userName);
  }
}

注意:

① WebServlet注解是类级别的注解,只能写在类的定义上面。

② 注解的级别:类级别、方法级别、属性级别。

③ 注解中的属性:name用于配置Servlet的名称,理论上要求唯一。

④ urlPatterns用于声明什么样的请求可以进到这个Servlet中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Servlet类的定义方式
  • Servlet创建方式
  • 注意:
  • 基于Annotation(注解)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档