`

基于java web的博客平台(一)

 
阅读更多

一、概述

这个基于javaweb的博客平台涉及的技术有jsp、servlet、Javabean、Mysql数据库、html、css、js等。这个平台采用了mvc的设计模式:

Model层:实现系统业务逻辑,由Javabean负责;

View层:负责与用户进行交互,显示内容给用户,有jsp、html、css、js等负责;

Control层:负责Model和View层的连接,我们在iew层所做的操作,比如登陆、注册等等,我们都是先把请求提交到Controller(控制层的控制器),然后Controller根据请求调用由工厂模式生成相应的Action的对象,并由该对象执行相应的方法处理请求,并决定反馈给用户的是哪一个页面,即View层。

这就是我们的项目的整体的设计思路,采用mvc设计模式,各种技术分工合作,它有这些优势,整个流程非常清晰;易于我们以后的更新维护;同时mvc的分层模式,可以让我们web页面编写(即前端)专注也界面的设计,而不用去了解后台的代码如何如何,业务逻辑、功能的编写也专注于其职内容的设计,也不用考虑前端的如何设计;同时当我们想增加功能、或修改某些功能时,我们也是很简单的加一个相关的Action或修改某些Action,这样可使我们的代码的维护更加轻松。

二、后台管理模块

  这是后台管理模块的目录:

我们可以到它由几部分构成,article、friend、photo、word这是后台管理的四大主要模块,文章管理,朋友管理,相册管理,留言管理。

而其中的view里面的文件结构如下:


可以看到它由这四个jsp文件构成,这四个文件是要包含进AdminIndex.jsp文件里面的,分别构成了AdminIndex.jsp的上下左右部分。这个AdminIndex.jsp就是后台管理的主页面。

我们的AdminIndex.jsp的代码结构如下:

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.List,com.MyBlog.common.GLOBALS"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%String URL=session.getAttribute("url").toString(); %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<%=URL%>/css/admin/AdminIndex.css">
<title>管理博客</title>
</head>
<body id="body">
<!-- 利用表格划分三行 -->
		<table  id="table" >
		<!-- 第一行 -->
			<tr> 
				<td align="center" colspan="2">
					<!-- 划分,顶部 -->
						<jsp:include page="${URL}/admin/view/AdminTop.jsp"/>
				</td>
			</tr>
			<!-- 第二行 -->
			<tr  > 
				<td width="220px"   valign="top">
					<!-- 中间分成左右两部分 -左-->
						<jsp:include  page="${URL}/admin/view/AdminLeft.jsp"/>
				</td>
				
				<td width="776px" align="center" valign="top">
					<!-- 中间分成左右两部分 -右-->
						<jsp:include  page="${URL}/admin/view/AdminRight.jsp"/>
				</td>
			</tr>
			<!-- 第三行 -->
			<tr > 
				<td  width="1000px" align="center" colspan="2">
					<!-- 底部 -->
						<jsp:include page="${URL}/admin/view/AdminEnd.jsp"/>
				</td>
			</tr>
			
		</table>

	<a href="#" id="toTop_admin" style="margin-right: -526px; right: 50%; display: inline;">
		<span id="toTopHover_admin" style="opacity: 0;"></span>
	</a>
</body>
</html>

然后是error.jsp、success.jsp页面,是我们操作失误或成功之后,反馈给用户的一个提示信息的页面。

Login.jsp、Register.jsp分别是登录和注册页面。

1、我们先看登录,进入后台管理首先第一步就是登陆,我们的登录就是一个表单

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.List,com.MyBlog.common.GLOBALS"%>
<!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">
<%String URL=session.getAttribute("url").toString(); %>
<link rel="stylesheet" href="<%=URL%>/css/admin/Login.css">
<title>登录</title>
<script src="<%=URL%>/js/checkform.js"></script>
</head>
<body id="body">

	<div class="idivLogin">
	<!-- 通过js文件checkform.js进行输入数据格式的校验,
	再进入到TestServlet代码中与数据库数据进行校验,判断输入是否正确 -->
		<form id="formLogin" onsubmit="return checkselect(this)" method="post" 
		action="<%=URL%>/LoginAction.action">
			<h3>欢迎登录MyBlog!</h3>
			<table id="tableLogin">
			<tr>
				<td>
					<p class="pLogin">用户名:</p>
				</td>
				<td>	
						<input name="name" type="text"/>
						<font color="#FF0000">*</font>
					
				</td>
			</tr>
			<tr>
				<td>
					<p class="pLogin">密码:</p>
				</td>
				<td>
						<input name="password" type="password"/>
						<font color="#FF0000">*</font>
				</td>
			</tr>
			<tr>
				<td></td>
				<td>
				    <input value="登录" type="submit"/>&nbsp;
					<input value="重置" type="reset"/>
				</td>
			</tr>
			<tr>
				<td></td>
				<td>
				    <a href="<%=URL%>/admin/Register.jsp">注册新账号</a>
				</td>
			</tr>
			
			</table>
		</form>
	</div>
	</body>
</html>

我们的表单提交的action为"<%=URL%>/LoginAction.action"这个表单提交后,是先由控制器处理,控制器处理出我们”/”和”.”之间的字段LoginAction,然后由该字段创建相应action的对象,并执行该对象的excute方法,处理我们的登录操作。我们的其它操作也是如此。

现在我们看action_implements包里面的LoginAction类的,代码如下:

package com.MyBlog.action_implements;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.MyBlog.action.Action;
import com.MyBlog.common.GLOBALS;
import com.MyBlog.dao.LoginDao;
import com.MyBlog.entity.MasterBean;

public class LoginAction implements Action {

	LoginDao loginDao = new LoginDao();
	public String URL = "";

	/*
	 * 重写action接口中的方法实现该接口
	 * 
	 * @功能 实现动作对象action所对应类中的接口方法,返回下一个页面的url(即需要跳转到该url对应的页面)
	 */
	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.URL = GLOBALS.getPath(request);
		String url = "error.jsp";
		// 获取页面输入元素,用户民及密码
		String user_name = request.getParameter("name");
		String user_password = request.getParameter("password");
		// 控制台输出
		System.out.println("用户名" + user_name);
		System.out.println("用户密码:" + user_password);
		//loginDao的Login放法对用户名进行验证,查询数据库里面是否有相对应的
		//用户名、密码。
		MasterBean masterBean = loginDao.Login(user_name, user_password);

		// 回应页面请求,在网页中响应,通过out可以直接在这里写html的代码
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();

		
		if (masterBean != null) {
			// 若用户密码正确,查询结果masterBean不应该是null。
			// 校验成功后进入到AdminIndex.jsp显示在页面上
			// 创建一个session
			HttpSession session=request.getSession();
			// setAttribute方法在session中设置用户信息
			session.setAttribute("masterBean", masterBean);
			System.out.println("登录成功!!!");
			System.out.println("用户的masterID:"+masterBean.getId());
			url = "/admin/AdminIndex.jsp";
			return url;

		} else {
			out.write("<html>");
			out.write("<p>登录失败</p>");
			out.write("</html>");
		}

		return url;
	}
}
 

登录主要有三步:

A、我们的request的对象的getParameter方法可以根据表单里面的input的name属性获得我们提交的表单的input里面的内容,通过这个我们获取了用户名和密码。

B、如何验证用户名和密码的正确性也是很简单的,我们可以直接查询数据库的用户表,查询则由loginDao负责查询。若有结果,登录成功,添加一个名为masterBean的session,否则登陆失败。

C、登录成功后,我们就直接跳转到"/admin/AdminIndex.jsp"后台管理主页面)

2、注册页面也是一个表单

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"   import="java.util.List,com.MyBlog.common.GLOBALS"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%String URL=session.getAttribute("url").toString(); %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<%=URL%>/css/admin/Register.css">
<title>注册账号</title>
<script src="<%=URL%>/js/checkRegister.js"></script>
</head>
<body id="body">
 
	<div id="register">
		<form id="formRegister" onsubmit="return checkRegister(this)" method="post" 
		action="<%=URL%>/RegisterAction.action">
			<h3 id="register_h3">欢迎注册MyBlog!</h3>
			<table id="tableRegister">
			<tr>
				<td>
					<p class="Register_p">用户名:</p>
				</td>
				<td>	
						<input class="register_input" name="name" type="text"/>
						<font color="#FF0000">*</font>
					
				</td>
			</tr>
			<tr>
				<td>
					<p class="Register_p">密码:</p>
				</td>
				<td>
						<input class="register_input" name="password" type="password"/>
						<font color="#FF0000">*</font>
				</td>
			</tr>
			
			<tr>
				<td>
					<p class="Register_p">确认密码:</p>
				</td>
				<td>
						<input class="register_input" name="password_sure" type="password"/>
						<font color="#FF0000">*</font>
				</td>
			</tr>
			
			
			<tr>
				<td>
					<p class="Register_p">邮箱:</p>
				</td>
				<td>
						<input class="register_input" name="email" type="text"/>
						<font color="#FF0000">*</font>
				</td>
			</tr>
			
			
			<tr>
				<td>
					<p class="Register_p">性别:</p>
				</td>
				<td>
						<label for="sex_man">&nbsp;男</label>
							<input id="sex_man" name="sex" type="radio" value="0"/>&nbsp;&nbsp;
						<label for="sex_women" >女</label>
							<input id="sex_women" name="sex" type="radio" value="1"/>
						<font color="#FF0000">&nbsp;*</font>
				</td>
			</tr>
			
			<tr>
				<td></td>
				<td>
				    <input value="注册" type="submit"/>&nbsp;
					<input value="重置" type="reset"/>
				</td>
			</tr>
			</table>
		</form>
	</div>
</body>
</html>

注册的表单提交的是<%=URL%>/RegisterAction.action交由控制器处理以后,执行相关对象的excute方法。

现在我们可以看action_implements包里面的RegisterAction类,代码如下:

 

package com.MyBlog.action_implements;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.MyBlog.action.Action;
import com.MyBlog.common.GLOBALS;
import com.MyBlog.dao.RegisterDao;
import com.MyBlog.entity.MasterBean;

public class RegisterAction implements Action {
	public String URL = "";
	RegisterDao registerDao = new RegisterDao();

	/*
	 * 重写action接口中的方法实现该接口
	 * 
	 * @功能 实现动作对象action所对应类中的接口方法,返回下一个页面的url(即需要跳转到该url对应的页面)
	 */
	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.URL = GLOBALS.getPath(request);
		String url = "error.jsp";
		// 获取页面输入元素
		String user_name = request.getParameter("name");
		String user_password = request.getParameter("password");
		String sex = request.getParameter("sex");
		System.out.println(sex);
		int user_sex = Integer.parseInt(sex);
		String user_email = request.getParameter("email");
		// 设置master实体
		MasterBean masterBean = new MasterBean();
		masterBean.setMasterName(user_name);
		masterBean.setMasterPassword(user_password);
		masterBean.setMasterSex(user_sex);
		masterBean.setMasterOicq(user_email);

		// 判断是否注册成功
		boolean flag = registerDao.masterRegister(masterBean);
		System.out.println(flag);

		// 控制台输出
		System.out.println("用户名" + user_name);
		System.out.println("用户密码:" + user_password);

		// 回应页面请求,在网页中响应,通过out可以直接在这里写html的代码
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();

		if (flag) {
			// 若用户密码正确
			// requestuestDispatcher
			// rd=request.getrequestuestDispatcher("/front/FrontIndex.jsp");
			// 校验成功后进入到AdminIndex.jsp显示在页面上
			System.out.println("注册成功!!!");
			url = "/admin/Login.jsp";
			return url;

		} else {
			out.write("<html>");
			out.write("<p>用户已经存在,注册失败!!!</p>");
			out.write("</html>");
		}
		return url;
	}

}
 

  A、我们先获取所有的注册信息,然后构建一个MasterBean对象。

B、然后把这个参数传递到RegisterDao对象的masterRegister方法,由该对象来验证注册信息,若可以注册,则返回true,否则false。

C、我们根据masterRegister的返回值判断是否成功注册,若成功跳转"/admin/Login.jsp"登录界面

3、我们看AdminIndex.jsp的顶部 

<jsp:include page="${URL}/admin/view/AdminTop.jsp"/>包含了AdminTop.jsp文件,

我们的顶部放置了回首页,退出登录的按钮,这个顶部是不变的,我们随时可以点击回首页、或退出登录。

关于退出登录,我们也有相关的action处理:

<a class="menu" href="<%=URL%>/LogoutAction.action">[退出登录]</a>

我们来LogoutAction的excute方法的代码:

	/*
	 * 重写action接口中的方法实现该接口
	 * 
	 * @功能 实现动作对象action所对应类中的接口方法,返回下一个页面的url(即需要跳转到该url对应的页面)
	 */
	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		// request.getSession(ture)等同于 HttpServletRequest.getSession():
		// 若存了会话(session)则返回该会话,否则新建一个会话(session)。
		// request.getSession(false):若存在会话(session)则返回该会话,否则返回NULL
		// 所以这里我们用request.getSession(false)
		
		// 获取session
		HttpSession session = request.getSession(false);
		if (session != null) {
		// 如果有session,则把用户信息从session里面除掉。
				session.removeAttribute("masterBean");
		}
		String url = "/admin/Login.jsp";
		return url;
	}

我们的登出操作就是把名为masterBean的session删掉。

 

  • 大小: 11.8 KB
  • 大小: 15.4 KB
分享到:
评论

相关推荐

    基于java web的博客系统

    【基于Java Web的博客系统】是一个综合性的软件开发项目,主要使用Java技术栈构建一个运行在Web环境下的博客平台。这个系统通常包含多个模块,如用户管理、文章发布、评论互动、分类管理、搜索功能等,为用户提供了...

    基于Java Web的博客系统

    这个描述简洁明了地指出了项目的核心内容——一个基于Java Web技术的博客平台。这种类型的系统通常具备用户注册、登录、发布文章、评论互动、分类管理等功能。开发者利用Java Web的特性,如请求处理、数据持久化、...

    基于java web芝麻开门博客网设计与实现.zip

    基于java web芝麻开门博客网设计与实现.zip基于java web芝麻开门博客网设计与实现.zip基于java web芝麻开门博客网设计与实现.zip基于java web芝麻开门博客网设计与实现.zip基于java web芝麻开门博客网设计与实现.zip...

    基于 java web编程爱好者博客地带设计与实现.zip

    基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程爱好者博客地带设计与实现.zip基于 java web编程...

    web课程设计-基于Java web的博客系统(源码+数据库+报告).zip

    因此,基于Java Web技术开发和设计的博客系统,运用MVC开发模式,Eclipse + Myeclipse集成开发环境,数据库技术等设计了博客系统。 本次课程设计主要阐述了不同用户对博客的不同管理,对管理员来说,有博主管理、...

    基于Java Web的博客系统源码.zip

    【标题】"基于Java Web的博客系统源码.zip"是一个包含了一整套使用Java Web技术开发的博客系统源代码的压缩文件。这个博客系统适用于多种场景,如课程设计、大作业、毕业设计、项目练习以及学习演示,为学习者提供了...

    基于Java Web技术博客项目系统的设计 与开发JAVA语言

    基于Java Web技术博客项目系统的设计 与开发

    基于java的博客系统

    【标题】"基于Java的博客系统"是一款使用Java技术栈构建的在线博客平台,它集成了SQL Server 2005数据库、Tomcat应用服务器以及MyEclipse开发环境。这个系统设计精巧,功能全面,提供了后台管理、用户注册、相册管理...

    基于Java web的美食网站系统的设计与实现.rar

    【标题】"基于Java web的美食网站系统的设计与实现"是一个关于构建在线美食分享平台的项目,它利用Java Web技术栈来实现。这个系统旨在提供一个互动的平台,让用户能够浏览、分享、评论各种美食信息,同时可能还包含...

    (原创+源码+论文) 基于Java Web技术开发的BBS论坛系统

    标题中的"(原创+源码+论文) 基于Java Web技术开发的BBS论坛系统"揭示了这个压缩包文件的主要内容,它是一个基于Java Web技术实现的BBS(Bulletin Board System,电子公告板)论坛系统的完整源码和相关论文。...

    个人博客 java web

    首先,Java Web是一种基于Java技术的Web应用开发框架,它提供了强大的服务器端编程能力,使得开发者能够构建功能丰富的动态网站。Java Web开发通常涉及Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages ...

    基于java的个人博客系统的设计与实现.zip

    本项目“基于Java的个人博客系统的设计与实现”旨在提供一个全面的、易于理解和学习的Java Web开发实例,为初学者提供宝贵的实践机会,同时也适合作为毕业设计的参考。 首先,我们需要理解Java技术栈的基础。Java是...

    基于Java web的个人博客系统文档.doc

    【基于Java Web的个人博客系统】是一个利用Java技术构建的在线平台,允许用户轻松创建、发布和管理他们的个人博客。这种系统充分利用了Web Log的概念,提供了简易的傻瓜化信息发布方式,让不具备专业编程知识的普通...

    基于Java的博客系统

    【基于Java的博客系统】是一种使用Java Web技术构建的在线平台,它允许用户发布、分享和阅读文章。这种系统的核心特点在于其稳定性和可扩展性,使得它能够处理大量并发访问,同时保持数据的安全和一致性。 Java Web...

    基于Java Web的博客网站.rar

    【标题】: "基于Java Web的博客网站" 是一个使用Java技术栈开发的Web应用程序,主要功能是构建一个在线博客平台。这个项目充分利用了Java Web技术的优势,为用户提供发布、阅读和评论博客的功能。 【描述】: 这个...

    java web 博客

    Java Web 博客系统是一种基于Java技术构建的网络应用程序,主要用于个人或团队发表文章、分享观点、提供互动交流的平台。在这个系统中,用户可以进行登录、注册、发布文章、评论、删除文章等一系列操作。下面我们将...

    基于Java Web的个人博客1

    本项目是一个基于Java Web的个人博客网站,提供了一个博客网站的所有核心功能,包括: 1. 主页:显示姓名和个人信息,点击连接可跳转至主页、博客、项目、关于页面。 2. 博客:点击左侧展开侧边栏,提供对应跳转,...

    基于Java Web的博客系统(含数据库文件)

    这是一个基于Java Web技术开发的博客系统项目,包含了完整的源代码以及相关的数据库文件。这个项目对于学习和理解Java Web开发有着重要的实践价值。下面将详细解释其中涉及的关键知识点。 1. **Java Web技术**:...

    基于java的博客系统.zip

    【基于Java的博客系统】是一个使用SSH框架(Struts2、Spring、Hibernate)开发的完整博客平台。这个项目提供了一整套的博客管理功能,包括文章发布、分类管理、评论互动、用户注册与登录等。数据库文件的包含使得...

    基于Java Web的博客系统【源代码+PPT】

    本篇将深入探讨一个基于Java Web的博客系统,它展示了如何利用Java技术栈构建一个功能完备、用户体验良好的在线博客平台。 一、项目概述 该项目名为"基于Java Web的博客系统",提供了完整的源代码和PPT讲解材料,供...

Global site tag (gtag.js) - Google Analytics