您的位置:首页 > Web前端 > JavaScript

JSP第九次课:网上商城后台--首页设计及管理员功能实现

2015-03-27 21:59 519 查看
零、准备工作
1、下载后台管理系统模板(框架结构模板)、了解相关功能及网站结构、分析需求
2、分析后台关于管理员相关功能:管理员登录,统计登录次数、注册时间、修改自己密码、注销
3、数据库新建Admin表,Bean设计Admin,AdminDAO.login
一、后台head页设计
1、head.jsp主要代码:
%@ page language="java" import="java.util.*,mybean.*" pageEncoding="utf-8"%>
<%
Admin admin=(Admin)session.getAttribute("admin");
if(admin!=null)
{
%>
当前用户:<%=admin.getName()%>
<A style="COLOR: #fff"
href="admin_update.jsp"
target=blank>修改口令</A>
<A style="COLOR: #fff"
href="exit1.jsp" target=_blank>退出系统</A>
<%}%>

2、更改口令设计
(1)更改口令页admin_update.jsp(与login页基本相同,区别是用户名不可更改,可以更改密码,action到admin_doUpdate.jsp)
主要代码:
<%@ page language="java" import="mybean.*,java.util.*" pageEncoding="UTF-8"%>
<%
Admin admin=(Admin)session.getAttribute("admin");
if(admin!=null)
{
%>
<FORM name="form1" action="admin_doUpdate.jsp" method="post">
<input type="hidden" name="aid" value="<%=admin.getAid()%>"/>
用户名:<INPUT type="text" value="<%=admin.getName()%>" name=name readonly="ok">
密码:<INPUT type=password maxLength=30 size=24 value="" name=pass>
。。。。
(2)处理更改信息admin_doUpdate.jsp
<%@ page language="java" import="mybean.*,java.util.*" pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
String pwd = request.getParameter("pass");
String aid=request.getParameter("aid");

AdminDAO dao=new AdminDAO();
//创建admin对象,将值存入其中

Admin admin=new Admin();
admin.setAid(Integer.parseInt(aid));
admin.setName(name);
admin.setPassword(pwd);

if(dao.update(admin))
{
session.setAttribute("admin",admin); //将更改后的admin存入session中
response.sendRedirect("index.jsp");
}
%>
(3)DAO数据库中更改密码,Admin.update(Admin)方法实现修改密码功能
public boolean update(Admin admin){
Connection conn=null;
PreparedStatement ps=null;
boolean flag=false;

String sql="update admin set password=? where aid=?";

String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String user="shopping";
String password="shopping";
String url="jdbc:sqlserver://localhost:1433;database=ebuy";

try {
Class.forName(className);
conn=DriverManager.getConnection(url, user, password);
ps=conn.prepareStatement(sql);

ps.setString(1,admin.getPassword());
ps.setInt(2, admin.getAid());
int n=ps.executeUpdate();
if(n>=1){
flag=true;
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {

if(ps!=null)
ps.close();

if(conn!=null)
conn.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return flag;
}

2、注销用户exit1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
session.invalidate();
response.sendRedirect("login.htm");
%>
二、左侧菜单页menu.html
<A class=menuChild href="good_view.jsp" target=main>商品展示</A>
<A class=menuChild href="good_add.jsp" target=main>添加商品</A>
<A class=menuChild href="admin_update.jsp" target=blank>修改口令</A>
<A class=menuChild
(confirm('确定要退出吗?')) return true; else return false;"
href="exit1.jsp"
target=_top>退出系统</A>
三、右侧默认页设计
1、数据库添加注册时间(add_time 默认值getdate()),访问次数(count 默认值0)字段
2、JavaBean--Admin添加 String add_time,int count 及相关方法
3、main.jsp页
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="mybean.*"%>
<%@page import="mybean.util.*"%>
<%
Admin admin=(Admin)session.getAttribute("admin");
if(admin!=null)
{
Date date=new Date();
String dateStr=(1900+date.getYear())+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
%>
<p>本次登录时间:<%=dateStr%></p>
<p>用户名:<%=admin.getName() %></p>
<p>注册时间:<%=admin.getAdd_time() %></p>
<p>登陆次数:<%=admin.getCount() %></p>
4、doLogin.jsp页,添加功能数据库“登录次数+1”,要求在main.jsp显示出来
(1)doLogin.jsp添加代码(不同颜色部分)
<%@ page language="java" import="mybean.*,java.util.*" pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
String pwd = request.getParameter("pass");
AdminDAO dao=new AdminDAO();
Admin admin=dao.login(name, pwd);

if(admin.getName()!=null)
//纠正错误,之前用admin!=null,出现个问题不输入用户名和密码可以登录
{
dao.count(admin.getAid());
response.setHeader("refresh", "2;url=index.jsp");
admin.setCount(admin.getCount()+1);
session.setAttribute("admin",admin);
}
else {
out.println("登录失败");
response.setHeader("refresh", "2;url=login.htm");
}
%>
(2)DAO编写访问次数加1方法Admin.count(aid)
public boolean count(int aid){
Connection conn=null;
PreparedStatement ps=null;
boolean flag=false;

String sql="update admin set count=count+1 where aid=?";

String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String user="shopping";
String password="shopping";
String url="jdbc:sqlserver://localhost:1433;database=ebuy";

try {
Class.forName(className);
conn=DriverManager.getConnection(url, user, password);
ps=conn.prepareStatement(sql);
ps.setInt(1, aid);
int n=ps.executeUpdate();
if(n>=1){
flag=true;
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {

if(ps!=null)
ps.close();

if(conn!=null)
conn.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return flag;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  用户名 JSP 更改密码