老师404错误 没找到

老师404错误 没找到

ackage com.imooc.jdbc.bean;

import java.util.Date;

public class Message {
    private long id;
    private long user_id;
    private String username;
    private String title;
    private String content;
    private Date createTime;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getUser_id() {
        return user_id;
    }

    public void setUser_id(long user_id) {
        this.user_id = user_id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Message(long id, long user_id, String username, String title, String content, Date createTime) {
        this.id = id;
        this.user_id = user_id;
        this.username = username;
        this.title = title;
        this.content = content;
        this.createTime = createTime;
    }
}

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>MessageBoard</title>
    <meta http-equiv="refresh" content="0;url=<%=request.getContextPath()%>/message/list.do">
  </head>
</html>

ConnectionUtil类

package com.imooc.jdbc.common;

import java.sql.*;

public final class ConnectionUtil {
    /**
     * 数据库操作的工具类
     */
    private static String url="jdbc:mysql://localhost:3306/message_board";
    private static String user="root";
    private static String password="root";
    private ConnectionUtil(){}
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("找不到驱动程序类,加载驱动失败");
            e.printStackTrace();
        }
    }

    /**
     * 获得数据库链接
     * @return
     */
    public static Connection getConnection(){
        try {
            return DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            System.out.println("创建数据库链接失败");
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 释放数据库资源
     * @param rs ResultSet
     * @param stmt Statement
     * @param conn Connection
     */
    public static void release(ResultSet rs,  Statement stmt,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                if(stmt!=null){
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }finally{
                        if(conn!=null){
                            try {
                                conn.close();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
        }
    }
}

MessageDAO

package com.imooc.jdbc.dao;

import com.imooc.jdbc.bean.Message;
import com.imooc.jdbc.common.ConnectionUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * 消息的dao
 */
public class MessageDAO {
    /**
     *分页查询全部留言
     * @param page 当前页码
     * @param pageSize 每页记录数
     * @return
     */
   public List<Message> getMessages(int page,int pageSize){
       Connection conn= ConnectionUtil.getConnection();
       String sql="select * from message order by create_time desc limit ?, ?";//limit m,n 从第m条记录开始取出总共n条记录
       PreparedStatement stmt=null;
       ResultSet rs=null;
       List<Message> messages=new ArrayList<>();
       try {
           stmt=conn.prepareStatement(sql);
           stmt.setInt(1,(page-1)*pageSize);
           stmt.setInt(2,pageSize);
          rs= stmt.executeQuery();
          while(rs.next()){
              messages.add(new Message(rs.getLong("id"),
                      rs.getLong("user_id"),
                      rs.getString("username"),
                      rs.getString("title"),
                      rs.getString("content"),
                      rs.getTimestamp("create_time")
                      ));
          }
       } catch (SQLException e) {
           e.printStackTrace();
       }finally{
           ConnectionUtil.release(rs,stmt,conn);
       }
       return messages;
    }

    /**
     * 计算所有留言数量
     * @return
     */
    public int counteMessages(){
        Connection conn= ConnectionUtil.getConnection();
        String sql="select count(*) total from message ";//limit m,n 从第m条记录开始取出总共n条记录
        PreparedStatement stmt=null;
        ResultSet rs=null;
        try {
            stmt=conn.prepareStatement(sql);
            rs=stmt.executeQuery();
            while(rs.next()){
                return rs.getInt("total");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            ConnectionUtil.release(rs,stmt,conn);
        }
       return 0;
    }
}

MessageService

package com.imooc.jdbc.service;

import com.imooc.jdbc.bean.Message;
import com.imooc.jdbc.dao.MessageDAO;

import java.util.List;

public class MessageService {
    private MessageDAO messageDAO;

    public MessageService() {
    messageDAO=new MessageDAO();
    }

    public List<Message> getMessages(int page,int pageSize){
        return messageDAO.getMessages(page,pageSize);
    }
    /**
     * 计算所有留言数量
     * @return
     */
    public int counteMessages(){
        return messageDAO.counteMessages();
    }
}

MessageListServlet

package com.imooc.jdbc.servlet;

import com.imooc.jdbc.bean.Message;
import com.imooc.jdbc.service.MessageService;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 消息列表的servlet
 */
public class MessageListServlet extends HttpServlet{
    private MessageService messageService;
    @Override
    public void init() throws ServletException {
        super.init();
        messageService=new MessageService();
    }

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String pageStr=request.getParameter("page");//当前页码
            int page=1;//页码默认值为1
        if(null !=pageStr&&(!"".equals(pageStr))){
        try {
            page = Integer.parseInt(pageStr);
        }catch (Exception e){
            e.printStackTrace();
        }
        }
       List<Message> messages= messageService.getMessages(page,5);//分页查询全部留言
        int count=messageService.counteMessages();
        int last=count%5==0?(count/5):((count/5)+1);
        request.setAttribute("last",last);
        request.setAttribute("messages",messages);
        request.setAttribute("page",page);
        request.getRequestDispatcher("/WEB_INF/views/biz/message_list.jsp").forward(request,response);

    }

    @Override
    public void destroy() {
        super.destroy();
        messageService=null;
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
                   version="3.1">
    <servlet>
        <servlet-name>MessageListServlet</servlet-name>
        <servlet-class>com.imooc.jdbc.servlet.MessageListServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MessageListServlet</servlet-name>
        <url-pattern>/message/list.do</url-pattern>
    </servlet-mapping>
<welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/views/error/404.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/WEB-INF/views/error/500.jsp</location>
</error-page>
</web-app>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2018-09-19 10:27:55

你好!看代码应该是下面这个地方写错了,WEB_INF改成WEB-INF

http://img1.sycdn.imooc.com//climg/5ba1b3eb0001312607040106.jpg

404错误是页面找不到的错误,如果还有问题,建议描述一下程序运行到哪一步的时候出现的404错误,把错误的页面截图贴出来。另外,再贴一下项目的目录结构,看看是否是因为文件存放的位置原因导致404错误。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师