• 第四次作业


    JSP显示新闻 第四次作业

     

    小组成员:郭昭杰    唐任峻杰

    码云地址:https://gitee.com/ashes-g/JSP

    一、数据库相关准备

    新闻相关信息数据

     登录相关信息数据

    二、新闻类

    新建新闻类News,用于获取和设置新闻的各项属性

    复制代码
    package Service;
    
    import java.util.Date;
    
    public class News {
        public News(){}
        private int newsID;
        private String newsCategory;
        private String newsTitle;
        private String newsContent;
        private String newsAuthor;
        private Date newsDate;
    
        public int getNewsID(){
            return newsID;
        }
    
        public void setNewsID(int newsID){
            this.newsID=newsID;
        }
    
        public String getNewsCategory(){
            return newsCategory;
        }
    
        public void setNewsCategory(String newsCategory){
    
            this.newsCategory= this.newsCategory;
        }
    
        public String getNewsTitle(){
            return newsTitle;
        }
    
        public void setNewsTitle(String newsTitle){
    
            this.newsTitle= this.newsTitle;
        }
    
        public String getNewsContent(){
    
            return newsContent;
        }
    
        public void setNewsContent(String newsContent){
    
            this.newsContent= this.newsContent;
        }
    
        public String getNewsAuthor(){
    
            return newsAuthor;
        }
    
        public void setNewsAuthor(String newsAuthor){
    
            this.newsAuthor= this.newsAuthor;
        }
    
        public Date getNewsDate(){
    
            return newsDate;
        }
    
        public void setNewsDate(java.sql.Date newsDate){
            this.newsDate= this.newsDate;
        }
    }
    复制代码

    三、新闻服务类

    新建新闻服务类NewsService,向数据库中查询所有新闻信息,并将每条新闻生成一个新闻对象装入List中并返回

    复制代码
    package Controller;
    
    import Service.News;
    import Service.NewsService;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;
    
    @WebServlet(name ="Controller.ShowNewsListServlet")
    public class ShowNewsServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            NewsService newsService=new NewsService();
            try {
                List<News> lsNews=newsService.QueryNews();
                request.setAttribute("lsNews",lsNews);
                request.getRequestDispatcher("ShowNewsList.jsp").forward(request,response);
            } catch (SQLException | ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
    复制代码

    四、登录

    根据用户输入的用户名和密码查询登录信息数据库,若验证正确则进入index.jsp页面显示欢迎信息,若验证失败则提示用户名或密码错误

    复制代码
    package Controller;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.*;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    
    @WebServlet(name = "Controller.LoginServlet")
    public class LoginServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    response.setContentType("text/html; charset=UTF-8");
                    request.setCharacterEncoding("UTF-8");
    
            PrintWriter output=response.getWriter();
            String username = request.getParameter("username");
            String pwd = request.getParameter("pwd");
            //output.println("账号:  "+username+"  密码:  "+pwd+"<br>");
            ResultSet rs ;
            Statement statement = null;
            Connection conn =null;
    
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","Guozhaojie610");
                String sql="select * from new_schema.login where username='"+username+"' and password='"+pwd+"'";
                statement =conn.createStatement();
                rs = statement.executeQuery(sql);
    
    
    
                if(rs.next()){
                    request.setAttribute("username",username);
                    request.getRequestDispatcher("index.jsp").forward(request,response);
    
                }else {
                    output.println("账号或密码错误");
                }
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    }
    复制代码

    五、新闻显示

    进入欢迎页面5秒后自动跳转至新闻显示页面

    欢迎页面:

    复制代码
    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/6/2
      Time: 16:36
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <% response.setHeader("refresh", "5;ShowNewsList");%>
    <html>
    <head>
      <title>$Title$</title>
    </head>
    <body>
    <h3>登陆成功!</h3>
    <h4>当前用户:${username}</h4>
    <h4>5秒后自动跳转至新闻页面...</h4>
    </body>
    </html>
    复制代码

    新闻显示页面调用控制层代码获取新闻信息并显示

    控制层代码:

    复制代码
    package Controller;
    
    import Service.News;
    import Service.NewsService;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;
    
    @WebServlet(name ="Controller.ShowNewsListServlet")
    public class ShowNewsServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            NewsService newsService=new NewsService();
            try {
                List<News> lsNews=newsService.QueryNews();
                request.setAttribute("lsNews",lsNews);
                request.getRequestDispatcher("ShowNewsList.jsp").forward(request,response);
            } catch (SQLException | ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
    复制代码

    六、最终效果截图

    登录界面:

     登录成功:

     新闻页面:

  • 相关阅读:
    数独小算法,测试通过(Java)
    OC运行时和方法机制笔记
    AlertView点击确定后再执行后面的代码
    对第三方库集成方式的分析
    当程序进入后台时执行长时间代码
    iOS开发之GCD使用总结
    缓存网络请求的结果
    防止 NSTimer retain 作为 target 的 self
    获取设备唯一码
    原生网络请求以及AFN网络请求/异步下载
  • 原文地址:https://www.cnblogs.com/trjjcool/p/13130673.html
Copyright © 2020-2023  润新知