用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
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, IOExceptionString 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 编用户登录表单的主要内容,如果未能解决你的问题,请参考以下文章