iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >Tomcat出现404的解决方法[类型 状态报告 消息 请求的资源[/]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源]
  • 637
分享到

Tomcat出现404的解决方法[类型 状态报告 消息 请求的资源[/]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源]

1024程序员节javatomcatspringmybatis 2023-10-21 19:10:20 637人浏览 泡泡鱼
摘要

我在这先说出我的例子 逻辑的开始是一个简单的jsp文件 一个from标签链接的是search文件,method属性是post代码如下 1 2 3 4 5 6             姓名: 学号 性别:            

我在这先说出我的例子
逻辑的开始是一个简单的jsp文件
一个from标签链接的是search文件,method属性是post代码如下

1
2
3
4
5
6


   


        姓名: 学号 性别:
       
   

之后根据网页的配置文件WEB.xml中查询search文件并点击搜索按钮的时候将数据传给该文件,并调用该servlet的post方法;

1
2
3
4
5
6
7
8
9
10
11
12
13
14

 
 
    jee.pk3.AppListener
 

 
 
    SearchServlet
    SearchServlet
    jee.pk3.SearchServlet
 

 
    SearchServlet
    /SearchServlet
 

上面代码中有一个servleContextLIstener监听器,该监听器的主要功能是当servletcontext容器调用时调用sqlSessionFactoryUtil.init();也就是当search文件的servletcontext容器调用的时候监听器就会调用SqlSessionFactoryUtil.init();

1
2
3
4
5
6
7
8
9
10
11
12
13
14

public class AppListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
       
        try {
            SqlSessionFactoryUtil.init();
        } catch (IOException e) {
           
            e.printStackTrace();
        }
    }

}

下面我们看看servlet文件中的代码。联系上面jsp文件中的代码以及web.xml代码可以看出search指的就是searchServlet文件,jsp文件传值也会传到该servlet文件的dopost方法的req参数中。然后借用req就可以调用jsp文件中的值了。
在下面就是mybatis的代码了,首先是实例化SqlSessionFactory ,该实例化涉及到刚才的配监听器,在调用servlet文件的时候servletcontext容器就会被调用,监听器的contextInitialized方法就会被调用,从而调用SqlSessionFactoryUtil.init();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

public class SearchServlet extends httpservlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String name=req.getParameter("name");
        String sno=req.getParameter("sno");
        String gender=req.getParameter("gender");
        Student stu=new Student();
        stu.setName(name);
        stu.setSno(sno);
        stu.setGender(gender);

        SqlSessionFactory sqlSessionFactory=SqlSessionFactoryUtil.getInsertance();
        try (SqlSession sqlSession=sqlSessionFactory.openSession(true)){
            StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
            List list=studentMapper.search(stu);
            System.out.println(list);
        }
    }

}

下面是mybatis查询数据库的sqlSessionFactory 的实例化,也就是在servlet文件被调用的时候,该实例化就已经完成。这样书写的目的是保证sqlSessionFactory的单例,避免多次实例化sqlSessionFactory造成资源的浪费。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

public class SqlSessionFactoryUtil {

    public static SqlSessionFactory sqlSessionFactory;
    public static void init() throws IOException {
        String config="mybatis_config.xml";
        InputStream is=Resources.getResourceAsStream(config);
        sqlSessionFactory =new SqlSessionFactoryBuilder().build(is);
    }
   
    public static SqlSessionFactory getInsertance() {
        return sqlSessionFactory;
    }
   
}

数据库的链接说完了,接下来我们说一说搜索语句的配置。首先我们要一个搜索方法的接口。接口代码如下:

1
2
3

public interface StudentMapper {
    public List search(Student stu);
}

下面是sql搜索的配置文件,首先使用mapper标签确定映射的接口;然后使用resultMap标签根据实体类将数据库中的字段映射到实体对应的属性上。最后调用select标签将接口中的方法设为id,parameterType属性设置参数方法的参数,resultMap属性设置的是映射关系。select内部是sql语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 


   
   
   
   
   


好了我的分享到此结束,如果你的所有逻辑都能通顺该错误就不会出现,所以请你仔细检查自己的代码是否出现各个传递层次的断层。

来源地址:https://blog.csdn.net/weixin_53867380/article/details/127498606

--结束END--

本文标题: Tomcat出现404的解决方法[类型 状态报告 消息 请求的资源[/]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源]

本文链接: https://www.lsjlt.com/news/434029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作