???????MVC????Java???
???????????? ???????[ 2016/6/1 10:36:15 ] ??????????????????? Java
??????1????????method ???????????????????????????滻?????????????????????????????????????method??????????????method???????????????????????????method.getParameterTypes()????method?и????????????????ò?????????????????????????????????????????????asm???????й?????????о????????????????Demo?????????ú????в????????????asm??????????У??????method??2??classNames??paraNames???????????????????????
List<String> paraNames= MethodResolver.getMethodNames(clazz.getName()??methodPro.getName());
List<String> classNames= CollectionUtils.classArrToStringList(method.getParameterTypes());
Object[] args=MethodResolver.makeArgs(paraNames??classNames??req??resp??model);
public static List<String> getMethodNames(String className??String methodName) throws IOException {
List<String> list=new ArrayList<String>();
String cn=Config.getProPath()+className.replace("."?? "/")+".class";
InputStream is=new FileInputStream(new File(cn));
ClassReader cr = new ClassReader(is);
ReadMethodArgNameClassVisitor classVisitor = new ReadMethodArgNameClassVisitor();
cr.accept(classVisitor?? 0);
for(Entry<String?? List<String>> entry : classVisitor.nameArgMap.entrySet()) {
if(entry.getKey().equals(methodName)) {
for (String s : entry.getValue()) {
list.add(s);
}
}
}
return list;
}
??????2??????????????method???????????е?request??response???????Object[] args??????????á?????????????????????С?????classNames??paraNames?????????? ????????[??????]??????????????javax.servlet.http.HttpServletRequest????javax.servlet.http.HttpServletResponse????ModelMap????????args?У?????????ж??????????????String?????????request??ParameterNames??????????????????args?????????????ж????????request??ParameterNames???????????????е????????????String????????????????????????????????????????????????ж??????????????????????д?????????????????????????????????????÷???????????????????е????????????request??ParameterNames????????????????????????????args?????????????????????????args????null???????????е?classNames??paraNames????method???????????????顣
????5.???·??????
??????@Controller??????л????????????????????????????????????·??????????????????????????
????Object result=method.invoke(clazz.newInstance()??args);
????Map<String??Object> map=model.getMap();
????for(String key:map.keySet())
????{
????req.setAttribute(key??map.get(key));
????}
????if(result instanceof String)
????{
????req.getRequestDispatcher(Config.getConfig("pagePath")+File.separator+result.toString()+Config.getConfig("suffix")).forward(req?? resp);
????}
????6.????
??????????????????IDE??????????jar?????????? mvn install??????????????????web?????????jar????servlet???????д????????*.do??????????????web.xml???????????????????????????????á?
????<%@ page contentType="text/html;charset=UTF-8" language="java" %>
????<html>
????<head>
????<title>11</title>
????</head>
????<body>
??????????:${time}
????</body>
????</html>
??????????????????????δ???????jsp????????tomcat????Ч???
??????
???????????????д??3??4????????annotation??asm???????????????????????????MVC??????????????????????
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
Java???????????Щ???????????????Java????????????????Java?б???Map????????Java Web???????????????Java??????????????д?????Java????????7???????????????????????(java .net ?????)???Java??????????Python??????Java webdriver??λ????????′????е?????Java??д??????????????????Java???????????????JavaScript????????????Java?????????????????? Java???????10??????????????Java?м????????????????java???????ü???????????м???????????????????
![](/images/ad-banner/ad-banner.png)
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????