代碼
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>great-parent</artifactId>
<groupId>com.fucking.great</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<artifactId>great-servlert</artifactId>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>
8000
</port>
<path>/mvc</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
java
package com.fucking.great.servlert;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
@SuppressWarnings("serial")
@WebServlet("/myServlet12312")
public class MyServlet extends HttpServlet {
public static final Log log = LogFactory.get();
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/json; charset=utf-8");
String tt = request.getParameter("tt");
System.out.println(tt);
System.out.println(request.getRequestURI());
System.out.println(request.getPathInfo());
Method[] gets = ReflectUtil.getMethods(ClassUtil.getClass(request), (filter) -> {
String name = filter.getName();
if (name.startsWith("get") && !"getInputStream".equals(name) && filter.getParameterCount() == 0) {
return true;
} else {
return false;
}
});
System.out.println(StrUtil.join(",",gets));
log.error("類爲[{}]的對象[{}]的get方法執行結果length[{}]", ClassUtil.getClassName(request,false), request,gets.length);
for (Method get : gets) {
try {
log.error("方法名爲[{}],內容爲[{}]",get.getName() , ReflectUtil.invoke(request,get) );
} catch (Throwable e) {
e.printStackTrace();
}
}
PrintWriter printWriter = response.getWriter();
printWriter.write("dsfa訪問成功");
printWriter.flush();
printWriter.close();
System.out.println("訪問成功");
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
}
參考資料