JavaWEB-04 项目案例(1)

一.项目分析

1.前端后端功能分析

前端功能

  1. 用户登录
  2. 用户注册
  3. 分类显示
  4. 信息显示
  5. 分页功能(首页,下一页,上一页,尾页)
  6. 历史记录功能
  7. 评论模块

后台功能

  1. 管理员登录
  2. 主页默认显示所有新闻+分页
  3. 发布新闻
  4. 修改新闻
  5. 分类模块:增删改查模块
  6. 评论模块:增删改查
  7. 普通用户管理:增删改查
  8. 分页功能

2.数据表分析

从模板中分析到有以下数据表:用户表(普通用户+管理员),新闻分类标,新闻信息表,评论表

用户信息表

字段名

中文说明

数据类型

约束

备注

Userid

编号

Number

主键

Username

用户名

Varchar2

Password

密码

Varchar2

sex

性别

Varchar2

Hobby

爱好

Varchar2

address

地址

Varchar2

urole

权限

number

0管理员 1普通用户(默认)

udate

注册时间

date

分类表|主题表

字段名

中文说明

数据类型

约束

备注

Tid

分类编号

Nunber

主键

tname

分类名称

Varchar2

信息表:

字段名

中文说明

数据类型

约束

备注

Nid

新闻编号

Number

主键

nTid

新闻分类编号

Number

外键

Ntitle

标题

Varchar2

Nauthor

作者

Varchar2

nsummary

摘要

Varchar2

ncontent

内容

Varchar2

nimage

图片

Varchar2

ncount

点击量

number

ndate

发布时间

date

二.项目代码

Oracle数据代码

create table tb_news_users
(
Userid number primary key,
Username varchar2(100),
Password varchar2(100),
sex varchar2(2),
Hobby varchar2(100),
address varchar2(100),
urole number default 1,--0 管理员  1普通用户
udate date

)
insert into tb_news_users
values
(1,'admin','123','男','玩游戏','湖南长沙',0,sysdate)
commit;
select * from tb_news_users;

--主题表
create table tb_news_theme
(
       tid number(20) primary key,
       tname varchar2(20)

)

insert into tb_news_theme values(1,'国际');
insert into tb_news_theme values(2,'美女');
insert into tb_news_theme values(3,'游戏');
insert into tb_news_theme values(4,'娱乐');
insert into tb_news_theme values(5,'体育');
insert into tb_news_theme values(6,'足浴');
insert into tb_news_theme values(7,'恐怖');
insert into tb_news_theme values(8,'军事');
insert into tb_news_theme values(9,'科技');
insert into tb_news_theme values(10,'数码');
insert into tb_news_theme values(11,'动漫');
commit



create table tb_news
(
    nid number(20) primary key,
    ntid number(20) references tb_news_theme(tid),
    ntitle varchar2(100),
    nauthor   varchar2(20) ,
    nsummary varchar2(200),
    ncontent varchar2(2000)
)

insert into tb_news values
(1,2,'毒瘤爱上女总裁1','张三','这是一个怎样的故事1?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(2,2,'毒瘤爱上女总裁2','李四','这是一个怎样的故事2?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(3,2,'毒瘤爱上女总裁3','张无忌','这是一个怎样的故事3?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');
insert into tb_news values
(4,2,'毒瘤爱上女总裁4','渣渣辉','这是一个怎样的故事4?','那是一个风雨交加的夜晚,毒瘤先生走进了一个无名山洞,做了一件难以忘记的事情');

commit;

select * from tb_news_theme
select * from tb_news

① 用户登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




项目发布系统-管理员登录



	
	

	
		
		
用 户
密 码
验证码 SBSB
版本信息 管理信息系统 2008 v2.0

② 登录中转站

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    <%
    	//该页面作用:根据request对象获取登录表单提交的值进行数据库交互
    	
    	//1.设置编码
    	request.setCharacterEncoding("utf-8");
    
    	//2.获取表单提交的值
    	//用户名
    	String username = request.getParameter("username");
    	//密码
    	String password = request.getParameter("password");
    	
    	//3.数据库交互
    	
    	String uname = "";
    	String pwd = "";
	    //加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		//建立连接
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		Connection conn = DriverManager.getConnection(url, "scott", "123");
    	//sql
    	String sql = "select * from tb_news_users where username = ? and password = ?";
    	PreparedStatement ps = conn.prepareStatement(sql);
    	ps.setString(1,username);
    	ps.setString(2,password);
    	ResultSet rs = ps.executeQuery();
    	if(rs.next()){//存在 就可以登录
    		uname = rs.getString(1);
    		pwd = rs.getString(2);
    	}
    	
    	if(""!=uname && ""!=pwd){
    		//转发到主页面
    		request.getRequestDispatcher("admin.jsp").forward(request, response);
    	}else{
    		//out.println(js)
			response.sendRedirect("login.jsp");
    	}
    
    
    %>
    
    

③ 项目后台主页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




项目发布系统-后台主页
		
	
	
		
		
管理员:<%=request.getParameter("username") %> 登录      login out

④ 项目后台发布管理

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




新闻发布--管理后台
		
	
	
		
		
管理员: 登录     退出

添加新闻:

⑤ 项目后台发布管理中转站

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
    	//作用:获取新增表单的数据进行数据库交互
    	
    	//1.编码格式
    	request.setCharacterEncoding("utf-8");
    	//2.获取表单提交的数据
    	//编号
    	int nid = 0;//定义一个变量保存最终的id
		//链接数据库查询到最大的id   最后+1
		//加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		//建立连接
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		Connection conn = DriverManager.getConnection(url, "scott", "123");
		
		String sql = "select nvl(max(nid),0) from tb_news";
		PreparedStatement ps = conn.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		if(rs.next()){
			nid = rs.getInt(1)+1;
		}
    	//新闻分类id
    	String tid = request.getParameter("ntid");
    	int ntid = Integer.valueOf(tid);
    	//标题
    	String ntitle = request.getParameter("ntitle");
    	//作者
    	String nauthor = request.getParameter("nauthor");
    	//摘要
    	String nsummary = request.getParameter("nsummary");
    	//内容
    	String ncontent = request.getParameter("ncontent");
    	
    	//新增新闻
    	sql = "insert into tb_news(nid,ntid,ntitle,nauthor,nsummary,ncontent,ndate,ncount) values (?,?,?,?,?,?,sysdate,0)";
    	ps = conn.prepareStatement(sql);
    	ps.setInt(1, nid);
    	ps.setInt(2,ntid);
    	ps.setString(3,ntitle);
    	ps.setString(4,nauthor);
    	ps.setString(5,nsummary);
    	ps.setString(6,ncontent);
    	int n = ps.executeUpdate();
    	if(n>0){
    		out.print("");
    	}else{
    		out.print("");
    	}
    
    %>
    
    

你可能感兴趣的:(java,web,java)