启动后,只显示http://localhost:8080/
public class GlobalController extends GenericServlet {
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
/**
.do
/login.do DefaultController
/Canvas/detail.do CanvasController
/admin/Canvas/add.do CanvasController
*/
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String path = request.getServletPath();
if (path.indexOf("/admin") != -1){
path = path.substring(7);
}else {
path = path.substring(1);
}
/**
.do
login.do DefaultController
Canvas/detail.do CanvasController
Canvas/add.do CanvasController
*/
int index = path.indexOf("/");
String className = null;
String methodName = null;
if (index != -1){
className = "cn.zzf.canvas.controller."+path.substring(0,index)+"Controller";
methodName = path.substring(index+1,path.indexOf(".do"));
}else{
className = "cn.zzf.canvas.controller.DefaultController";
methodName = path.substring(0,path.indexOf(".do"));
}
try {
Class clz = Class.forName(className);
Object o = clz.newInstance();
Method method = clz.getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
method.invoke(o,request,response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}<servlet>
<servlet-name>GlobalServlet</servlet-name>
<servlet-class>cn.zzf.canvas.global.GlobalController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GlobalServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
启动后,只显示http://localhost:8080/,自己输入http://localhost:8080/index.do可以显示页面
正在回答 回答被采纳积分+1
1、关于同学启动后只显示http://localhost:8080/,你可以在idea中进行配置,让idea程序启动之后去访问index.do这个路径,可以按下图演示的方法进行操作。

2、建议同学在Terminal中对项目重新编译一下: mvn compile执行这个命令后,看下是否还会出现这个问题。祝学习愉快~
java.lang.NoSuchMethodException: cn.zzf.canvas.controller.DefaultController.verificationCode(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) at java.lang.Class.getMethod(Class.java:1786) at cn.zzf.canvas.global.GlobalController.service(GlobalController.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at cn.zzf.canvas.global.EncodingFilter.doFilter(EncodingFilter.java:22) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2527) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2516) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
然后点击登录后,会报这个错,at cn.zzf.canvas.global.GlobalController.service(GlobalController.java:49),这个对应的是这句Method method = clz.getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
并且登录页面验证码不出图

- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星