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

2022-05-13 14:07:24 浏览数 (1)

目录:

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中。

0 人点赞