Servlet简介
servlet是运行在Web服务器上的程序,他一方面可以接收前端浏览器发来的请求,另一方面可以根据业务逻辑来返回给前端相应的响应对象。
Servlet工作流程
当前端数据传递到后端时,tomcat会创建HttpServletRequest对象以及HttpServletResponse对象,其中分别用来承载请求以及响应的所有信息,会被转换成请求报文以及响应报文。(请求报文:请求头,请求行,请求体;响应报文:响应头,响应行,响应体)。
注:不是所有的java类都可以处理客户端请求,能够处理客户端请求的并做出响应的技术标准就是Servlet。
Servlet开发流程
业务需求
后端根据前端返回的数据进行判断,并将判断结果返回给后端浏览器。
具体步骤
- 创建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>
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对象负责返回对应的响应数据。