javaweb學習總結----jsp綜合練習

JSP綜合練習

模擬數據庫

package com.wu.db;

import com.wu.pojo.News;

import java.util.ArrayList;
import java.util.List;

public class NewsDB {

    public static List<News> list = new ArrayList<News>();

    static {
        list.add(new News("7.16","學習了JSP的使用以及源碼分析"));
        list.add(new News("7.14","學習了Servlet,簡單的JSP的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
        list.add(new News("7.13","學習了Tomcat,Servlet的使用"));
    }

}

實體類

package com.wu.pojo;

//實體類,一般放在pojo包下,【 or  entity  or JavaBeans】
//實體類,只有屬性,一般用來映射數據庫中的字段  ( O R M )
//私有屬性 , 無參構造,有參構造
//get/set方法
//爲了方便程序打印,建議加上toString();
public class News {

    private String data;
    private String content;

    public News() {
    }

    public News(String data, String content) {
        this.data = data;
        this.content = content;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getContent() {
        return content;
    }

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

    @Override
    public String toString() {
        return "News{" +
                "data='" + data + '\'' +
                ", content='" + content + '\'' +
                '}';
    }
}

dao層

package com.wu.dao;


//dao包一般用來存放操作數據庫的對象類;

import com.wu.pojo.News;

import java.util.List;

public interface NewsDao {
    //獲得所有的新聞
    public List<News> getAllNews();

}
package com.wu.dao;

import com.wu.db.NewsDB;
import com.wu.pojo.News;

import java.util.List;

//NewsDao的實現類
public class NewsDaoImpl implements NewsDao {
    @Override
    public List<News> getAllNews() {
        List<News> list = NewsDB.list;
        return list;
    }

}

service層

package com.wu.service;

import com.wu.pojo.News;

import java.util.List;

//service一般存放業務類
public interface NewsService {
    //獲得所有的新聞
    public List<News> getAllNews();
}
package com.wu.service;

import com.wu.dao.NewsDao;
import comwu.dao.NewsDaoImpl;
import com.wu.pojo.News;

import java.util.List;

public class NewsServiceImpl implements NewsService {

    //從dao層中取出相應的操作數據庫的方法
    NewsDao newsDao = new NewsDaoImpl();

    @Override
    public List<News> getAllNews() {
        return newsDao.getAllNews();
    }
}

servlet

package com.wu.servlet;

import com.wu.pojo.News;
import com.wu.service.NewsService;
import com.wu.service.NewsServiceImpl;
import org.apache.catalina.Session;
import org.junit.Test;

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

public class NewsServlet extends HttpServlet {

    NewsService newsService = new NewsServiceImpl();

    @Test
    public void test(){


    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //寫代碼讀取數據存到某個地方,讓前端讀取;

        List<News> allNews = newsService.getAllNews();//從業務層去獲得數據中的全部新聞

        int i = 1;

        for (News allNew : allNews) { //遍歷獲得每一個新聞

            String data = allNew.getData();
            String content = allNew.getContent();

            //四大作用域
            //      page(不用它,代表當前頁面)
            //      request(一次請求中有效): 登錄註冊
            //      session (一次會話中存在) : 購物車
            //      application:本質就是Context (全局,所有會話共享) : 廣告
            //這四個作用域用來存放一些內容或者對象
            HttpSession session = req.getSession();

            session.setAttribute("data"+i,data);
            session.setAttribute("content"+i,content);

            System.out.println(session.getAttribute("data"+i));
            System.out.println(session.getAttribute("content"+i));

            i++;//自增
        }

        //數據都讀取出來了,給你放到session中了,該去訪問頁面了
        resp.sendRedirect("index.jsp");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<servlet>
    <servlet-name>newsServlet</servlet-name>
    <servlet-class>com.wu.servlet.NewsServlet</servlet-class>
</servlet>


<servlet-mapping>
    <servlet-name>newsServlet</servlet-name>
    <url-pattern>/news.do</url-pattern>
</servlet-mapping>

index.jsp

<%@ page import="com.wu.db.NewsDB" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>首頁</title>

  <%--引入css--%>
  <link rel="stylesheet" href="${pageContext.request.contextPath}/statics/layui/css/layui.css">
  <%--引入靜態資源文件必須帶上項目路徑位置--%>
  <Script src="${pageContext.request.contextPath}/statics/layui/layui.js"></Script>

</head>
<body>

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  <legend>常規時間線</legend>
</fieldset>

<ul class="layui-timeline">


<%
  for (int i = 1; i <= NewsDB.list.size(); i++) {
%>

  <li class="layui-timeline-item">
    <i class="layui-icon layui-timeline-axis"></i>
    <div class="layui-timeline-content layui-text">
      <h3 class="layui-timeline-title">
        <%=request.getSession().getAttribute("data"+i)%>
        <%--${sessionScope.data1}--%>
      </h3>
      <p>
        <%--${sessionScope.content1}--%>
          <%=request.getSession().getAttribute("content"+i)%>
      </p>
    </div>
  </li>

<%
  }
%>


  <li class="layui-timeline-item">
    <i class="layui-icon layui-timeline-axis"></i>
    <div class="layui-timeline-content layui-text">
      <div class="layui-timeline-title">過去</div>
    </div>
  </li>
</ul>


</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章