目录
3. web层,写一个DiaryServlet,将前台传入的数据和后台连接起来;
1. 前端页面链接;
这里我们先找到diaryList.jsp页面,这是显示日志列表的页面,在其中的链接里面我们添加新的链接地址;
在href链接地址里面我们添加"diary?action=show&diaryId=${diary.diaryId }",
给后台传入两个参数,一个是action,一个是diaryId,
action是确定点击链接,diaryId是点击链接之后传递给后台的日志Id;
<!-- 日记列表数据 -->
<div class="diary_datas">
<ul>
<c:forEach var="diary" items="${diaryList }">
<li>『<fmt:formatDate value="${diary.releaseDate }" type="date" pattern="yyyy-MM-dd"/>』<span> <a href="diary?action=show&diaryId=${diary.diaryId }">${diary.title }</a></span></li>
</c:forEach>
</ul>
</div>
2. dao层,写展现日志内容信息的方法;
这里我们写一个方法,根据前台传入的diaryId,我们可以查询到日志的一切信息;
//根据日志的Id显示日志的信息
public Diary diaryShow(Connection con,String diaryId) throws Exception{
Diary diary=new Diary();
String sql="select * from t_diary t1,t_diarytype t2 where t1.typeId=t2.diaryTypeId and t1.diaryId=? ";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryId);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
diary.setDiaryId(rs.getInt("diaryId"));
diary.setTitle(rs.getString("title"));
diary.setContent(rs.getString("content"));
diary.setTypeId(rs.getInt("typeId"));
diary.setTypeName(rs.getString("typeName"));
diary.setReleaseDate(DateUtil.formatString(rs.getString("releaseDate"), "yyyy-MM-dd HH:mm:ss"));
}
return diary;
}
3. web层,写一个DiaryServlet,将前台传入的数据和后台连接起来;
这里首先获取前台的diaryId,然后调用dao层的diaryShow方法;
还有将主界面mainPage和我们新写的页面diaryShow.jsp相关联起来,
让主界面不再显示diaryList.jsp的内容,而是显示日志具体信息的内容;
package com.java.web;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.dao.DiaryDao;
import com.java.model.Diary;
import com.java.util.DbUtil;
public class DiaryServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private DbUtil dbUtil=new DbUtil();
private DiaryDao diaryDao=new DiaryDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置字符集编码
request.setCharacterEncoding("utf-8");
//获取前台的action
String action=request.getParameter("action");
if("show".equals(action)){
diaryShow(request,response);
}
}
//显示日志信息的方法
protected void diaryShow(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取前台的diaryId
String diaryId=request.getParameter("diaryId");
Connection con=null;
try {
con=dbUtil.getCon();
Diary diary=diaryDao.diaryShow(con, diaryId);
//将得到的diary存放起来
request.setAttribute("diary", diary);
//将得到的mainPage和diaryList连接起来
request.setAttribute("mainPage", "diary/diaryShow.jsp");
//内部转发
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
这里需要配置一下web.xml:
<!-- 日志信息界面 -->
<servlet>
<servlet-name>diaryServlet</servlet-name>
<servlet-class>com.java.web.DiaryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>diaryServlet</servlet-name>
<url-pattern>/diary</url-pattern>
</servlet-mapping>
4.前端页面展示,将日志具体信息展示出来;
这里我们主要写界面,展现日志具体信息的形式,以及css样式等;
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 使用JSTL标签需要引入的头文件 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- 使用fmt 对时间进行格式化的时候需要引入的头文件 -->
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="data_list">
<!-- 日志信息表头 -->
<div class="data_list_title">
<img src="${pageContext.request.contextPath}/images/diary_show_icon.png"/>日记信息
</div>
<div>
<!-- 日志信息标题 -->
<div class="diary_title"><h3>${diary.title }</h3></div>
<div class="diary_info">
发布时间:『<fmt:formatDate value="${diary.releaseDate }" type="date" pattern="yyyy-MM-dd HH:mm:ss"/>』 日志类别:${diary.typeName }
</div>
<!-- 日志信息内容 -->
<div class="diary_content">
${diary.content }
</div>
<!-- 日志信息修改 -->
<div class="diary_action">
<button class="btn btn-primary" type="button" onclick="">修改日志</button>
<button class="btn btn-primary" type="button" onclick="javascript:history.back()">返回</button>
<button class="btn btn-danger" type="button" onclick="">删除日志</button>
</div>
</div>
</div>
</body>
</html>
css样式文件:
/* 日志内容信息修饰 */
.data_list .diary_title{
margin-top:20px;
text-align: center;
}
.data_list .diary_info{
text-align: center;
}
.data_list .diary_content{
margin-top:20px;
}
.data_list .diary_action{
margin-top:20px;
}