关于#JavaEE#的问题,如何解决?

大家好,在SpringMVC遇到了一个特别玄学的问题:有一个JavaWeb项目SPRINGMVC4_1(上下文也是SPRINGMVC4_1),又按照流程搭建好一切后,访问WebContent目录下的index.jsp后,跳转到另一个jsp页面就会报404,控制台也给出了No mapping for GET /SPRINGMVC4_1/fafang/gongzi.do的错误。如下:

img

img


为什么说玄学呢?因为在机房,按相同的流程他是可以实现跳转访问的,没有任何问题,那么我把流程也发一下把,看看是不是这样:
①创动态Web项目:

img

img

img

img

img

教材的目录结构如下:

img

②把依赖的jar包导入到lib下

img

③开始分层处理,src下建立controller包,service包,dao包,包下分别建类,ActionTest,ServiceTest,DaoTest
ActionTest类如下:

img


ServiceTest,DaoTest就省略了,一会把代码发上去。
④src下新建xml文件,如下:

img

⑤配置web.xml(有时会报错,但不影响运行):

img


⑥根目录下创建index.jsp,如下:

img

不出所料:报错了,如果是在机房的电脑,也是相同的步骤,则不会报错,正常运行,这是为什么呢?

img


此时目录结构如下:

img

是不是jdk配置的不对

链接: https://pan.baidu.com/s/1rvxASajDv9JAArdxVK4yIQ?pwd=87s6 提取码: 87s6 复制这段内容后打开百度网盘手机App,操作更方便哦

我把错误的源码打包发一下,可以看出什么问题吗

这个实例的解题思路可借鉴下:https://blog.csdn.net/qq_39445165/article/details/83959975

首先你的web.xml就报错提示了,看到没。然后你有没有在server.xml里面修改成当前项目?没有的话启动服务器是你上一个项目。浏览器报错,是页面不存在或是路径不对。哪来的玄幻。

该回答引用ChatGPT
根据提供的问题描述中的错误信息 "No mapping for GET /SPRINGMVC4_1/fafang/gongzi.do",应该是访问了一个没有经过配置的URL,也就是SpringMVC中的一个Controller没有被成功地匹配到。

首先,需要检查代码中的Controller是否正确地配置了@RequestMapping注解,并且配置的路径与访问的URL一致。同时,需要保证Controller类被正确地扫描到并被注册到Spring容器中。

其次,需要检查web.xml文件中的DispatcherServlet是否正确配置,包括servlet-name和servlet-mapping等参数。

最后,按照流程搭建好的项目,在其他电脑上也出现了问题,这可能是由于环境配置不一致造成的,需要检查每个环节的配置是否正确,比如配置的JDK版本、Tomcat版本、项目的classpath等。

以下是示例代码:

Controller代码示例:


@Controller
@RequestMapping("/fafang")
public class MyController {
@RequestMapping(value = "/gongzi", method = RequestMethod.GET)
public ModelAndView getGongzi() {
ModelAndView model = new ModelAndView("gongzi");
model.addObject("message", "Hello World!");
return model;
}
}


web.xml文件配置示例:


<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>