(一)美化管理系统界面
(二)管理系统功能改善,增删改查
(一)美化管理系统界面
推荐得到颜色配置的软件playcolor和AAA logo
增删改查

//登录界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class Login extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
//返回登录界面
pw.println("<html>");
pw.println("<body bgcolor=#B4CDE6>");
pw.println("<img src=imgs/image2.jpg width=200><hr><center>");
pw.println("<h>登录界面</h>");
pw.println("<form action=logincl method=post>");
pw.println("用户名:<input type=text name=username><br>");
pw.println("密码:<input type=password name=passwd><br>");
pw.println("<input type=checkbox name=keep value=2>两周内不在重新登录<br>");
pw.println("<input type=submit value=login><br>");
pw.println("</form>");
pw.println("</center><hr><img src=imgs/image2.jpg width=200>");
pw.println("</body>");
pw.println("</html>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//用户验证Servlet
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class LoginCl extends HttpServlet{
//重写init函数
public void init(){
//只会被调用一次
try {
//创建一个FileReader
FileReader fr=new FileReader("f:\\myCounter.txt");
BufferedReader br=new BufferedReader(fr);
String numVal=br.readLine();
br.close();
//将times值放入servletContext中
this.getServletContext().setAttribute("visitTimes", numVal+"");
System.out.println("init()被调用");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//重写destroy函数
public void destroy(){
try {
FileWriter fw=new FileWriter("f:\\myCounter.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(this.getServletContext().getAttribute("visitTimes").toString());
bw.close();
System.out.println("destroy()被调用");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
//业务逻辑
try {
//接收用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("passwd");
//调用UserBeanCl,1.创建对象,2.使用方法
UserBeanCl ubc=new UserBeanCl();
//验证
if(ubc.checkUser(u, p)){
//合法用户
String keep=req.getParameter("keep");
//将用户名和密码保存在客户端cookie
if(keep!=null){
Cookie name=new Cookie("myname",u);
Cookie pass=new Cookie("mypasswd",p);
//设置时间
name.setMaxAge(14*24*3600);
pass.setMaxAge(14*24*3600);
//回写到客户端
res.addCookie(name);
res.addCookie(pass);
}
//将验证成功的信息写入session
HttpSession hs=req.getSession(true);
//修改session的存在时间 单位s
hs.setMaxInactiveInterval(30);
hs.setAttribute("uname", u);
//将servletContext中的visitTimes所对应的值增加
String times=this.getServletContext().getAttribute("visitTimes").toString();
//对times++再重新放回servletContext
this.getServletContext().setAttribute("visitTimes", (Integer.parseInt(times)+1)+"");
res.sendRedirect("main");
}else{
//不合法,跳转到Login
res.sendRedirect("login");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//主界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class Main extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
//返回登录界面
pw.println("<html>");
pw.println("<body bgcolor=#B4CDE6>");
pw.println("<img src=imgs/image2.jpg width=200><hr><center>");
pw.println("<h1>主界面</h1>");
pw.println("<a href=wel>管理用户</a><br>");
pw.println("<a href=?>添加用户</a><br>");
pw.println("<a href=?>查找用户</a><br>");
pw.println("<a href=?>安全退出</a><br>");
pw.println("</center><hr><img src=imgs/image2.jpg width=200>");
pw.println("</body>");
pw.println("</html>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//管理界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class Wel extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
//得到session
HttpSession hs=req.getSession();
String myName=(String)hs.getAttribute("uname");
String name="";
String password="";
PrintWriter pw=null;
Connection ct=null;
PreparedStatement ps=null;
ResultSet rs=null;
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb";
String user="sa";
String passwd="tingwei";
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
try {
//判断
if(myName==null){
//如果session中没有用户信息,再看看cookie中有没有
Cookie [] allCookies=req.getCookies();
int i=0;
//如果allCookies不为空
if(allCookies!=null){
//从中取出cookie
for(i=0;i<allCookies.length;i++){
//依次取出
Cookie tmp=allCookies[i];
if(tmp.getName().equals("myname")){
//得到cookie信息
name=tmp.getValue();
}else if(tmp.getName().equals("pass")){
password=tmp.getValue();
}
}//for
if(!name.equals("")&&!password.equals("")){
res.sendRedirect("logincl?username="+name+"&passwd="+password);
}
}//if cookie
//返回登录界面
res.sendRedirect("login?info=error1");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//===分页的功能===
int pageSize=3;
int pageNow=1;//希望显示第几条记录
//动态的接收pageNow
String sPageNow=req.getParameter("pageNowOk");
if(sPageNow!=null){
//用户首次进入wel页面
pageNow=Integer.parseInt(sPageNow);
}
//调用UserBeanCl
UserBeanCl ubc=new UserBeanCl();
ArrayList al=ubc.getResultByPage(pageNow, pageSize);
//得到从logincl传递的用户名
String u=req.getParameter("uname");
//得到从logincl传递的密码
String p=req.getParameter("upass");
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
pw=res.getWriter();
pw.println("<body><center>");
pw.println("<img src=imgs/image2.jpg width=200> 欢迎您:"+myName+"<img src=imgs/image1.jpg width=50><br>");
pw.println("<h1>管理用户</h1>");
pw.println("welcome,hello "+u+" pass="+p);
pw.println("<br><a href=login>返回重新登录</a>");
pw.println("<table border=1>");
pw.println("<tr bgcolor=blue><th>id</th><th>name</th><th>passwd</th><th>email</th><th>grade</th><th>修改用户</th><th>删除用户</th></tr>");
//定义一个颜色数组
String [] mycol={"pink","silver"};
for(int i=0;i<al.size();i++){
UserBean ub=(UserBean)al.get(i);
pw.println("<tr bgcolor="+mycol[i%2]+">");
pw.println("<td>"+ub.getUserId()+"</td>");
pw.println("<td>"+ub.getUserName()+"</td>");
pw.println("<td>"+ub.getPasswd()+"</td>");
pw.println("<td>"+ub.getMial()+"</td>");
pw.println("<td>"+ub.getGrade()+"</td>");
pw.println("<td><a href=update?uId="+ub.getUserId()+"&uName="+ub.getUserName()+"&uPass="+ub.getPasswd()+"&uMail="+ub.getMial()+"&uGrade="+ub.getGrade()+">修改用户</a></td>");
pw.println("<td><a href=delUserCl?userid="+ub.getUserId()+" οnclick=\"return window.confirm('您确认要删除该用户吗?')\">删除用户</a></td>");
pw.println("</tr>");
}
pw.println("</table>");
if(pageNow!=1)
//上一页
pw.println("<a href=wel?pageNowOk="+(pageNow-1)+">上一页</a>");
//显示超链接
for(int i=pageNow;i<=pageNow+4;i++){
pw.println("<a href=wel?pageNowOk="+i+">"+i+"</a>");
}
int pageCount=ubc.getPageCount();
//下一页
if(pageNow!=pageCount)
pw.println("<a href=wel?pageNowOk="+(pageNow+1)+">下一页</a>");
//指定跳转到某一页,实际上是一个表单,输入的页数过大,输入的不是数值又怎么办?
pw.println("<form action=wel>");
pw.println("<input type=text name=pageNowOk>");
pw.println("<input type=submit value=go>");
pw.println("</form>");
pw.println("<br>该网页被访问了"+this.getServletContext().getAttribute("visitTimes").toString()+"次");
pw.println("<br>您的ip:"+req.getRemoteAddr()+"<br>");
pw.println("您的机器名:"+req.getRemoteHost()+"<br>");
pw.println("您的ip:"+req.getRemoteAddr()+"<br>");
pw.println("您的端口号:"+req.getRemotePort()+"<br>");
pw.println("</center></body>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//从数据库得到连接
package com.tingwei;
import java.sql.*;
public class ConnDB {
private Connection ct=null;
public Connection getConn(){
try {
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb";
String user="sa";
String passwd="tingwei";
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
//得到rowCount
//连接接数据库,三部曲
Class.forName(driver);
//得到连接
ct=DriverManager.getConnection(url,user,passwd);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return ct;
}
}
//这是一个UserBean,和User表映射
//它的一个对象映射user表的一条记录
//数据
package com.tingwei;
public class UserBean {
private int userId;
private String userName;
private String passwd;
private String mial;
private int grade;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getMial() {
return mial;
}
public void setMial(String mial) {
this.mial = mial;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
//这是一个处理类(处理Users表)<--->操作userBean
//业务逻辑在这
package com.tingwei;
import java.sql.*;
import java.util.ArrayList;
public class UserBeanCl {
//业务逻辑
private Connection ct=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
private int pageCount=0;//共有几页(计算得到)
//验证用户
public boolean checkUser(String u,String p){
boolean b=false;
try {
//得到连接
ConnDB cd=new ConnDB();
ct=cd.getConn();
ps=ct.prepareStatement("select top 1 passwd from users where username=?");
ps.setString(1, u);
rs=ps.executeQuery();
if(rs.next()){
String dbPasswd=rs.getString(1);
if(dbPasswd.equals(p)){
b=true;
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{//用完数据库后记得关闭,可以写一个函数来关
this.close();
}
return b;
}
//关闭数据库
public void close(){
try {
if(rs!=null)rs.close();
if(ps!=null)ps.close();
if(ct!=null)ct.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//分页显示
public ArrayList getResultByPage(int pageNow,int pageSize){
ArrayList al=new ArrayList();
try {
int rowCount=0;//共有几条记录(查表)
int pageCount=0;//共有几页(计算出来)
//得到rowCount
ConnDB cd=new ConnDB();
ct=cd.getConn();
//创建一个prepareStatement
ps=ct.prepareStatement("select count(*) from users");
rs=ps.executeQuery(); //执行得到结果
if(rs.next())
{
rowCount=rs.getInt(1);
}
//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
ps=ct.prepareStatement("select top "+pageSize+" * from users where userId not in(select top "+pageSize*(pageNow-1)+" userId from users)");
//给?赋值
rs=ps.executeQuery();
while(rs.next()){
//将rs中的每一条记录分装到UserBean ub中
UserBean ub=new UserBean();
ub.setUserId(rs.getInt(1));
ub.setUserName(rs.getString(2));
ub.setPasswd(rs.getString(3));
ub.setMial(rs.getString(4));
ub.setGrade(rs.getInt(5));
//将ub放入到ArrayList中
al.add(ub);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
this.close();
}
return al;
}
//返回计算所得页数
public int getPageCount(){
return this.pageCount;
}
//删除用户
public boolean delUser(String id){
boolean b=false;
try {
ConnDB cd=new ConnDB();
ct=cd.getConn();
String sql="delete from users where userId='"+id+"'";
ps=ct.prepareStatement(sql);
int num=ps.executeUpdate();
if(num==1){
b=true;
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
this.close();
return b;
}
}
//修改用户
public boolean updateUser(String id,String email,String passwd,String grade){
boolean b=false;
try {
ConnDB cd=new ConnDB();
ct=cd.getConn();
String sql="update users set passwd='"+passwd+"',email='"+email+"',grade='"+grade+"' where userId='"+id+"'";
ps=ct.prepareStatement(sql);
int num=ps.executeUpdate();
if(num==1){
b=true; //修改成功
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
this.close();
return b;
}
}
}
//处理删除用户
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class DelUserCl extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
//调用UserBeanCl中的删除用户的方法,完成删除
UserBeanCl ubc=new UserBeanCl();
//接收从wel传递的id号
String id=req.getParameter("userid");
if(ubc.delUser(id)){
//删除成功
res.sendRedirect("ok");
}else{
res.sendRedirect("err");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//操作成功界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class Ok extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("操作成功!<br>");
pw.println("<a href=main>返回主界面</a> <a href=wel>继续删除</a>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//操作失败界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class Err extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("操作失败!");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//修改用户界面
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class Update extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
//返回登录界面
pw.println("<html>");
pw.println("<body bgcolor=#B4CDE6>");
pw.println("<img src=imgs/image2.jpg width=200><hr><center>");
pw.println("<h1>修改用户界面</h1>");
pw.println("<form action=updateCl>");
pw.println("<table border=1>");
pw.println("<tr><td>id</td><td><input readonly name=uId type=text value="+req.getParameter("uId")+"></td></tr>");
pw.println("<tr><td>username</td><td><input readonly type=text value="+req.getParameter("uName")+"></td></tr>");
pw.println("<tr><td>passwd</td><td><input name=newPasswd type=text value="+req.getParameter("uPass")+"></td></tr>");
pw.println("<tr><td>eamil</td><td><input name=newEmail type=text value="+req.getParameter("uMail")+"></td></tr>");
pw.println("<tr><td>grade</td><td><input name=newGrade type=text value="+req.getParameter("uGrade")+"></td></tr>");
pw.println("<tr><td colspan=2><input type=submit value=修改用户></td></tr>");
pw.println("</table></form>");
pw.println("</center><hr><img src=imgs/image2.jpg width=200>");
pw.println("</body>");
pw.println("</html>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}
//处理修改用户
package com.tingwei;
import javax.servlet.http.*;
import java.io.*;
public class UpdateCl extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
try {
//中文乱码处理
res.setContentType("text/html;charset=gbk");
//调用UserBeanCl中的删除用户的方法,完成删除
UserBeanCl ubc=new UserBeanCl();
//接收从update传递需要修改的信息
String id=req.getParameter("uId");
String email=req.getParameter("newEmail");
String passwd=req.getParameter("newPasswd");
String grade=req.getParameter("newGrade");
if(ubc.updateUser(id, email, passwd, grade)){
//删除成功
res.sendRedirect("ok");
}else{
res.sendRedirect("err");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req, res);
}
}






本文详细介绍了一个管理系统界面的美化方案及功能改进措施,包括使用PlayColor和AAAlogo进行颜色配置,实现用户登录界面的美化,并通过Java Servlet实现了登录验证、用户管理、分页查询等功能。
2116

被折叠的 条评论
为什么被折叠?



