用户登录界面(1.8版本--网站框架改进)

news/2024/5/14 4:10:47/文章来源:https://blog.csdn.net/weixin_34260991/article/details/93923565

1.创建数据库db_user与表users

 1 CREATE DATABASE db_user CHARACTER SET utf8;
 2 
 3 CREATE TABLE users (
 4     userid TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 5     username varchar(20),
 6     passwd varchar(20),
 7     email varchar(30),
 8     priority int
 9 );
10 
11 DROP TABLE users;
12 
13 SELECT * FROM users;
14 
15 INSERT INTO users(username,passwd,email,priority) VALUES('admin','admin','admin@sohu.com',1);
16 INSERT INTO users(username,passwd,email,priority) VALUES('shunping','shunping','shunping@sohu.com',1);
17 INSERT INTO users(username,passwd,email,priority) VALUES('tester1','tester2','tester1@sohu.com',5);
18 INSERT INTO users(username,passwd,email,priority) VALUES('tester2','tester2','tseter2@sohu.com',5);
19 INSERT INTO users(username,passwd,email,priority) VALUES('tester3','tester3','tester3@sohu.com',5);
20 INSERT INTO users(username,passwd,email,priority) VALUES('tester4','tester4','tester4@sohu.com',5);
21 INSERT INTO users(username,passwd,email,priority) VALUES('tester5','tester5','tester5@sohu.com',5);
22 INSERT INTO users(username,passwd,email,priority) VALUES('tester6','tester6','tester6@sohu.com',5);
23 INSERT INTO users(username,passwd,email,priority) VALUES('tester7','tester7','tester7@sohu.com',5);
24 INSERT INTO users(username,passwd,email,priority) VALUES('tester8','tester8','tester8@sohu.com',5);
25 
26 //快速增加记录
27 INSERT INTO users(username,passwd,email,priority) SELECT username,passwd,email,priority FROM users;
28 
29 SELECT COUNT(*) FROM users;
Database

 2.登录界面

 1 package com.tsinghua;
 2 
 3 import javax.servlet.http.*;
 4 import java.io.*;
 5 
 6 public class Login3 extends HttpServlet {
 7     public void doGet(HttpServletRequest req,HttpServletResponse res)  {
 8         try {
 9             res.setContentType("text/html;charset=utf8");
10             PrintWriter pw = res.getWriter();
11             String info1 = req.getParameter("info1");
12             String info3 = req.getParameter("info3");
13             pw.println("<html>");
14             pw.println("<body>");
15             //用户尚未登录提醒
16             if(info1!=null) {
17                 pw.println("<span>您还没有登录</span>");    
18             }
19             if(info3 != null) {
20                 pw.println("<span>您的用户名或密码错误</span>");    
21             }
22             pw.println("<h1>用户登录</h1>");
23             pw.println("<form action=loginCl3>");
24             pw.println("用户名:<input type=text name=username><br/>");
25             pw.println("密码:<input type=pasword name=passwd><br/>");
26             pw.println("<input type=checkbox name=checked value=2>两周之内不需要登录<br/>");
27             pw.println("<input type=submit value=login>");
28             pw.println("</form>");
29             pw.println("</body>");
30             pw.println("</html>");
31                 
32         }catch(Exception ex) {
33             ex.printStackTrace();    
34         }    
35     }
36     public void doPost(HttpServletRequest req,HttpServletResponse res)  {
37         this.doGet(req,res);    
38     }    
39 }
Login3.java

 3.数据库连接

 1 package com.tsinghua;
 2  
 3 import java.sql.*;
 4  
 5 public class ConnDB {
 6      private Connection con = null;
 7      public Connection getConn() {
 8          try {
 9              Class.forName("com.mysql.jdbc.Driver");
10              con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_user","root","");
11          }catch(Exception ex) {
12              ex.printStackTrace();
13          }    
14          return con;
15      }        
16  }
ConnDB.java

4.映射表users

 1 //与表users一一映射
 2 package com.tsinghua;
 3 
 4 import java.sql.*;
 5 
 6 public class UserBean {
 7     private int userId;
 8     private String userName;
 9     private String passwd;
10     private String email;
11     private int priority;
12     public void setUserId(int userId) {
13         this.userId = userId;    
14     }        
15     public int getUserId() {
16         return     this.userId;
17     }
18     public void setUserName(String userName) {
19         this.userName = userName;    
20     }
21     public String getUserName() {
22         return this.userName;    
23     }
24     public void setPasswd(String passwd) {
25         this.passwd = passwd;    
26     }
27     public String getPasswd() {
28         return this.passwd;    
29     }
30     public void setEmail(String email) {
31         this.email = email;    
32     }
33     public String getEmail() {
34         return this.email;    
35     }
36     public void setPriority(int priority) {
37         this.priority = priority;
38     }
39     public int getPriority() {
40         return this.priority;    
41     }
42 }
UserBean.java

 5.sql语句处理,操作表users

  1 //处理users表--->操作UserBean
  2 //业务逻辑处理
  3 
  4 package com.tsinghua;
  5 
  6 import java.sql.*;
  7 import java.util.*;
  8 import com.tsinghua.*;
  9 
 10 public class UserBeanCl {
 11     private Connection ct=null;
 12     private PreparedStatement ps=null;
 13     private ResultSet rs=null;
 14     private int pageCount=0;
 15     
 16     public int getPageCount() {
 17         return this.pageCount; 
 18     }
 19     
 20     public ArrayList getResultByPage(int pageNow,int pageSize) {
 21         
 22         //将数据库中记录分页 
 23         ArrayList arraylist = new ArrayList();
 24         try {
 25             int rowCount=0;
 26             ConnDB cd = new ConnDB();
 27             ct = cd.getConn();
 28             ps = ct.prepareStatement("select count(*) from users");
 29             rs = ps.executeQuery();
 30             if(rs.next()) {
 31                 rowCount = rs.getInt(1);
 32             }
 33             //计算pageCount
 34             if(rowCount % pageSize == 0) {
 35                 pageCount = rowCount / pageSize;    
 36             }else {
 37                 pageCount = rowCount / pageSize + 1;    
 38             }
 39          
 40             ps = ct.prepareStatement("select * from users limit ?,?");
 41             ps.setInt(1,(pageNow-1)*pageSize);
 42             ps.setInt(2,pageSize);
 43             rs = ps.executeQuery();
 44             if(rs.next()) {
 45                 UserBean ub = new UserBean();
 46                 ub.setUserId(rs.getInt(1));
 47                 ub.setUserName(rs.getString(2));
 48                 ub.setPasswd(rs.getString(3));
 49                 ub.setEmail(rs.getString(4));
 50                 ub.setPriority(rs.getInt(5));
 51                 arraylist.add(ub);    
 52             }
 53              
 54         }catch(Exception ex) {
 55             ex.printStackTrace();
 56         }finally {
 57             this.close();
 58         }
 59         return arraylist;
 60     }
 61                 
 62     //验证用户
 63     public boolean checkUser(String user,String pass) {
 64         boolean bool = false;
 65         try {
 66             ConnDB cd = new ConnDB();
 67             ct = cd.getConn();
 68             ps = ct.prepareStatement("select passwd from users where username=?");
 69             ps.setString(1,user);
 70             rs=ps.executeQuery();
 71             if(rs.next()) {
 72                 String sPasswd = rs.getString(1);
 73                 if(sPasswd.equals(pass)) {
 74                     bool=true;
 75                 }    
 76             }
 77         }catch(Exception ex) {
 78             ex.printStackTrace();    
 79         }finally {
 80             this.close(); 
 81         }
 82         return bool;    
 83     }
 84     public void close() {
 85         try {
 86             if(rs!=null) {
 87                 rs.close();    
 88                 rs=null;
 89             }    
 90             if(ps!=null) {
 91                 ps.close();
 92                 ps=null;    
 93             }
 94             if(ct!=null) {
 95                 ct.close();    
 96                 ct=null;
 97             }
 98         }catch(Exception ex) {
 99             ex.printStackTrace();    
100         }    
101     }
102         
103 }
UserBeanCl.java

 6.业务逻辑处理

 1 package com.tsinghua;
 2 
 3 import javax.servlet.http.*;
 4 import java.io.*;
 5 import java.sql.*;
 6 import com.tsinghua.*;
 7 
 8 public class LoginCl3 extends HttpServlet {
 9     public void doGet(HttpServletRequest req,HttpServletResponse res) {
10         
11         try {
12             String user = req.getParameter("username");
13             String pass = req.getParameter("passwd");
14              
15              //检验用户
16              UserBeanCl ubc = new UserBeanCl();
17              if(ubc.checkUser(user,pass)){
18                   
19                     String checked = req.getParameter("checked");
20                     if(checked!=null) {
21                      
22                         //创建Cookie
23                         Cookie username = new Cookie("myName",user);
24                         Cookie passwd = new Cookie("myPasswd",pass);
25                         //设置存在时间
26                         username.setMaxAge(14*24*60*60);
27                         passwd.setMaxAge(14*24*60*60);
28                         //将Cookie回写到客户端
29                         res.addCookie(username);
30                         res.addCookie(passwd);
31                     }
32                     
33                     
34                      HttpSession hs = req.getSession(true);
35                     //添加session属性
36                     hs.setAttribute("uname",user);
37                     //设置存在时间
38                     hs.setMaxInactiveInterval(20);
39                      
40                     
41                     //跳转到欢迎页面
42                     res.sendRedirect("wel3?user="+user);    
43                  
44              }else {
45                  res.sendRedirect("login3?info3=err3");    
46              }
47         }catch(Exception ex) {
48             ex.printStackTrace();    
49         } 
50     }
51     public void doPost(HttpServletRequest req,HttpServletResponse res) {
52         this.doGet(req,res);
53     }    
54 }
LoginCl3.java

 7.欢迎界面

  1 package com.tsinghua;
  2 import javax.servlet.http.*;
  3 import java.io.*;
  4 import java.sql.*;
  5 import java.util.*;
  6 import com.tsinghua.*;
  7 
  8 public class Wel3 extends HttpServlet {
  9     public void doGet(HttpServletRequest req,HttpServletResponse res) {
 10         //数据库
 11         Connection con = null;
 12         PreparedStatement ps = null;
 13         ResultSet rs = null;
 14         try {
 15             //html格式声明
 16             res.setContentType("text/html;charset=utf8"); 
 17             //分页 
 18             int pageSize=3;   //每页记录数     
 19             int pageNow=1;    //希望当前页数
 20             
 21             String user="";
 22             String pass="";
 23             
 24             //动态的接收pageNow    
 25             String sPageNow = req.getParameter("pageCur");
 26             if(sPageNow!=null) {
 27                 pageNow = Integer.parseInt(sPageNow);    
 28             }
 29             
 30                         
 31             PrintWriter pw = res.getWriter();
 32             //获取session属性
 33             HttpSession hs = req.getSession(true);
 34             String name = (String)hs.getAttribute("uname");
 35             
 36             //session不存在
 37             if(name==null) {
 38                 //检测是否有Cookie信息
 39                 Cookie []allCookies = req.getCookies();
 40                 if(allCookies != null) {
 41                     for(int i=0;i<allCookies.length;i++) {
 42                         Cookie temp = allCookies[i];
 43                         if(temp.getName().equals("myName")) {
 44                             user = temp.getValue();    
 45                         }else if(temp.getName().equals("myPasswd")) {
 46                             pass = temp.getValue();    
 47                         }
 48                     }
 49                     if(user.equals("")&&pass.equals("")) {
 50                         res.sendRedirect("loginCl3?username="+user+"&passwd="+pass);
 51                     }else {
 52                         //跳转登陆页面,提醒用户未登录
 53                         res.sendRedirect("login3?info1=err1");    
 54             
 55                     }
 56                 } 
 57             }
 58              
 59             UserBeanCl ubc = new UserBeanCl();
 60             ArrayList arraylist = ubc.getResultByPage(pageNow,pageSize);
 61             int pageCount = ubc.getPageCount(); 
 62              
 63             //欢迎用户(用户名)
 64             pw.println("Welcome your coming,"+name+"<br/>");
 65             //图片
 66             pw.println("<img width=100px height=100px src=imgs/KSYoon.jpg>");
 67             //输出分页后users表中信息
 68             pw.println("<table border=1>");
 69             pw.println("<tr>");
 70             pw.println("<th>userid</th>");
 71             pw.println("<th>username</th>");
 72             pw.println("<th>passwd</th>");
 73             pw.println("<th>email</th>");
 74             pw.println("<th>priority</th>");
 75             pw.println("</tr>");
 76              
 77             for(int i=0;i<arraylist.size();i++) {
 78                 UserBean ub = (UserBean)arraylist.get(i);
 79                 pw.println("<tr>");
 80                 pw.println("<td>"+ub.getUserId()+"</td>");
 81                 pw.println("<td>"+ub.getUserName()+"</td>");
 82                 pw.println("<td>"+ub.getPasswd()+"</td>");
 83                 pw.println("<td>"+ub.getEmail()+"</td>");
 84                 pw.println("<td>"+ub.getPriority()+"</td>");
 85                 pw.println("</tr>");    
 86             }
 87             
 88             pw.println("</table>");
 89             
 90             //上一页
 91             if(pageNow!=1) {
 92                 pw.println("<a href=wel3?pageCur="+(pageNow-1)+">上一页</a>");    
 93             }
 94             
 95             //页数链接
 96             for(int i=pageNow;i<pageNow+10;i++) {
 97                 //想要显示的当前页
 98                 pw.println("<a href=wel3?pageCur="+i+">"+i+"</a>");
 99             }
100              
101             //下一页
102             if(pageNow!= pageCount) {
103                 pw.println("<a href=wel3?pageCur="+(pageNow+1)+">下一页</a>");    
104             }
105         }catch(Exception ex) {
106             ex.printStackTrace();    
107         } 
108     }
109     public void doPost(HttpServletRequest req,HttpServletResponse res) {
110         this.doGet(req,res);    
111     }    
112 }
Wel3.java

 8.servlet部署

 1 <servlet>
 2     <servlet-name>login3</servlet-name>
 3     <servlet-class>com.tsinghua.Login3</servlet-class>
 4   </servlet>
 5   <servlet-mapping>
 6     <servlet-name>login3</servlet-name>
 7     <url-pattern>/login3</url-pattern>
 8   </servlet-mapping>
 9 
10   <servlet>
11     <servlet-name>loginCl3</servlet-name>
12     <servlet-class>com.tsinghua.LoginCl3</servlet-class>
13   </servlet>
14   <servlet-mapping>
15     <servlet-name>loginCl3</servlet-name>
16     <url-pattern>/loginCl3</url-pattern>
17   </servlet-mapping>
18 
19   <servlet>
20     <servlet-name>wel3</servlet-name>
21     <servlet-class>com.tsinghua.Wel3</servlet-class>
22   </servlet>
23   <servlet-mapping>
24     <servlet-name>wel3</servlet-name>
25     <url-pattern>/wel3</url-pattern>
26   </servlet-mapping>
27 
28  <servlet>
29     <servlet-name>connDB</servlet-name>
30     <servlet-class>com.tsinghua.ConnDB</servlet-class>
31   </servlet>
32   <servlet-mapping>
33     <servlet-name>connDB</servlet-name>
34     <url-pattern>/connDB</url-pattern>
35   </servlet-mapping>
36 
37   <servlet>
38     <servlet-name>userBean</servlet-name>
39     <servlet-class>com.tsinghua.UserBean</servlet-class>
40   </servlet>
41   <servlet-mapping>
42     <servlet-name>userBean</servlet-name>
43     <url-pattern>/userBean</url-pattern>
44   </servlet-mapping>
45 
46   <servlet>
47     <servlet-name>userBeanCl</servlet-name>
48     <servlet-class>com.tsinghua.UserBeanCl</servlet-class>
49   </servlet>
50   <servlet-mapping>
51     <servlet-name>userBeanCl</servlet-name>
52     <url-pattern>/userBeanCl</url-pattern>
53   </servlet-mapping>
View Code

转载于:https://www.cnblogs.com/KSYoon/p/9435960.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_762250.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux --xampp 配置多个网站

我们想要在本地安装两个测试域名&#xff0c;www.abc.tld, www.xyz.tld, 分别指向到 htdoc 目录下的 abc.tld 和 xyz.tld 文件夹下。tld 是顶级域名 the top domain 的缩写。如果你喜欢&#xff0c;也可以用 abc.com, abc.net 这样的顶级域名来代替。这里使用 tld 主要是为了避…

Dropbox泄密事件仍在蔓延 一家成人网站被爆掉80万帐号密码

上周黑客在暗网相继泄漏了 Dropbox 和 Last.fm 两家公司的上亿条账号密码&#xff0c;暴露了互联网公司在保护用户信息上的严重缺陷。但现在这场“泄密事件”仍没有停止的迹象&#xff0c;最新的消息是黑客团队泄漏了色情网站 Brazzers 近 80 万条用户账号密码。 这个被黑客公布…

Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

项目前言 在上一篇博客《JenkinsGitGitlabAnsible实现持续化集成一键部署静态网站&#xff08;一&#xff09;--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。 如果大家可以熟练掌握以上内容&#xff0c;势必会在工作中减轻不小的工作量…

Asp.net网站的简单发布

概述 网站是由一个个页面组成的&#xff0c;是万维网具体的变现形式&#xff0c;关于万维网&#xff0c;网页的方面的理论知识&#xff0c;大家可以看一看这篇博客&#xff1a;万维网文档&#xff0c;在这里就不多说了。网站的发布要到达的一个目的就是&#xff0c;别人可以通过…

SharePoint 2010 类似人人网站内信功能实施

简介&#xff1a;用SharePoint代码加实施的方式&#xff0c;完成类似人人网站内信功能&#xff0c;当然&#xff0c;实现的比较简单&#xff0c;样式也比较难看&#xff0c;只为给大家一个实施的简单思路&#xff0c;如有谬误&#xff0c;还请见谅。当然&#xff0c;还有就是截…

2019最受欢迎开源免费CMS建站系统排行榜

2019独角兽企业重金招聘Python工程师标准>>> 互联网的蓬勃发展&#xff0c;免费且开源的建站系统的层出不穷&#xff0c;而我们经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题&#xff0c;我们今天来说一下&#xff0c;201…

“网络推广”企业做了网站效果没有达到自己的营销效果

我们有理由相信每一公司做的设计不是给自己看的&#xff0c;当然是给客户看的&#xff0c;我们长处就在于我们的技术是基础&#xff0c;创意是翅膀&#xff0c;只有充分利用好网络&#xff0c;创意才能把您们的价值体现出来&#xff0c;传播出去。 我们不只是为您们的企业披上外…

一步步学习SPD2010--第十章节--SP网站品牌化(3)--在内容页中识别样式

一步步学习SPD2010--第十章节--SP网站品牌化&#xff08;3&#xff09;--在内容页中识别样式 当你在SPD中显示内容页时&#xff0c;尽管设计视图显示了内容页与母版页的融合&#xff0c;你只能辨识储存在内容页的部件的CSS样式。使用页面的代码视图&#xff0c;来辨识储存在内容…

Challenge Checkio(python)—初尝python练习网站

最近在找点python语言练习的网站&#xff0c;发现这个网站不错 http://www.checkio.org/ 页面设计的也比较漂亮&#xff0c;比较适合学习python的语法知识。不过注册这个网站 开始就得解决一个python问题&#xff0c;不过很简单。 1 #python3.3 is inside 2 def checkio(els):…

[Hugo+Netlify]从零开始建立并发布一个网站

现在有越来越多的开发者选择把自己的博客以静态网站的方式托管在 GitHub 上, 这样的方式可以通过诸如 Jekyll, Hexo,Hugo 等等现有的静态博客生成工具, 非常便捷地搭建出一个样式美观的静态博客或文档页面。 通过对比&#xff0c;我选择了Hugo框架来创建网页&#xff0c;使用 N…

现在怎么访问安卓开发者网站

问题描述前两个月还能访问安卓开发者网站&#xff0c;现在就访问不了了&#xff0c;请问有什么方法么&#xff0c;以后想下官方最新的mac版本的ADT都困难。 解决方案1翻墙啊啊啊啊啊啊啊。 解决方案2翻墙软件&#xff0c;大家都懂的&#xff01; 解决方案3现在是不行了&#xf…

win8 iis安装及网站发布

win8 iis安装及网站发布 系统&#xff1a;win8 环境&#xff1a;vs2012 一&#xff1a;安装IIS 比较win7的安装来说&#xff0c;多选了几个钩钩&#xff0c;不然会报错&#xff0c;偶就遇到这样的错误。 控制面板-》程序和功能-》启动和关闭windows功能&#xff0c;钩钩图例&am…

Svg图片在asp网站上的使用

最近需要做一个动态的根据后台的返回数据而动态显示的导航图&#xff0c;然后我就采用了jqueryajaxSVG矢量图来实现这个功能。 首先&#xff0c;客户给了个ai的矢量图&#xff0c;我对这一块不懂就找以前同事帮我转成了svg图形&#xff0c;听说很简单&#xff0c;但是矢量图是封…

使用Let's Encrypt、Certbot为自己的网站加密

2019独角兽企业重金招聘Python工程师标准>>> 打开网站https://certbot.eff.org/选择服务器系统和软件环境以nginxubuntu为例&#xff1a;# 1. 安装需要软件 $ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository pp…

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天...

看起来挺简单&#xff0c;细节还是很多的&#xff0c;好&#xff0c;接上一篇&#xff0c;我们已经成功连接singalR服务器了&#xff0c;那么剩下的内容呢&#xff0c;就是一步一步实现聊天功能。 我们先看看缺什么东西 点击好友弹框之后&#xff0c;要给服务器发消息&#xff…

从一个新颖的网站看silverlight技术的视频广告前景

站点是&#xff1a;http://www.singtelrace.com/SingTel-Grid-Girls_Heart-Race.aspx 上面的MM们都是活动的&#xff0c;整体的视觉效果很有趣 这张截图看起来似乎没有什么&#xff0c;但要注意这个视频广告里的MM是活动的&#xff0c;为整个页面带来了生气。

长尾SEO策略应用之长尾词表制作

上周在博客上转载了一篇《热门还是长尾&#xff1f;大中型网站的关键词优化策略》的文章&#xff0c;文中提到长尾词在大中型网站中应用的种种好处。把这种长尾词策略应用到网站&#xff0c;我们所要做的就是&#xff1a;<?xml:namespace prefix o ns "urn:schemas-…

自动登录http://www.netyi.net/网站的工具

http://www.netyi.net/网站是一个书籍下载网站&#xff0c;大约一年多以前我就认识这个网站&#xff0c;经常从上面下载书籍。它的书还是不错的&#xff0c;很多书其他地方找不到&#xff0c;这里却有。但是下载书会减少你的积分&#xff0c;获得积分的的途径是上传书籍&#x…

详解网站性能测试指标

通用指标&#xff08;指Web应用服务器、数据库服务器必需测试项)Web服务器指标数据库服务器性能指标系统的瓶颈定义稳定系统的资源状态通俗理解&#xff1a;日访问量常用页面最大并发数同时在线人数访问相应时间案例&#xff1a;最近公司一个项目&#xff0c;是个门户网站&…

web前端性能SEO优化

web前端性能&SEO优化 网站的划分一般为二&#xff1a;前端和后台。我们可以理解成后台是用来实现网站的功能的&#xff0c;比如&#xff1a;实现用户注册&#xff0c;用户能够为文章发表评论等等。而前端呢&#xff1f;其实应该是属于功能的表现。并且影响用户访问体验的绝…