去年的实训

记录一下~供大家交流学习!

在网上也借鉴了许多学生信息管理系统最终得出~

jsp代码在文中最后-0-百度网盘自取

数据库的表代码丢失各位加油-0-

根据下面的数据库设计可以很快做出来的:)

主要功能:显示微博信息,用户信息,能够查看微博,编辑微博,更改微博,以及删除微博。

总体设计方案:

创建用户信息数据库,微博信息数据库,连接数据库

用户通过账户和密码进行登录注册,进入微博页面完成增删查改微博信息的操作。

数据库设计(包括E-R图和表的结构设计)

DB:User

Table:Umanage(UserID,Password)

java 微博开发平台 api java微博管理系统_java


DB:WMessage

Table:Winfo(PublishCode,PublishTitle,PublishDate,PublishContent)

java 微博开发平台 api java微博管理系统_java 微博开发平台 api_02


系统各功能模块的实现过程

一、程序运行的流程图

java 微博开发平台 api java微博管理系统_java 微博开发平台 api_03


二、设计

1概要设计

1.1类

a@ User用户实体类

b@ Winfo微博信息实体类

c@ UserDao连接用户信息数据库,判断用户是否存在,添加新用户。

d@ WDao连接微博信息数据库,并实现微博信息增删改查的方法。

e@ UserServlet接收登录表单的参数,更新用户信息表,页面跳转。

f@ AddUserServlet接收注册表单的参数,更新用户信息表,页面跳转。

g@ InsertWinfo接收发布微博的表单的参数,更新微博信息表,页面跳转。

1.2JSP页面

h# 用户注册页面register.jsp

i# 用户登录页面login.jsp

j# 微博信息首页welcome.Jsp

k# 发布微博页面PublishW.jsp

l# 修改微博页面ReviseFormW.jsp

m# 处理ReviseFormW.jsp提交的数据的页面ReviseW.jsp

n# 处理超链接删除的DeleteW.jsp

css样式

o& welcome.css 基础的标题和页面背景设置

2详细设计
1.1类的设计
1.1.1 com.pojo包(实体类):
* User类: UserID,Password属性。
set,get方法设置和获取UserID和Password的值
构造方法User(String UserID,String Password) 实现对单个用户信息的存储即登录名和密码。
* Winfo类:PublishCode,PublishTitle,PublishDate,PublishContent属性。
set,get方法获取分别对应的值。
构造方法Winfo(String PublishCode,String PublishTitle,String PublishDate,String PublishContent)实现对单条微博信息的参数存储即微博编号,发布标题,发布日期,发布内容。
1.1.2 com.dao包(数据访问层):
* UserDao类:连接数据库User。
AddUser(User user)方法,添加驱动,新增用户信息,完成用户注册功能。
findUser(User user)方法,添加驱动,查询用户信息表,判断登陆用户是否为注册用户。
* WDao类:连接数据库Wmessage。
ArrayList ShowWinfo()添加驱动,查询所有的已发布微博信息。
InsertWinfo(Winfo winfo) 添加驱动,利用insert语句插入一条微博。
UpdateW(String query) 添加驱动,更新一条微博。
1.1.3 com.service包(业务逻辑层)
* UserBizImpl类:login(User user) 登录用户的业务方法。
register(User user)注册新用户的业务方法。
1.1.4 com.action包(表示层)
* UserServlet servlet:
doPost()通过login.jsp中表单传入的用户登录名和密码判断是否正确,完成登录,并跳转welcome微博首页,否则登录失败重新登录跳转login.jsp页面。
doGet()方法 执行doPost方法保证页面跳转。
* AddUserServlet servlet:
doPost() 通过register.jsp中表单传入的登录名和密码插入数据库中,完成注册,并跳转login登录页面,否则注册失败重新注册跳转register.jsp页面。
doGet()方法 执行doPost方法保证页面跳转。
* InsertWinfo servlet
doPost() 通过PublishW.jsp中表单传入的微博编号,发布标题,发布内容插入数据库中,而发布日期为java.util.Date获取的系统当前日期。完成微博发布,并且跳转welcome.jsp微博首页。
doGet()方法 执行doPost方法保证页面跳转。

1.2jsp页面的设计
1.2.1用户注册页面register.jsp
AddUserServlet进行接收处理用户输入想要注册的UserID和PassWord
1.2.2用户登录页面login.jsp
Userservlet进行接收处理用户输入已注册的UserID和PassWord
1.2.3微博信息首页welcome.Jsp
通过创建数据访问实例对象调用其中的ArrayList ShowWinfo()方法查询到所有已发布微博,并循环打印结果输出,用表格显示。
并且在每条微博信息后利用超链接删除或跳转ReviseFormW.jsp进行修改。
在左上角有一个发布微博的超链接,点击即跳转PublishW.jsp
1.2.4发布微博页面PublishW.jsp
用户输入想要发布的微博编号,但是微博编号唯一,发布标题,发布内容插入数据库中,而发布日期由系统自动输入。发布后跳转welcome.jsp微博首页,发布成功会更新微博的信息。失败则无新的信息。
1.2.5修改微博页面ReviseFormW.jsp
用户输入所需要修改的微博编号,发布标题,发布时间,发布内容。点击修改则跳转welcome.jsp微博首页,此时想要修改的微博信息会更新,否则无更新。
1.2.6 处理ReviseFormW.jsp提交的数据的页面ReviseW.jsp
接收表单ReviseForm.jsp数据,创建数据访问实例对象,创建update语句,调用其中的UpdateW(String query) 更新WMessage数据库中Winfo表信息。
1.2.7处理超链接删除的DeleteW.jsp
接收表单数据,创建数据访问实例对象,创建delete语句,调用其中的UpdateW(String query) 更新WMessage数据库中Winfo表信息。

结果展示

java 微博开发平台 api java微博管理系统_用户信息_04


代码部分

a@ User用户实体类
 package com.pojo;
 //用户实体类
 public class User {
 private String UserID;
 private String Password;
 public String getUserID() {
 return UserID;
 }
 public void setUsername(String UserID) {
 this.UserID = UserID;
 }
 public String getPassword() {
 return Password;
 }
 public void setPassword(String Password) {
 this.Password = Password;
 }
 public User(String UserID,String Password){
 this.UserID = UserID;
 this.Password = Password;
 }
 }b@ Winfo微博信息实体类
 package com.pojo;
 //微博信息实体类
 public class Winfo {
 private String PublishCode;
 private String PublishTitle;
 private String PublishDate;
 private String PublishContent;
 public String getPublishCode() {
 return PublishCode;
 }
 public void setPublishCode(String publishCode) {
 PublishCode = publishCode;
 }
 public Winfo(String PublishCode,String PublishTitle,String PublishDate,String PublishContent){
 this.PublishCode= PublishCode;
 this.PublishTitle= PublishTitle;
 this.PublishDate= PublishDate;
 this.PublishContent=PublishContent;
 }
 public String getPublishTitle() {
 return PublishTitle;
 }
 public void setPublishTitle(String publishTitle) {
 PublishTitle = publishTitle;
 }
 public String getPublishDate() {
 return PublishDate;
 }
 public void setPublishDate(String publishDate) {
 PublishDate = publishDate;
 }
 public String getPublishContent() {
 return PublishContent;
 }
 public void setPublishContent(String publishContent) {
 PublishContent = publishContent;
 }
 }c@ UserDao连接用户信息数据库,判断用户是否存在,添加新用户。
 package com.dao;
 import com.pojo.;
 import java.sql.;
 public class UserDao {
 private String url = “jdbc:sqlserver://localhost;databaseName=User”;
 private String driver = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;
 private String name = “sa”;
 private String pwd = “123456”;
 //新增用户信息,完成用户注册功能
 public boolean addUser(User user){
 Connection con = null;
 boolean flag = false;
 try{
 Class.forName(driver);
 con = DriverManager.getConnection(url, name, pwd);
 String add = “insert Umanage values(?,?)”;
 PreparedStatement stat = con.prepareStatement(add);
 stat.setString(1, user.getUserID());
 stat.setString(2, user.getPassword());
 stat.executeUpdate();
 flag = true;
 con.close();
 }
 catch(SQLException ex){
 System.out.println(“发生SQL异常:”+ex.getMessage());
 }
 catch(Exception ex){
 System.out.println(“发生一般异常:”+ex.getMessage());
 }
 return flag;
 }
 //查询用户信息表,确定登陆用户是不是注册用户
 public boolean findUser(User user){
 Connection con = null;
 boolean flag = false;
 //表示用户是否是注册用户
 try{
 //加载数据库驱动程序
 Class.forName(driver);
 con = DriverManager.getConnection(url, name, pwd);
 String query = “select * from Umanage where UserID = ? and Password = ?”;
 PreparedStatement stmt = con.prepareStatement(query);
 stmt.setString(1, user.getUserID());
 stmt.setString(2, user.getPassword());
 ResultSet rs = stmt.executeQuery();
 flag = rs.next();
 con.close();
 }
 catch(SQLException e){
 System.out.println(“SQL异常:”+e.getMessage());
 }
 catch(Exception e){
 System.out.println(“一般异常:”+e.getMessage());
 }
 return flag;
 }
 }d@ WDao连接微博信息数据库,并实现微博信息增删改查的方法。
 package com.dao;
 import java.sql.Connection;
 import java.util.ArrayList;
 import java.util.Date;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import com.pojo.Winfo;
 public class WDao {
 private static String url = “jdbc:sqlserver://localhost;databaseName=WMessage”;
 private static String driver = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;
 private static String name = “sa”;
 private static String pwd = “123456”;
 //查询所有微博
 public ArrayList ShowWinfo(){
 Connection con = null;
 ArrayList winfos=new ArrayList();
 Winfo winfo=null;
 try{
 //加载数据库驱动程序
 Class.forName(driver);
 con = DriverManager.getConnection(url, name, pwd);
 String query = “select * from Winfo”;
 Statement stmt = con.createStatement();
 ResultSet rs = stmt.executeQuery(query);
 while(rs.next()){
 winfo=new Winfo(rs.getString(“PublishCode”),rs.getString(“PublishTitle”),rs.getString(“PublishDate”),rs.getString(“PublishContent”));
 winfos.add(winfo);
 }
 con .close();
 }
 catch(SQLException e){
 System.out.println(“SQL异常:”+e.getMessage());
 }
 catch(Exception e){
 System.out.println(“一般异常:”+e.getMessage());
 }
 return winfos ;
 }
 //插入一条微博
 public static int InsertWinfo(Winfo winfo){
 Connection con = null;
 int rs=0;
 try{
 //加载数据库驱动程序
 Class.forName(driver);
 con = DriverManager.getConnection(url,name,pwd);
 String query = “insert into Winfo values(?,?,?,?)”;
 PreparedStatement stmt = con.prepareStatement(query);
 stmt.setString(1,winfo.getPublishCode());
 stmt.setString(2,winfo.getPublishTitle());
 stmt.setString(3,winfo.getPublishDate());
 stmt.setString(4,winfo.getPublishContent());
 rs=stmt.executeUpdate();
 con.close();
 }
 catch(SQLException e){
 System.out.println(“SQL异常:”+e.getMessage());
 }
 catch(Exception e){
 System.out.println(“一般异常:”+e.getMessage());
 }
 return rs ;
 }
 //更新一条微博
 public boolean UpdateW(String query){
 Connection con = null;
 int cnt=0;
 try{
 //加载数据库驱动程序
 Class.forName(driver);
 con = DriverManager.getConnection(url,name,pwd);
 Statement stmt = con.createStatement();
 cnt=stmt.executeUpdate(query);
 con.close();
 }
 catch(SQLException e){
 System.out.println(“SQL异常:”+e.getMessage());
 }
 catch(Exception e){
 System.out.println(“一般异常:”+e.getMessage());
 }
 return cnt>0;
 }
 }
 package com.service;
 import com.pojo.;
 import com.dao.;
 public class UserBizImpl {
 //登录用户的业务方法
 public boolean login(User user){
 UserDao ud = new UserDao();
 boolean flag = ud.findUser(user);
 return flag;
 }
//注册新用户的业务方法
public boolean register(User user){
	UserDao ud = new UserDao();
	boolean flag = ud.addUser(user);
	return flag;
}
}
e@ UserServlet接收登录表单的参数,更新用户信息表,页面跳转。
 package com.action;
 import com.pojo.;
 import com.service.;
 import java.io.IOException;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 public class UserServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
 public UserServlet() {
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doPost(request, response);
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 request.setCharacterEncoding(“utf-8”);
 String UserID = request.getParameter(“UserID”);
 String Password = request.getParameter(“Password”);
 User user = new User(UserID,Password);
 boolean flag = false;
 UserBizImpl ub = new UserBizImpl();
 flag = ub.login(user);
 RequestDispatcher rd = null;
 ServletContext context = getServletContext();
 HttpSession hs = request.getSession();
 if(flag == true){
 hs.setAttribute(“message”, “欢迎:”+user.getUserID()+“访问”);
 rd = context.getRequestDispatcher("/welcome.jsp");
 }
 else{
 hs.setAttribute(“message”, “用户或者密码错误,请重新登录”);
 rd = context.getRequestDispatcher("/login.jsp");
 }
 rd.forward(request, response);
 }
 }f@ AddUserServlet接收注册表单的参数,更新用户信息表,页面跳转。
 package com.action;
 import com.pojo.;
 import com.service.;
 import java.io.IOException;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 public class AddUserServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
 public AddUserServlet() {
 super();
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doPost(request, response);
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 request.setCharacterEncoding(“utf-8”);
 String UserID = request.getParameter(“UserID”);
 String Password = request.getParameter(“Password”);
 User user = new User(UserID,Password);
 UserBizImpl ub = new UserBizImpl();
 boolean flag = ub.register(user);
 HttpSession hs = request.getSession();
 RequestDispatcher rd = null;
 ServletContext context = getServletContext();
 if(flag == true){
 hs.setAttribute(“message”, “请用新注册的账号登录”);
 rd = request.getRequestDispatcher("/login.jsp");
 }
 else{
 hs.setAttribute(“mesage”, “注册失败,请重新注册!”);
 rd = request.getRequestDispatcher("/register.jsp");
 }
 rd.forward(request, response);
 }
 }g@ InsertWinfo接收发布微博的表单的参数,更新微博信息表,页面跳转。
 package com.action;
 import java.io.IOException;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletContext;
 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.dao.WDao;
 import com.pojo.Winfo;
 public class InsertWinfo extends HttpServlet {
 private static final long serialVersionUID = 1L;
 public InsertWinfo() {
 super();
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doPost(request,response);
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 request.setCharacterEncoding(“utf-8”);
 Date date =new Date();
 SimpleDateFormat format=new SimpleDateFormat(“yyyy-MM-dd”);
 String code=request.getParameter(“PublishCode”);
 String title=request.getParameter(“PublishTitle”);
 String datetime=format.format(date);
 String content=request.getParameter(“PublishContent”);
 Winfo wi=new Winfo(code,title,datetime,content);
 int result=WDao.InsertWinfo(wi);
 RequestDispatcher rd = null;
 ServletContext context = getServletContext();
 HttpSession hs = request.getSession();
 if(result>0){
 hs.setAttribute(“message”, “发布成功”);
 rd = context.getRequestDispatcher("/welcome.jsp");
 }
 else{
 hs.setAttribute(“message”, “发布失败,已返回主页”);
 rd = context.getRequestDispatcher("/welcome.jsp");
 }
 rd.forward(request, response);
 }
 }h# 用户登录页面login.jsp
 <%@ page language=“java” contentType=“text/html; charset=utf-8”
 pageEncoding=“utf-8”%>

Login 用户登陆


UserID:

Password:


注册新用户


<% if(session.getAttribute("message")!=null) { String message = session.getAttribute("message").toString(); out.println(message); } %>

i# 用户注册页面register.jsp
<%@ page language=“java” contentType=“text/html; charset=utf-8”
pageEncoding=“utf-8”%>

Register 注册新用户


请输入id:

请输入密码:


<% if(session.getAttribute("message")!=null){ String message = session.getAttribute("message").toString(); out.println(message); } %>

j# 微博信息首页welcome.Jsp

<%@ page language=“java” contentType=“text/html; charset=utf-8”
 pageEncoding=“utf-8”%>
 <%@ page import = “java.sql." %>
 <%@page import="com.pojo.” %>
 <%@ page import= “com.dao." %>
 <%@page import="com.service.” %>
 <%@page import=“com.action." %>
 <%@page import="java.util.” %>

Wfirst page

微博信息一览 发布微博 发布编号 发布标题 发布时间 发布内容 操作 <% request.setCharacterEncoding("utf-8"); WDao wd=new WDao(); ArrayList winfos=wd.ShowWinfo(); Winfo winfo=null; for (int i=0;i

k# 发布微博页面PublishW.jsp
<%@ page language=“java” contentType=“text/html; charset=utf-8”
pageEncoding=“utf-8”%>

Insert title here 发布微博


输入发布编号:

输入发布标题:

输入发布内容:


l# 修改微博页面ReviseFormW.jsp

<%@ page language=“java” contentType=“text/html; charset=utf-8”
 pageEncoding=“utf-8”%>
 <%@ page import = “java.sql." %>
 <%@page import="com.pojo.” %>
 <%@ page import= “com.dao." %>
 <%@page import="com.service.” %>
 <%@page import=“com.action." %>
 <%@page import="java.util.” %>

Revise 修改微博


修改发布编号:

m# 处理ReviseFormW.jsp提交的数据的页面ReviseW.jsp

<%@ page language=“java” contentType=“text/html; charset=utf-8”
 pageEncoding=“utf-8”%>
 <%@ page import = “java.sql." %>
 <%@page import="com.pojo.” %>
 <%@ page import= “com.dao." %>
 <%@page import="com.service.” %>
 <%@page import=“com.action.*” %>
 <%@page import=“java.util.Date” %>
 <%@page import=“java.text.SimpleDateFormat”%> 修改 <% request.setCharacterEncoding("utf-8"); String PublishCode=request.getParameter("PublishCode"); String PublishTitle=request.getParameter("PublishTitle"); String PublishDate=request.getParameter("PublishDate"); String PublishContent=request.getParameter("PublishContent"); WDao wd=new WDao(); String query="update Winfo set PublishTitle='"+PublishTitle+"',PublishDate='"+PublishDate+"',PublishContent='"+PublishContent+"' where PublishCode='"+PublishCode+"'"; RequestDispatcher rd = null; ServletContext context = getServletContext(); HttpSession hs = request.getSession(); 
if(wd.UpdateW(query)){
 hs.setAttribute(“message”, “插入成功”);
 rd = context.getRequestDispatcher("/welcome.jsp");
 }
 else{
 out.print(“插入失败”);
 rd = context.getRequestDispatcher("/welcome.jsp");
 }rd.forward(request, response);
 %>n# 处理超链接删除的DeleteW.jsp
 <%@ page language=“java” contentType=“text/html; charset=utf-8”
 pageEncoding=“utf-8”%>
 <%@ page import = “java.sql." %>
 <%@page import="com.pojo.” %>
 <%@ page import= “com.dao." %>
 <%@page import="com.service.” %>
 <%@page import=“com.action." %>
 <%@page import="java.util.” %> Insert title here <% String PublishCode=request.getParameter("PublishCode"); String query="delete from Winfo where PublishCode='"+PublishCode+"'"; WDao wd=new WDao(); RequestDispatcher rd = null; ServletContext context = getServletContext(); HttpSession hs = request.getSession(); if(wd.UpdateW(query)){ hs.setAttribute("message", "删除成功"); rd = context.getRequestDispatcher("/welcome.jsp"); } else{ out.print("删除失败"); rd = context.getRequestDispatcher("/welcome.jsp"); }rd.forward(request, response); %> 
o& welcome.css样式
 @CHARSET “UTF-8”;
 body{
 background-color: #FFD8D9;
 }
 caption{ 
 font-size:30px;
 font-weight:bold;
 }


复制这段内容后打开百度网盘手机App,操作更方便哦
链接:https://pan.baidu.com/s/1o3X_Bqp4KF7_IKm8AAE40Q 提取码:uSfU

感谢阅读~