(一)美化管理系统界面
(二)管理系统功能改善,增删改查

(一)美化管理系统界面
推荐得到颜色配置的软件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 exceptione.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 {//创建一个FileReaderFileReader 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 exceptione.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 exceptione.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");//将用户名和密码保存在客户端cookieif(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);}//将验证成功的信息写入sessionHttpSession hs=req.getSession(true);//修改session的存在时间 单位shs.setMaxInactiveInterval(30);hs.setAttribute("uname", u);//将servletContext中的visitTimes所对应的值增加String times=this.getServletContext().getAttribute("visitTimes").toString();//对times++再重新放回servletContextthis.getServletContext().setAttribute("visitTimes", (Integer.parseInt(times)+1)+"");res.sendRedirect("main");}else{//不合法,跳转到Loginres.sendRedirect("login");}} catch (Exception e) {// TODO: handle exceptione.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 exceptione.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){//得到sessionHttpSession 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){//从中取出cookiefor(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();}}//forif(!name.equals("")&&!password.equals("")){res.sendRedirect("logincl?username="+name+"&passwd="+password);}}//if cookie//返回登录界面res.sendRedirect("login?info=error1");}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}//===分页的功能===int pageSize=3;int pageNow=1;//希望显示第几条记录//动态的接收pageNowString sPageNow=req.getParameter("pageNowOk");if(sPageNow!=null){//用户首次进入wel页面pageNow=Integer.parseInt(sPageNow);}//调用UserBeanClUserBeanCl 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>&nbsp;&nbsp;&nbsp;&nbsp;欢迎您:"+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 exceptione.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 exceptione.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 exceptione.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 exceptione.printStackTrace();}}//分页显示public ArrayList getResultByPage(int pageNow,int pageSize){ArrayList al=new ArrayList();try {int rowCount=0;//共有几条记录(查表)int pageCount=0;//共有几页(计算出来)//得到rowCountConnDB cd=new ConnDB();ct=cd.getConn();//创建一个prepareStatementps=ct.prepareStatement("select count(*) from users");rs=ps.executeQuery(); //执行得到结果if(rs.next()){rowCount=rs.getInt(1);}//计算pageCountif(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 exceptione.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 exceptione.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 exceptione.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 exceptione.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>&nbsp;&nbsp;<a href=wel>继续删除</a>");} catch (Exception e) {// TODO: handle exceptione.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 exceptione.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 exceptione.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 exceptione.printStackTrace();}}public void doPost(HttpServletRequest req,HttpServletResponse res){this.doGet(req, res);}
}






Servlet教程第7讲笔记相关推荐

  1. CG基础教程-陈惟老师十二讲笔记

    转自 麽洋TinyOcean:http://www.douban.com/people/Tinyocean/notes?start=50&type=note 因为看了陈惟十二讲视频没有课件,边 ...

  2. react render没更新_web前端教程分享React学习笔记(一)

    web前端教程分享React学习笔记(一),React的起源和发展:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写 ...

  3. 信息系统项目管理师教程考点精讲之项目成本管理

    希赛小编为大家整理了几篇信息系统项目管理师教程考点精讲,以下是有关第八章项目成本管理的内容. 可控和不可控的成本应该分别估算和预算. 在某些项目上,特别是小型项目,成本估算和预算可被视为一个过程.项目 ...

  4. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  5. Python编程系列教程第16讲——拷贝自身到系统目录

    分享知识,分享快乐,收获友谊,收获财富! 大家好,我是数字雨,QQ:798033502 http://itbook.taobao.com/ 今天给大家带来的教程是<Python编程系列教程第16 ...

  6. 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立

    原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...

  7. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

     深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening 主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通 ...

  8. 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器

     深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器 UFLDL即(unsupervised feature learning & deep learning).这是斯坦福网站上的一篇 ...

  9. 视觉SLAM总结——视觉SLAM十四讲笔记整理

    视觉SLAM总结--视觉SLAM十四讲笔记整理 说明 基础知识点 1. 特征提取.特征匹配 (1)Harris (2)SIFT (3)SUFT (4)ORB (5)特征匹配 2. 2D-2D:对极约束 ...

  10. python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...

    变量进阶(理解) - 黑马程序员<Python入门教程完整版>笔记 目标变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用变量 和 数据 都是保存在 内存 中的 在 Py ...

最新文章

  1. Wince输入法换肤换语言机制
  2. hdu 5542(树状数组优化dp)
  3. 《通过Web远程浏览并控制Tiny6410上的usb摄像头》---实战篇
  4. 为什么relativelayout.layoutParams的width为-1
  5. wordpress插件在服务器上的存储位置
  6. 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders
  7. [Leedcode][JAVA]第[945]题
  8. ELK学习总结(1-1)ELK是什么
  9. 十个不可不看的Matlab GUI
  10. stl:queue 源码_C ++ STL中的queue :: empty()和queue :: size()
  11. 融会贯通——最常用的面向对象设计原则“合成复用原则”
  12. centos 6.5上安装php7,centos 6.5 编译安装PHP7
  13. linux内核I2C体系结构(注意结构体原型)
  14. WordPress图片插件:Auto Highslide修改版(转)
  15. 学习笔记之CursorAdapter
  16. Python爬虫实例(六)多进程下载金庸网小说
  17. 前端-JS基础之数据类型
  18. spark中RSS工具简介
  19. ARC下循环引用的问题
  20. 最近都在说移民火星,这些黑科技你了解吗?

热门文章

  1. 初始化和清理(垃圾回收器)
  2. TCP实现原理(三次握手与四次挥手)
  3. C++--第10课 - 构造与析构 - 下
  4. 基于16QAM调制的OFDM系统仿真实现
  5. PostgreSQL技术周刊第17期:PostgreSQL用户应掌握的高级SQL特性
  6. ubuntu系统安装初始化脚本
  7. ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
  8. 利用PyInstaller打包exe文件
  9. vim文件时自动添加作者、时间、版权等信息
  10. 学习笔记 : 表达式目录树相关问题参照该demo expression拼接与拆解 expression转sql...