传统的JSP页面现在应用的少,servlet应用得多。
Servlet是Server Applet的简称,是服务器端的程序,与客户端相互,处理客户端的请求并完成响应,属于动态网页技术,JavaEE规范的组成部分。
1、搭建开发环境
将Servlet相关jar包( lib\servlet-api.jar )配置到classpath中。
2、编写servlet代码
文件后缀是.java
⑴ 实现javax.servlet.Servlet;
⑵ 重写5个主要方法;
⑶ 在service()方法中编写处理结果并返回给客户端。
基本格式是固定的,仿照着写:
- import javax.servlet.Servlet;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.ServletException;
- import java.io.IOException;
-
- public class ServletFirst implements Servlet{
- public void init(ServletConfig config) throws ServletException{
-
- }
-
- public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{
- System.out.println("ServletDemo");
- String name=request.getParameter("name");
- System.out.println(name);
- String age=request.getParameter("age");
- System.out.println(age);
- request.setCharacterEncoding("utf-8");
- response.setContentType("text/html;charset=utf-8");
- response.getWriter().write("姓名:"+name+" 年龄:"+age);
- }
-
- public void destroy(){
-
- }
-
- public ServletConfig getServletConfig(){
- return null;
- }
-
- public String getServletInfo(){
- return null;
- }
- }
3、在tomcat中的准备工作
在tomcat的webapps下新建一个目录JavaWeb2022,该目录下结构:
- webapps(目录)
- ---JavaWeb2022(目录)
- ---WEB-INF(目录)
- ---classes(目录)
- ---lib(目录)
将编译好的class文件拷贝到classes下。
在WEB-INF目录下新建web-xml文件,内容:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0"
- metadata-complete="true">
- <servlet>
- <servlet-name>MyServlet1</servlet-name>
- <servlet-class>ServletFirst</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>MyServlet1</servlet-name>
- <url-pattern>/servletdemo</url-pattern>
- </servlet-mapping>
- </web-app>
其中/servletdemo就是访问路径,/servletdemo=》MyServlet1=》ServletFirst,这样就对应起来了。
4、准备前端文件
新建一个index.html文件:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>123</title>
- <script src="jquery-3.4.1.min.js"></script>
- </head>
-
- <body>
- <button onclick="GetData()">获取数据</button>
- <div id="demo"></div>
- <script>
- function GetData(){
- $.ajax({
- url: 'http://127.0.0.1:9119/JavaWeb2022/servletdemo',
- dataType: "text", //注意不是JSON
- async: true,
- data:{
- name:"QWE",
- age:13
- },
- type: "POST",
- beforeSend:function(){},
- success: function(data) {
- console.log(data);
- document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + data+"<br>";
- }
- });
- }
- </script>
- </body>
- </html>
5、在网页里访问
启动tomcat,访问http://127.0.0.1:9119/JavaWeb2022/index.html
结果就从servlet返回到前端网页中了。