基于javaweb+mysql的个人博客系统
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
技术框架
JSP Servlet MySQL
import com.demo.entity.User;
/**
* Servlet implementation class VisitorServlet
*/
public class VisitorServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserDao userDao = new UserDao();
private ArticleDao articleDao = new ArticleDao();
private CategroyDao categroyDao = new CategroyDao();
/**
* @see HttpServlet#HttpServlet()
*/
// 创建发送 sql语句的对象Statement
stmt = connection.createStatement();
String sql = "select * from tbl_article where blob_id=" + blogId + " and category_id=" + categroyId
+ " order by article_id desc";
// 执行插入的sql语句,并返回成功操作的记录数
rs = stmt.executeQuery(sql);
while (rs.next()) {
int articlelId = rs.getInt("article_id");
// int categroyId = rs.getInt("category_id");
String articleTitle = rs.getString("article_title");
String articleContent = rs.getString("article_content");
Date articleDateTime = rs.getDate("article_datetime");
int articleAccessNum = rs.getInt("article_accessNum");
int articleReviewNum = rs.getInt("article_reviewNum");
Blog blog = new Blog();
blog.setBlogId(blogId);
Categroy categroy = new Categroy();
categroy.setCategroyId(categroyId);
Article article = new Article(articlelId, blog, categroy, articleTitle, articleContent, articleDateTime,
articleAccessNum, articleReviewNum);
articleList.add(article);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
PageUtil pageUtil = (PageUtil)request.getAttribute("page");
if(pageUtil!=null&&pageUtil.getData()!=null&&pageUtil.getData().size()>0){
for(int i=0;i<pageUtil.getData().size();i++){
Article article = (Article)pageUtil.getData().get(i);
%>
<tr>
<td height="20"><img src="<%=basePath %>/images/dot.jpg" /></td>
<td><%=article.getArticleTitle() %></td>
<td align="center"><%=article.getArticleDateTime() %></td>
<td align="center">[<a href="UserArticleServlet?method=get&aid=<%=article.getArticlelId() %>">编辑</a>][<a href="javascript:delArticle(<%=article.getArticlelId()%>)">删除</a>]</td>
</tr>
<%
}
}
login(request,response);
}
if("logout".equals(method)){
logout(request,response);
}
if("updateBlogId".equals(method)){
updateBlogId(request,response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
alert("用户名不能为空!");
return false;
}
if (document.myform.pwd.value.length == 0) {
alert("密码不能为空");
password.focus();
password.select();
return false;
}
document.myform.submit();//提交表单
return true;
}
</script>
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.demo.dao.UserDao;
import com.demo.entity.Blog;
import com.demo.entity.User;
/**
* Servlet implementation class UserInfoServlet
*/
public class UserInfoServlet extends HttpServlet {
package com.demo.web;
import java.io.IOException;
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 com.demo.dao.UserDao;
import com.demo.entity.Blog;
import com.demo.entity.User;
/**
* Servlet implementation class UserInfoServlet
*/
public class UserInfoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserDao userDao = new UserDao();
/**
<td class="bg">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="bold">用户登录</td>
</tr>
<form action="UserInfoServlet" method="post" name="myform" onsubmit="return check()">
<tr>
<!-- 隐藏域 -->
<input type="hidden" name="method" value="login"/>
<td>用户名:<input id="uname" name="uname" type="text" class="inputs"/></td>
</tr>
<tr>
<td>密 码:<input id="pwd" name="pwd" type="password" class="inputs"/></td>
</tr>
<tr>
<td style="height:35px; padding-left:30px;"><input name="btn" type="button" value="登录"
class="rb1" onclick="check()"/></td>
</tr>
</form>
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.demo.entity.Article;
import com.demo.entity.Blog;
import com.demo.entity.Categroy;
import com.demo.util.DBUtil;
import com.demo.util.DateUtil;
import com.demo.util.PageUtil;
public class ArticleDao {
public List<Article> listArticle(Blog blog, boolean recode) {
List<Article> articleList = new ArrayList<Article>();
Connection connection = DBUtil.getConnection();
import com.demo.dao.CategroyDao;
import com.demo.dao.UserDao;
import com.demo.entity.Article;
import com.demo.entity.User;
/**
* Servlet implementation class VisitorServlet
*/
public class VisitorServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserDao userDao = new UserDao();
private ArticleDao articleDao = new ArticleDao();
private CategroyDao categroyDao = new CategroyDao();
/**
* @see HttpServlet#HttpServlet()
*/
public VisitorServlet() {
super();
// TODO Auto-generated constructor stub
}
<%
PageUtil pageUtil = (PageUtil)request.getAttribute("page");
if(pageUtil!=null&&pageUtil.getData()!=null&&pageUtil.getData().size()>0){
for(int i=0;i<pageUtil.getData().size();i++){
Categroy categroy = (Categroy)pageUtil.getData().get(i);
%>
<tr>
<td height="20"><img src="<%=basePath %>/images/dot.jpg" /></td>
<td><%=categroy.getCategroyId() %></td>
<td align="center"><%=categroy.getCategroyTitle() %></td>
<td align="center">[<a href="javascript:delCategroy(<%=categroy.getCategroyId()%>)">删除</a>]</td>
</tr>
<%
}
}
%>
<tr>
<td colspan="4" height="20">
页次:<%=pageUtil.getPageNo() %>/<%=pageUtil.getTotalPage()%> <%=pageUtil.getTotalPage()%>/页 共<%=pageUtil.getTotalCount() %>条 分页:
<a href="CategroyServlet?method=showPage&pageNo=1">首页</a>
<%
if (q != null) {
query = Boolean.parseBoolean(q);// 转换字符串为布尔类型
}
if (user != null) {
HttpSession session = request.getSession();
session.setAttribute("VISITOR",user);// 从session中取出登录成功后的用户对象
List<Article> articles = null;
List categroys = null;
if (user != null) {
articles = articleDao.listArticle(user.getBlog(), query);
categroys = categroyDao.searchCategroy(user.getBlog().getBlogId());
}
session.removeAttribute("ARTICLES");// 移除上一次查询的博文列表
if (articles != null && articles.size() > 0) {
session.setAttribute("ARTICLES", articles);
}
session.removeAttribute("CATEGROYS");
if (categroys != null && categroys.size() > 0) {
session.setAttribute("CATEGROYS", categroys);
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.demo.entity.Article;
import com.demo.entity.Blog;
import com.demo.entity.Categroy;
import com.demo.util.DBUtil;
import com.demo.util.DateUtil;
import com.demo.util.PageUtil;
public class ArticleDao {
public List<Article> listArticle(Blog blog, boolean recode) {
List<Article> articleList = new ArrayList<Article>();
Connection connection = DBUtil.getConnection();
Statement stmt = null;
ResultSet rs = null;// 记录集对象
try {
}
if("showPage".equals(method)){
listUserPageCategroy(request,response);
}
if("del".equals(method)){
delCategroy(request,response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
protected void listCategroy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User)session.getAttribute("USER");
List categroys = null;
if(user!=null){
blog.setBlogId(blogId);
Categroy categroy = new Categroy(categroyId,blog,categroyTitle);
categroys.add(categroy);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(connection);
}
return categroys;
}
public int addCategroy(Categroy categroy) {
Connection connection = DBUtil.getConnection();
PreparedStatement stmt = null;
int result = 0;
try {
//
// 创建发送 sql语句的对象Statement
String sql = "insert into tbl_category(blog_id,category_title) values(?,?)";
stmt = connection.prepareStatement(sql);
stmt.setInt(1, categroy.getBlog().getBlogId());
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
String projectName = config.getInitParameter("projectName");
System.out.println("正在访问"+projectName);
ServletContext servletContext = config.getServletContext();
String company = servletContext.getInitParameter("company");
System.out.println(company);
}