Servlet入门

98 阅读2分钟

Servlet简介

servlet是运行在Web服务器上的程序,他一方面可以接收前端浏览器发来的请求,另一方面可以根据业务逻辑来返回给前端相应的响应对象。

Servlet工作流程

当前端数据传递到后端时,tomcat会创建HttpServletRequest对象以及HttpServletResponse对象,其中分别用来承载请求以及响应的所有信息,会被转换成请求报文以及响应报文。(请求报文:请求头,请求行,请求体;响应报文:响应头,响应行,响应体)。

未命名文件.png 注:不是所有的java类都可以处理客户端请求,能够处理客户端请求的并做出响应的技术标准就是Servlet。

Servlet开发流程

业务需求

后端根据前端返回的数据进行判断,并将判断结果返回给后端浏览器。

具体步骤

  1. 创建javaweb项目,并配置tomcat,开发对应的前端页面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="get" action="UserServelet">
    用户名:<input type="text" name="username"><br>
    <input type="submit" value="校验">
</form>
</body>
</html>

前端页面.png

2.完成后端业务逻辑开发

public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //从request对象中获取对应的数据,数据为key:value形式,通过key值即可获取value,get与post均可
        //get和post的报文请求方式不同
        //get数据形式为:对应的浏览器地址?username=**;
        //post数据形式为:请求体中携带对应的数据
        String username = req.getParameter("username");
        String info = "YES";

        if("lixiang".equals(username)) {
            info = "NO";
            System.out.println("1111");
        }
        //将需要响应的数据存入response中,方法返回一个打印流
        PrintWriter writer = resp.getWriter();
        writer.write(info);
    }
}

3.对web.xml进行配置,完成路径的映射

    <servlet>
<!--        -->
        <servlet-name>userservlet</servlet-name>
<!--        前端与后端相互映射的路径,对应后端相应的类-->
        <servlet-class>com.atguigu.demo01.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>userservlet</servlet-name>
<!--        前端与后端相互映射的路径,对应前端的action处-->
        <url-pattern>/UserServelet</url-pattern>
    </servlet-mapping>

此时,当对前端的数据进行获取解析后,HttpServletResponse对象负责返回对应的响应数据。