传统的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返回到前端网页中了。