用Java 编用户登录表单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java 编用户登录表单相关的知识,希望对你有一定的参考价值。

编写一个用户登录表单,应含有以下注册信息:用户名、密码;提交表单后,在数据表中查找,找到则提示“欢迎使用”;。具体要求如下:

(1)表单提交后要在服务端用Java作数据校验,校验规则如下所示:

a.用户名、密码长度在6-12之间(含6、12);

(2)请给出数据库的建表SQL语句。

(3)请编写文档详细描述操作过程,要求图文并茂。

(4)请给出所有源代码、数据库库文件。

  应该差不多了吧
  import java.io.*;
  import javax.swing.*;
  import java.awt.*;
  import java.awt.event.*;
  import java.sql.*;
  import java.net.*;
  import java.awt.color.*;
  public class Login extends JFrame implements ActionListener
  
  JLabel username;
  JLabel userpwd;
  JLabel type;
  JTextField use;
  JPasswordField pwd;
  JButton login;
  JButton canel;
  JComboBox js;
  JPanel pane;
  public Login(String str)
  super(str);
  this.setTitle("用户登录界面");
  username=new JLabel("帐号:");
  userpwd=new JLabel("密码:");
  use=new JTextField("");
  pwd=new JPasswordField('*');
  login=new JButton("登录");
  canel=new JButton("取消");
  pane=new JPanel();
  type=new JLabel("账户类型:");
  String strName[]="管理员","普通用户","会员"
  ;
  js=new JComboBox(strName);
  js.setSelectedIndex(2);
  js.setMaximumRowCount(3);
  pane.add(js);
  pane.setLayout(null);
  pane.add(username);
  pane.add(use);
  pane.add(userpwd);
  pane.add(pwd);
  pane.add(canel);
  pane.add(login);
  pane.add(type);

  js.setBounds(70,90,150,20);
  username.setBounds(15,30,150,20);
  use.setBounds(65,30,150,20);
  userpwd.setBounds(15,60,150,20);
  type.setBounds(15,90,150,20);
  pwd.setBounds(65,60,150,20);
  login.setBounds(10,120,60,20);
  canel.setBounds(160,120,60,20);
  this.getContentPane().add(pane).setBackground(Color.white);
  this.getContentPane().add(pane);
  login.addActionListener(this);
  canel.addActionListener(this);
  this.setResizable(false);
  this.setSize(245,200);
  this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  this.setVisible(true);
  
  public void actionPerformed(ActionEvent e)//2
  JButton jb=(JButton)e.getSource();
  if(jb==login)
  String name=use.getText();
  String Pwd=pwd.getText();

  int count=6;
  int ss=12;
  if(pwd.getText().equals("")&&use.getText().equals("")||use.getText().length()>=count&&pwd.getText().length()>=count||use.getText().length()<=ss&&pwd.getText().length()<=ss)
  
  JOptionPane.showMessageDialog(null,"用户名或者密码为空或者长度错误","错误消息",JOptionPane.ERROR_MESSAGE);
  
  try
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection con =DriverManager.getConnection("jdbc:odbc:Library","sa","");
  Statement st=con.createStatement();
  ResultSet rs=st.executeQuery("select * from Users where username='"+name+"' and password='"+Pwd+"'");
  if(rs.next())
  
  JOptionPane.showMessageDialog(null,"登录成功,欢迎使用");
  this.setVisible(false);

  
  else
  JOptionPane.showMessageDialog(null,"登录失败","错误消息",JOptionPane.ERROR_MESSAGE);

  con.close();
  catch(Exception ex)
  ex.printStackTrace();
  
  else if(jb==canel)
  this.setVisible(false);
  
  
  public static void main(String args[])
  new Login("");
  
  
参考技术A fgfr

怎么用java-web获得当前登录此页面人的列表

session中存放的数据只有持有这个sessionid的登陆用户自己能够看到。 
application中存放的数据所有的登陆用户都可以看到。 

1. 
如果要在页面中看到所有登陆用户的信息的话,必须在每个用户登陆成功以后,把该用户信息存入application中。然后在jsp页面上把application中存放的所有用户列表取出来,显示在画面上,这样返回给客户端的页面上就能看到所有的登陆用户列表。 

大致的代码如下: 

MyServlet.java 

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 

String userName = request.getParameter("username");
ServletContext application = req.getServletContext();
ArrayList loginList = (ArrayList)application.getAttribute("loginlist");
if(loginList == null)
  loginList = new ArrayList();
  application.setAttribute("loginlist",loginList);

loginList.add(userName);
req.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(req,resp);

main.jsp 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="name" items="$loginlist">
  <c:out value="$name" /> <br>
</c:forEach>

2.如果只是想在页面上看到自己的登陆信息的话,需要使用session,把登陆信息存入session中,然后jsp页面从session中取出登陆用户信息,显示在画面上。 

MyServlet.java: 

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 

String userName = req.getParameter("username");

HttpSession session = req.getSession(); 
session.setAttribute("username",userName);
req.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(req,resp);

main.jsp 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  $username
参考技术A 每登陆一个人 , 就将登陆的人的名字 写入application
然后在页面展示就可以了
参考技术B 你是说获取当前登陆这个页面的人的名字么?还是说所有登陆这个页面人的列表(这个我是不会)?当前登录人数我还是知道的。 参考技术C 你是说获取当前登陆这个页面的人的名字么?还是说所有登陆这个页面人的列表(这个我是不会)?当前登录人数我还是知道的。本回答被提问者采纳

以上是关于用Java 编用户登录表单的主要内容,如果未能解决你的问题,请参考以下文章

java web实现简单的用户登录需要哪些技术

java 传入用户名和密码并自动提交表单实现登录到其他系统

动态添加数据源,根据用户登录切换数据库.编程式Spring事务.

根据用户名 C# 检查登录凭据和打开表单

在jsp页面中如何获取到当前登录用户的角色id

Java 表单验证