精华内容
下载资源
问答
  • 用java一个用户登陆界面的代码分享

    万次阅读 多人点赞 2018-03-14 23:02:43
    Java用户登陆这块,主要还是学到了新的类:1,边界布局:BorderLayout。他主要分为五布局,是JFrame(顶层容器),JDialog(创建对话框窗口的类)的默认布局方式。其最多容量为5组件,超出5其他的。设置...

    Java用户登陆这块,主要还是学到了新的类:

    1,边界布局:BorderLayout。他主要分为五个布局,是JFrame(顶层容器),JDialog(创建对话框窗口的类)的默认布局方式。其最多容量为5个组件,超出5个得用其他的。设置方式为:BorderLayout.NORTH;BorderLayout.SOUTH;BorderLayout.CENTER;Borderlayout.CENTER;BorderLayout.LEFT;BorderLayout.RIGHT。

    2,流式布局:FlowLayout。布局方式为从左到右,从上到下。是JPanel(轻量级容器)的默认面板布局。

    3,网格布局:GridLayout。布局方式为行和列组成的网络。布局方法:setLayout(new GridLayout(3,2,3,3));其中强两位数字表示三行两列,后两位表示行与行的间距为3,列与列的间距为3.

    接着,就接触到JPanel面板。JPanel是非顶层容器,所以,一个界面只能由一个JFrame,但是可以有多个JPanel组件。其默认布局方式为流式布局。在JPanel这块,学到了用户登录界面的设计。从而接触到另外三个组件:文本框组件:JTextField;密码框组件:JPasswordField;标签组件:JLabel;复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。

    根据上面的组件和布局方式,我试着做了如下效果的一些代码:

    1,用户登陆界面:

    具体代码如下:

     1 import javax.swing.*;
     2 
     3 import java.awt.*;   //导入必要的包
     4 
     5 public class denglu extends JFrame{
     6     JTextField jTextField ;  //定义文本框组件
     7     JPasswordField jPasswordField;    //定义密码框组件
     8     JLabel jLabel1,jLabel2;
     9     JPanel jp1,jp2,jp3;
    10     JButton jb1,jb2;     //创建按钮
    11     public denglu(){
    12         jTextField = new JTextField(12);
    13         jPasswordField = new JPasswordField(13);
    14         jLabel1 = new JLabel("用户名");
    15         jLabel2 = new JLabel("密码");
    16         jb1 = new JButton("确认");
    17         jb2 = new JButton("取消");
    18         jp1 = new JPanel();
    19         jp2 = new JPanel();
    20         jp3 = new JPanel();
    21         
    22         //设置布局
    23         this.setLayout(new GridLayout(3,1));
    24         
    25         jp1.add(jLabel1); 
    26         jp1.add(jTextField);//第一块面板添加用户名和文本框 
    27         
    28         jp2.add(jLabel2);
    29         jp2.add(jPasswordField);//第二块面板添加密码和密码输入框
    30         
    31         jp3.add(jb1);
    32         jp3.add(jb2); //第三块面板添加确认和取消
    33         
    34         //        jp3.setLayout(new FlowLayout());    //因为JPanel默认布局方式为FlowLayout,所以可以注销这段代码.
    35         this.add(jp1);
    36         this.add(jp2);
    37         this.add(jp3);  //将三块面板添加到登陆框上面
    38         //设置显示
    39         this.setSize(300, 200);
    40         //this.pack();
    41         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    42         this.setVisible(true);
    43         this.setTitle("登陆");
    44          
    45     }
    46     public static void main(String[] args){
    47         new denglu();
    48     }
    49 }

    2,根据复选框组件等其他组件,又写了用户调查界面:

    具体代码:

     1 import javax.swing.ButtonGroup;
     2 import javax.swing.JCheckBox;
     3 import javax.swing.JFrame;
     4 import javax.swing.JLabel;
     5 import javax.swing.JPanel;
     6 import javax.swing.JRadioButton;
     7 
     8 import java.awt.*;
     9 
    10 public class diaocha extends JFrame{
    11     JCheckBox jcb1,jcb2,jcb3;
    12     JRadioButton jrb1,jrb2;
    13     JLabel jLabel1,jLabel2;
    14     JPanel jp1,jp2;
    15     public diaocha(){
    16         jcb1 = new JCheckBox("华商报");
    17         jcb2 = new JCheckBox("三秦都市报");
    18         jcb3 = new JCheckBox("西安晚报");
    19         jrb1 = new JRadioButton("男");
    20         jrb2 = new JRadioButton("女");
    21         jLabel1 = new JLabel("您最常读的报纸");
    22         jLabel2 = new JLabel("您的性别");
    23         jp1 = new JPanel();
    24         jp2 = new JPanel();
    25         //设置布局
    26         this.setLayout(new GridLayout(2, 1));
    27         //添加组件
    28         jp1.add(jLabel1);
    29         jp1.add(jcb1);
    30         jp1.add(jcb2);
    31         jp1.add(jcb3);
    32         jp2.add(jLabel2);
    33         //现在这样的话,最后还是会对性别进行全部选择的。所以添加按钮对象,对同一组单选按钮惊醒分组
    34         ButtonGroup bGroup = new ButtonGroup();
    35         bGroup.add(jrb1);
    36         bGroup.add(jrb2);
    37         jp2.add(jrb1);
    38         jp2.add(jrb2);
    39         this.add(jp1);
    40         this.add(jp2);
    41         
    42         //设置展示面板
    43         this.setVisible(true);
    44         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    45         this.setSize(200, 200);
    46     }
    47     public static void main(String[] args){
    48         new diaocha();
    49     }
    50 }

    我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

    参考:

    展开全文
  • 做登陆界面之前首先肯定是要对界面的进行布局构想,想这个界面到底有哪些元素构成,就拿下面的图来说吧 从这张图片中我们可以知道这登陆界面的组成需要到用户名和密码两个Jlabel标签和一个JTextField文本框和...

    登陆界面的构想

    在做登陆界面之前首先肯定是要对界面的进行布局构想,想这个界面到底有哪些元素构成,就拿下面的图来说吧
    从这张照片中我们在这里插入图片描述
    从这张图片中我们可以知道这登陆界面的组成需要到用户名和密码两个Jlabel标签和一个JTextField文本框和JPasswordField的密码框以及三个JButton按钮,最后将这些元素添加到container这个容器中。

    java swing组件中的Jlabel、JTextField、JPasswordField以及JButton一些基本属性

    JLabel

    get/setText(): 获取/设置标签的文本。
    get/seticon(): 获取/设置标签的图片。
    get/setHorizontalAlignment(): 获取/设置文本的水平位置。
    get/setVerticalAlignment(): 获取/设置文本的垂直位置。
    get/setDisplayedMnemonic(): 获取/设置标签的访问键(下划线文字)。
    get/setLableFor(): 获取/设置这个标签附着的组件,所以当用户按下 Alt+访问键时,焦点转移到指定的组件。
    

    JButton

    get/setText(): 获取/设置标签的文本。
    get/seticon(): 获取/设置标签的图片。
    get/setHorizontalAlignment(): 获取/设置文本的水平位置。
    get/setVerticalAlignment(): 获取/设置文本的垂直位置。
    get/setDisplayedMnemonic(): 获取/设置访问键(下划线字符),与 Alt 按钮组合时,造成按钮单击。
    

    JButton 上的状态(活动/不活动、选中/没选中、鼠标经过/鼠标离开、按下/没按下,等等)方法

    get/setDisabledIcon()
    get/setDisableSelectedIcon()
    get/setIcon()
    get/setPressedIcon()
    get/setRolloverIcon()
    get/setRolloverSelectedIcon()
    get/setSelectedIcon()
    

    JTextField —— 基本文本组件,局限在一个文本中

    get/setText():用于获取/设置 JTextField 中的文本
    

    JTextArea —— 支持多行文本

    is/setLineWrap():设置在行过长的时候是否要自动换行。
    is/setWrapStyleWord():设置在单词过长的时候是否要把长单词移到下一行。
    

    JPasswordField —— 密码输入

    get/setEchoChar():获取/设置每次字符输入时在 JPasswordField 中显示的字符。在获取口令时,不会返回“回声”,而是返回实际的字符。
    getText(): 不应当 使用这个函数,因为它会带来可能的安全问题(String 会保存在内存中,可能的堆栈转储会暴露口令)。
    getPassword():这是从 JPasswordField 中获得口令的恰当方法,因为它返回一个包含口令的 char[]。为了保证恰当的安全性,数组应当被清为 0,以确保它不会保留在内存中。
    

    JFrame —— 相当于一个容器,可以把其他组件放在其中展现给用户

    get/setTitle(): 获取/设置该容器的标题。
    get/setState(): 获取/设置该容器的最小化、最大化等状态。
    is/setVisible(): 获取/设置该容器的可视状态,换句话说,是否在屏幕上显示。
    get/setLocation(): 获取/设置该容器在屏幕上应当出现的位置。
    get/setsize(): 获取/设置该容器的大小。
    add(): 将组件添加到该容器中。
    

    equals()的用法:
    1、“==”比较两个变量本身的值,即两个对象在内存中的首地址。
    (java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)
    2、“equals()”比较字符串中所包含的内容是否相同。

    比如:
    1

    String s1,s2,s3 = "abc", s4 ="abc" ;
    s1 = new String("abc");
    s2 = new String("abc");
    
    s1==s2   是 false      //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,
    
    s1.equals(s2) 是 true    //两个变量的所包含的内容是abc,故相等。
    

    2

    class Value 
    { 
    int i; 
    } 
    public class EqualsMethod2 { 
    public static void main(String[] args) { 
    Value v1 = new Value(); 
    Value v2 = new Value(); 
    v1.i = v2.i = 100; 
    System.out.println(v1.equals(v2));//(1)flase 
    System.out.println(v1 == v2);//(2)true 
    } 
    }
    

    参考:

    代码的实现

    package mk1;
    import java.awt.*;//导入awt包
    import javax.swing.*;//导入swing包
    import java.awt.event.ActionListener;//导入awt包中的监听器事件包
    import java.awt.event.ActionEvent;//导入awt包中的ActionEvent事件包
    
    
    
    public class denglu extends JFrame {
    	 
    	    
    	public denglu() { 
    		setSize(300,290);//设计窗体的大小
    		JLabel a=new JLabel("用户名"); //实例化JLabel对象
    		JLabel b=new JLabel("密    码");
    		JTextField c=new JTextField(15);//实例化用户名文本框
    		JPasswordField d=new JPasswordField(15);//实例化密码框
    		d.setEchoChar('*');//将输入密码框中的密码以*显示出来
    		JButton e=new JButton("确定");
    		JButton f=new JButton("重置");
    		JButton g=new JButton("注册");
    		setVisible(true);//使窗体可视化
    		Container mk=getContentPane();//获取一个容器
    //		将用户名、密码的Jlabel和用户名JTextField文本框、密码JPasswordField密码框以及确定JButton、重置JButton、注册JButton添加到container容器里面                         //
    		mk.add(a);
    		mk.add(b);
    		mk.add(c);
    		mk.add(d);
    		mk.add(e);
    		mk.add(f);
    		mk.add(g);
    		setBounds(300,300,300,290);//设置窗体的长宽各为300、300  让其显示在左上方的300、300处
    		mk.setLayout(null);
    //		a、b、c、d、e、f、g显示在container容器中的位置坐标
    		a.setBounds(10,40,50,18);
    		b.setBounds(10,80,50,18);
    		c.setBounds(60,40,200,18);
    		d.setBounds(60,80,200,18);
    		e.setBounds(110,180,60,30);
    		f.setBounds(30,180,60,30);
    		g.setBounds(190,180,60,30);
    		
    		f.addActionListener(new ActionListener() {//对重置按钮添加监听事件
     
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				// TODO Auto-generated method stub
    				c.setText("");//对用户名文本框进行重置
    				d.setText("");//对密码文本框进行重置
    			}
    			
    		});
    		e.addActionListener(new ActionListener() {//对确定按钮添加监听事件
    			 
    			@SuppressWarnings("deprecation")
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				// TODO Auto-generated method stub
    				
    				if(c.getText().trim().equals("mk")&&new String(d.getPassword()).equals("123456")) {//equals函数进行用户名和密码的匹配
    					JOptionPane.showMessageDialog(null,"登录成功");
    					
    					new NewFrame();//进入到NewFrame这个窗体中
    				}else {
    					JOptionPane.showMessageDialog(null, "登录失败");
    				}
    			}
    				
    		});
    		g.addActionListener(new ActionListener(){//对注册按钮添加监听事件
    			@SuppressWarnings("deprecation")
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				// TODO Auto-generated method stub
    				new zhuce();//进入都到zhuce窗体中
    			}
    			
    		});
    		
    	}
    		public static void main(String[] args) {
    			new denglu();
    			
    		}
    		
    	}
    
    
    
    

    NewFrame窗体

    package mk1;
    
    import javax.swing.*;
    import java.awt.*;
    public class NewFrame extends JFrame {
    	NewFrame(){
    		this.setBounds(100,100,500,400);
    		this.setTitle("欢迎来到新窗口");
    		Container s= getContentPane();
    		JLabel t=new JLabel("NewFrame");
    		s.add(t);
    		this.setAlwaysOnTop(true);
    		this.setVisible(true);
    }
    
    }
    

    注册窗体

    package mk1;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.sql.*;
    
    import java.awt.Container;
    
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    public class zhuce extends JFrame {
    	public zhuce() {
    		setSize(300,250);
    		JLabel a=new JLabel("用户名"); 
    		JLabel b=new JLabel("密    码");
    		JLabel D1=new JLabel("再次确认密码");
    		JTextField c=new JTextField(15);
    		JPasswordField d=new JPasswordField(15);
    //		JPasswordField D=new JPasswordField(15);
    		d.setEchoChar('.');
    //		D.setEchoChar('.');
    		JButton e=new JButton("确定");
    		JButton f=new JButton("重置");
    		JButton g=new JButton("返回");
    		setVisible(true);
    		Container mk=getContentPane();
    		mk.add(a);
    		mk.add(b);
    		mk.add(c);
    		mk.add(d);
    		mk.add(e);
    		mk.add(f);
    		mk.add(g);
    //		mk.add(D);
    		setBounds(300,250,300,250);
    		mk.setLayout(null);
    		a.setBounds(10,40,50,18);
    		b.setBounds(10,80,50,18);
    		c.setBounds(60,40,200,18);
    		d.setBounds(60,80,200,18);
    		e.setBounds(110,120,60,30);
    		f.setBounds(30,120,60,30);
    		g.setBounds(190,120,60,30);
    		g.addActionListener(new ActionListener(){
    			@SuppressWarnings("deprecation")
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				// TODO Auto-generated method stub
    				new denglu();
    				
    			}
    			
    		});
    	}
    
    }
    
    

    实现结果:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    做得不好的地方请各位大佬指出来,一起学习一起进步,谢谢大家。

    展开全文
  • java用IDEAservlet和jsp做一个登陆界面

    千次阅读 2020-01-09 18:04:51
    java用IDEAservlet和jsp做一个登陆界面 也是小白,从了解Servlet API开始学起。 我开始的时候看那些代码,关于@WebServlet注解不太懂,就去搜了下,这里有链接看这个就行了 接下来就是代码了,前面的步骤省略了 ...

    java用IDEAservlet和jsp做一个登陆界面

    也是小白,从了解Servlet API开始学起。
    写在笔记里的内容,粘贴过来就是图片了,也没管了。
    我开始的时候看那些代码,关于@WebServlet注解不太懂,就去搜了下,这里有链接看这个就行了

    接下来就是代码了,前面的步骤省略了
    在这里插入图片描述
    还有个事,是我这个小白做错的,在这说下哈,我用的IDEA,开始时候创建的是js文件,但应该创建jsp的(无知的我因为这个疑惑了好久)
    login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>登录页面</title>
    </head>
    <body>
    <form action="LoginServlet" method="post"><!-- action写要请求Servlet的名 -->
        用户名:<input type="text" id="uname" name="uname"><br><br>
        密码:<input type="password" id="pwd" name="pwd"><br><br>
        <input type="submit" value="登录">
        <input type="reset" value="重置">
    </form>
    </body>
    </html>
    

    hello.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>登录成功页面</title>
    </head>
    <body>
    登录成功!${name},${pwd}<form action="LoginServlet" method="get"><input type="submit" value="注销登录"></form>
    </body>
    </html>
    

    LoginServlet.java

    package loginDemo;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.*;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.*;
    @WebServlet("/LoginServlet")
    public class LoginServlet extends javax.servlet.http.HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * @see HttpServlet#HttpServlet()
         */
        public LoginServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet(HttpServletRequest request,
                             HttpServletResponse response) throws ServletException, IOException {
            HttpSession session = request.getSession();//获取session
            Object name = session.getAttribute("name");//从session中获取用户名
            Object pwd = session.getAttribute("pwd");//从session获取用户密码
            System.out.println(name+":"+pwd); //测试一下,输出获取的用户名和密码
            session.invalidate(); //注销session
            response.sendRedirect("login.jsp"); //跳转到login.jsp页面
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request,
                              HttpServletResponse response) throws ServletException, IOException {
            // doGet(request, response);
            // 设置编码为utf-8
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
    
            // 获取用户名和密码
            String name = request.getParameter("uname");
            String pwd = request.getParameter("pwd");
    
            // 校验用户名和密码是否正确
            if ("admin".equals(name) && "123".equals(pwd)) {// 验证成功
                HttpSession session = request.getSession();//获取session
                session.setAttribute("name", name);// 将用户名和密码保存在session中
                session.setAttribute("pwd", pwd);// 将用户名和密码保存在session中
                response.sendRedirect("hello.jsp");// 跳转到hello.jsp页面
            } else {// 校验不成功,则留在跳转到login.jsp页面
                response.sendRedirect("login.jsp");
            }
        }
        @Override
        public void destroy() {
            super.destroy();
        }
    }
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>loginDemo.LoginServlet</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/loginDemo.LoginServlet</url-pattern>
        </servlet-mapping>
    </web-app>
    

    index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      Hello World!
      </body>
    </html>
    
    

    实现的图
    初始
    在这里插入图片描述
    输入正确后
    这里把用户名和密码显示了下
    在这里插入图片描述

    最后的最后,不知道为什么我的控制台有出现乱码,明明开始设置过UTF-8解决了,后来又出现了,头疼,有知道的朋友可以私信教我吗。

    展开全文
  • Java Web简单的注册登陆界面(mysql+servlet+jsp)

    万次阅读 多人点赞 2017-05-12 20:18:47
    通过一段时间Java Web的学习,写一个简单的注册界面个总结,也方便与大家分享交流。首先我们先写一个UserBean,代码如下: package com.szx.jnmc; public class User { private String username; private ...

    通过一段时间Java Web的学习,写一个简单的注册登陆界面来做个总结,也方便与大家分享交流

    首先我们先写一个UserBean,代码如下:

        package com.szx.jnmc;
    
        public class User {
    
    	private String username;
    	private String userpass;
    	private int role;
    	private int lognum;
    	private  String regtime;
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getUserpass() {
    		return userpass;
    	}
    	public void setUserpass(String userpass) {
    		this.userpass = userpass;
    	}
    	public int getRole() {
    		return role;
    	}
    	public void setRole(int role) {
    		this.role = role;
    	}
    	
    	public int getLognum() {
    		return lognum;
    	}
    	public void setLognum(int lognum) {
    		this.lognum = lognum;
    	}
    	public String getRegtime() {
    		return regtime;
    	}
    	public void setRegtime(String regtime) {
    		this.regtime = regtime;
    	}
    	
        }
    

    这段代码用来对user进行数据的封装。

    下面再写一个数据库连接类DBOper 这个类具有连接数据库以及增删改(executeUpdate)查(executeQuery)的功能,以便于AddUserServlet的调用

    package com.szx.jnmc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DBOper {
    
    	Connection conn = null;
    	PreparedStatement ps = null;
    	ResultSet rs = null;
    	//打开连接
    	public Connection getConn(String server,String dbname,String dbuser,String dbpwd){		
    		String DRIVER = "com.mysql.jdbc.Driver";
    		String URL = "jdbc:mysql://"+server+":3306/"+dbname+"?user="+dbuser+"&password="+dbpwd+"&useUnicode=true&characterEncoding=utf8";
    		try{
    			Class.forName(DRIVER);	
    			conn = DriverManager.getConnection(URL);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return conn;
    	}
    	//关闭连接
    	public void closeAll(){
    		try{
    			if(rs != null){
    				rs.close();
    			}
    		}catch(SQLException e){
    			e.printStackTrace();
    		}finally{
    			try{
    				if(ps != null){
    					ps.close();
    				}
    			}catch(SQLException e){
    				e.printStackTrace();
    			}finally{
    			try{
    				if(conn != null){
    					conn.close();
    				}
    			}catch (SQLException e){
    				e.printStackTrace();
    			}
    			}
    		}
    		
    	}
    	//执行sql语句,可以进行查询
    	public ResultSet executeQuery(String preparedSql,String []param){
    		try{
    			ps = conn.prepareStatement(preparedSql);
    			if(param != null){
    				for (int i = 0; i < param.length; i++) {
    					ps.setString(i + 1, param[i]);
    				}
    			}
    			rs = ps.executeQuery();
    		}catch(SQLException e){
    			e.printStackTrace();
    		}		
    		return rs;
    		
    	}
    	//执行sql语句,增加,修改,删除
    	public int executeUpdate(String preparedSql,String[]param){
    		int num = 0;
    		try{
    			ps = conn.prepareStatement(preparedSql);
    			if(ps != null){
    				for (int i = 0; i < param.length; i++) {
    					ps.setString(i + 1, param[i]);
    				}
    			}
    			num = ps.executeUpdate();
    		}catch(SQLException e){
    			e.printStackTrace();
    		}
    		return num;
    	}
    }
    
    

    数据库连接类写完之后,继续写一个UserDao,这个类主要功能是对用户进行增删改查 ,虽然是一个简单的登录界面,但是考虑到后面的开发,所以就直接把删改查的功能也一并实现了,代码如下:

    package com.szx.jnmc;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class UserDao extends DBOper{
    	//获取用户列表
    	public List<User> getUser(){
    		List<User>userList = new ArrayList<User>();
    		User user = new User();
    		String sql = "SELECT * FROM tb_user";
    		try{
    			ResultSet rs = this.executeQuery(sql,null);
    			while(rs.next()){
    				user.setUsername(rs.getString("username"));
    				user.setUserpass(rs.getString("userpass"));
    				user.setLognum(rs.getInt("lognum"));
    				user.setRegtime(rs.getString("regtime"));
    				user.setRole(rs.getInt("role"));
    				userList.add(user);
    			}
    			
    		}catch(SQLException e){
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		return userList;
    	}
    	//根据用户名获取用户
    	public User getUserByName(String name){
    		User user = null;
    		String sql = "SELECT * FROM tb_user WHERE username = ?";
    		try{			
    			ResultSet rs = this.executeQuery(sql, new String[]{name});
    			if(rs.next()){
    				user = new User();
    				user.setUsername(rs.getString("username"));
    				user.setUserpass(rs.getString("userpass"));
    				user.setRole(rs.getInt("role"));
    				user.setLognum(rs.getInt("lognum"));
    				user.setRegtime(rs.getString("regtime"));
    			}
    		}catch(SQLException e){
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		return user;
    	}
    	//修改用户信息
    	public boolean editUser(User user){
    		boolean r = false;
    		String sql = "UPDATE tb_user SET userpass = ?,role = ?,regtime = ?,lognum = ? WHERE username = ?";
    		try{
    			int num = this.executeUpdate(sql, new String[]{user.getUserpass(),""+user.getRole(),""+user.getLognum(),user.getRegtime(),user.getUsername()});
    			if(num > 0){
    				r = true;
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		return r;
    		
    	}
    	//添加用户
    	public boolean addUser(User user){
    		boolean r = false;
    		String sql = "INSERT INTO tb_user(username,userpass,role,regtime)VALUES(?,?,?,?) ";
    		try{
    			int num = this.executeUpdate(sql,new String[]{user.getUsername(),user.getUserpass(),""+user.getRole(),user.getRegtime()});
    			if(num > 0){
    				r = true;
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		return r;
    	}
    	//删除指定用户
    	public boolean delUser(String name){
    		boolean r = false;
    		String sql = "DELETE FROM tb_user WHERE username = ?";
    		try{
    			int num = this.executeUpdate(sql,new String[]{name});
    			if(num > 0){
    				r = true;
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		return r;
    	}
    }
    
    

    ####我们先写注册部分,addUser.jsp用来接收用户的输入。抛开各种样式,直接用最原始的样式呈现吧,代码如下:

     <%@ page language="java" contentType="text/html; charset=GBK"
        pageEncoding="GBK"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"         "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
        <title>添加用户页面</title>
        </head>
        <body>
        <form action = "AddUserServlet" method = "POST">
        用户名:<input type = "text" name = "username">
        密码:<input type = "password" name = "userpass">
        <input type = "submit" value = "注册">
        <input type = "reset" value = "重置">
        </form>
        </body>
        </html>
    

    ####效果如下图,太丑了,仅作分享交流,不喜勿喷
    这里写图片描述

    这里有一个地方需要注意,就是页面的字符编码设置统一为GBK

    下面写我们的AddUserServlet,不多说,直接贴代码:

      package com.szx.jnmc;
    
        import java.io.IOException;
        import java.io.PrintWriter;
    	import java.text.SimpleDateFormat;
    	import java.util.Date;
    	
    	import javax.servlet.ServletContext;
    	import javax.servlet.ServletException;
    	import javax.servlet.annotation.WebServlet;
    	import javax.servlet.http.HttpServlet;
    	import javax.servlet.http.HttpServletRequest;
    	import javax.servlet.http.HttpServletResponse;
    
    	/**
    	 * Servlet implementation class AddUserServlet
    	 */
    	@WebServlet("/AddUserServlet")
    	public class AddUserServlet extends HttpServlet {
    		private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public AddUserServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doPost(request,response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("GBK");
    		response.setContentType("text/html;charset = GBK");
    		String username = request.getParameter("username");
    		String userpass = request.getParameter("userpass");
    		//String role = request.getParameter("role");
    		Date curTime = new Date();
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    		String regtime = sdf.format(curTime);
    		PrintWriter out = response.getWriter();
    		ServletContext ctx = this.getServletContext();
    		String server = ctx.getInitParameter("server");
    		String dbname = ctx.getInitParameter("dbname");
    		String dbuser = ctx.getInitParameter("dbuser");
    		String dbpwd = ctx.getInitParameter("dbpwd");
    		User user = new User();
    		user.setUsername(username);
    		user.setUserpass(userpass);
    		user.setRegtime(regtime);
    		//user.setRole(Integer.parseInt(role));
    		UserDao dao = new UserDao();
    		dao.getConn(server, dbname, dbuser, dbpwd);
    		if(dao.addUser(user)){
    			out.print("注册成功!");
    		}
    		else{
    			out.print("注册失败!");
    		}
    		
    		
    	}
    
        }
    

    接下来我们写登陆部分,login.jsp代码如下:

    <%@ page language="java" contentType="text/html; charset=GBK"
        pageEncoding="GBK"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>登陆页面</title>
    </head>
    <body>
    <form method = "POST" action = "LoginServlet">
    用户名:<input type = "text" name = "username">
    密码:<input type = "password" name = "userpass">
    <input type = "submit" value = "登陆">
    <input type = "reset" value = "重置">
    </form>
    </body>
    </html>
    

    登录页面如下:

    这里写图片描述

    LoginServlet代码如下:

    package com.szx.jnmc;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class LoginServlet
     */
    @WebServlet("/LoginServlet")
    public class LoginServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public LoginServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doPost(request,response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("GBK");
    		response.setContentType("text/html;charset = GBK");
    		PrintWriter out = response.getWriter();
    		String username = request.getParameter("username");
    		String userpass = request.getParameter("userpass");
    		ServletContext ctx = request.getServletContext();
    		String server = ctx.getInitParameter("server");
    		String dbname = ctx.getInitParameter("dbname");
    		String dbuser = ctx.getInitParameter("dbuser");
    		String dbpwd = ctx.getInitParameter("dbpwd");		
    		DBOper db = new DBOper();
    		db.getConn(server, dbname, dbuser, dbpwd);
    		String sql = "SELECT username,userpass,role FROM tb_user WHERE username = ? AND userpass = ?";
    		ResultSet rs = db.executeQuery(sql,new String[]{username,userpass});
    		try {
    			if(rs != null && rs.next()){
    				HttpSession session = request.getSession();
    				session.setAttribute("username",username);
    				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    				String logtime = sdf.format(new Date()); 
    				session.setAttribute("logtime",logtime);
    				Cookie cookie = new Cookie("username",username);
    				cookie.setMaxAge(60*60*24*30);
    				response.addCookie(cookie);
    				RequestDispatcher dispatcher = request.getRequestDispatcher("MainServlet");
    				dispatcher.forward(request,response);
    			}else{
    				out.print("登录失败");
    				out.print("<br><a href = 'login.jsp'>重新登陆</a>");
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	public void init()throws ServletException {
    		
    	}
    
    }
    
    

    LoginServlet里的MianServlet用来显示登陆成功的信息,登陆失败则跳转到login.jsp重新登陆,MainServlet的代码如下:

    package com.szx.jnmc;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class MainServlet
     */
    @WebServlet("/MainServlet")
    public class MainServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public MainServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doPost(request,response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("GBK");
    		response.setContentType("text/html;charaset = GBK");
    		PrintWriter out = response.getWriter();
    		HttpSession session = request.getSession();
    		String username = (String)session.getAttribute("username");
    		String logtime = (String)session.getAttribute("logtime");
    		out.println("登录名:"+username+"&nbsp;&nbsp;&nbsp;&nbsp;登陆时间:"+logtime);
    		out.println("欢迎"+username);
    	}
    
    }
    
    

    到此我们还有最重要的一步,就是在web.xml里配置我们的项目,web.xml代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>20170512</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <context-param>
        <param-name>server</param-name>
        <param-value>localhost</param-value>
      </context-param>
      <context-param>
        <param-name>dbname</param-name>
        <param-value>A20170512</param-value>
      </context-param>
      <context-param>
        <param-name>dbuser</param-name>
        <param-value>root</param-value>
      </context-param>
      <context-param>
        <param-name>dbpwd</param-name>
        <param-value>123456</param-value>
      </context-param>
      <servlet>
        <display-name>AddUserServlet</display-name>
        <servlet-name>AddUSerServlet</servlet-name>
        <servlet-class>com.szx.jnmc.AddUserServlet</servlet-class>
      </servlet>
       <servlet>
      <display-name>LoginServlet</display-name>
      <servlet-name>LoginServlet</servlet-name>
      <servlet-class>com.szx.jnmc.LoginServlet</servlet-class>
      </servlet>
    </web-app>
    

    ####当然,配置文件容易出现问题,例如在刚开始的时候项目里并没有web.xml,所以我们不妨在创建项目的时候就直接带上,步骤如下:
    1.新建项目
    这里写图片描述
    2.next
    这里写图片描述
    3.勾选√
    这里写图片描述
    ####这时候,项目的/0512/WebContent/WEB-INF/目录下就会出现web.xml文件

    还有一步就是要把jdbc连接数据库(mysql)的jar包复制到/20170512/WebContent/WEB-INF/lib目录下,这样才能连接保证连接到数据库

    到此有必要贴出项目的目录结构:

    这里写图片描述
    ####数据库需要自己创建,如图所示:
    这里写图片描述

    项目的下载地址:

    CSDN下载中心:http://download.csdn.net/detail/itcreater000/9841194

    百度网盘下载:链接: https://pan.baidu.com/s/1m1A8wNt7FVwwh8t7UuyAMw 提取码: 6ygn

    喜欢的朋友可以点个赞,有问题欢迎留言!

    到此就结束了我们的项目,欢迎大家提出宝贵的建议改进方案!

    展开全文
  • import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionEvent; import java.io.*; import javax.swing
  • 使用Java编写一个简单的 JFrame登陆注册界面(一)

    万次阅读 多人点赞 2019-03-21 15:07:38
    使用Java awt 及 Swing 组件编写一个简单的登陆界面。 示例: 下面开始介绍如何编写。 通过调用实例化一个JFrame框架,在框架内嵌入JPanel,在JPanel上进行添加控件。 package com.main.frame; import java.awt.*...
  • 数据库是sql server 2008,具体程序要怎么写 求教一下
  • 用Java一个登录界面

    2020-08-18 00:15:26
    # 用Java一个登录界面 @[ TOC](1. 设置窗体) 2. 设置窗体的属性# 用Java一个登录界面 3.设置流式布局# 用Java一个登录界面 4.添加组件 # 用Java一个登录界面 5. 添加接口# 用Java一个登录界面
  • Java实现登陆界面

    千次阅读 2019-02-20 16:41:30
    Swing和AWT组件 Swing是Java基础类库的部分,用于绘制用户界面;AWT一般是指像事件处理这样的窗口工具箱的底层机制。两者均为用户界面库,AWT构建的图形界面可跨平台,但依赖于目标...要实现登陆界面需要用到的...
  • 用Java创建一个登录界面

    千次阅读 多人点赞 2019-01-01 23:08:31
    本部分我们用Java创建了一个学生信息管理系统的登陆界面登陆界面可以进行账号登陆,也可以转换到注册界面 package com.group; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt....
  • 使用Java JFrame编写一个简单的登陆界面(二)

    千次阅读 多人点赞 2019-03-26 20:19:01
    Java编写窗口第二弹 基于JFrame窗口的,想要了解...其实很简单,就是给登陆按钮设置一个监听器,并且给监听器进行编写方法。 检测文本框TextField中是否还是提示内容。如果是就弹出错误框,提示用户名密码不能为空。...
  • java简单登陆界面

    2014-09-24 08:36:53
    简单的java代码编写的登陆界面。实现对账号密码的判断。并且可以实现注册。还有登陆。适合初学者。
  • java JFrame版的登陆界面

    热门讨论 2012-08-22 20:02:41
    最简单的java基于JFrame版的登陆界面
  • 主要介绍了java通过JFrame做一个登录系统的界面完整代码示例,具有一定借鉴价值,需要的朋友可以参考下。
  • java+Access登陆界面

    热门讨论 2008-10-26 21:51:07
    这是本人用java做一个小小的登陆界面,连接的是Access数据库,数据源的名字是mysource,只要在本地机上配置一下就可以使用了。很简单的界面……
  • 注册登陆界面java

    2009-05-20 16:28:31
    登陆注册界面jsp,java实现的,内包含流程图
  • java swing 登陆界面+跳转界面

    万次阅读 多人点赞 2017-05-26 22:02:25
    java swing+RS232通信持续更新
  • java邮箱登陆界面

    2011-10-29 12:06:42
    用java实现邮箱登陆界面,适合初学者,源代码易懂,肯定能给你带来学习上的帮助
  • java游戏登陆界面

    2009-06-25 22:48:11
    我自己弄的Java登录的界面,对Java初学者挺有用的,大家可以看看啊
  • java课程设计登陆界面

    2015-06-25 02:03:23
    java课程设计需要一个登陆界面,要包含登陆和注册,要最简单的代码,也要好理解
  • java GUI swing组件编写的简单的登陆界面
  • 用java的JFrame做一个登录系统的界面

    万次阅读 2017-08-12 14:48:10
    java的JFrame内通过创建匿名对象的方式登录界面 package com.sxt; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ...
  • java简单实现仿QQ登陆界面

    千次阅读 多人点赞 2018-05-01 22:49:32
    总体南北布局,北部为一个label图片,中部是一个自定义面板 2.面板不采用默认布局,自己给组建设置布局方式package com.shl;import javax.swing.*;import java.awt.*;public class Login extends JFrame{ JPanel ...
  • Java实现登陆注册界面

    千次阅读 多人点赞 2020-06-28 19:04:52
    1.java swing (也可采用SWT designer进行辅助界面设计 ) 所用组件: JButton:登陆 JLabel:使用JLabel(new ImgeIcon(url)),进行背景设置,最好使用相对地址 "/" 将图片放在程序文件之中,也可使用本地
  • 项目实战篇:用Java Swing写一个登录界面

    千次阅读 多人点赞 2020-04-01 15:24:41
    要实现这样一个界面就需要用到Java Swing相关代码: 首先我们在eclipse中创建一个Java项目,在这个项目下创建包还有相关的类 我们的项目一共分为四个java文件: Create_GUI.java(代码) import javax.swing.JFrame; ...
  • java 初学者练习的小项目,做一个登录界面,采用的文件读取,加的有图片,,里面有可运行的java工程源码和jar架包。交作业(你懂得),学习必备。。
  • import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPane...
  • JAVA swing之用户登陆界面

    千次阅读 2015-05-15 16:05:38
    本文主要介绍用java swing写一个用户登录界面,其中包括的功能有: 1:新用户的创建 2:将用户信息保存在txt文件 3:切换用户 4:更改密码 5:可以做到访问电脑硬盘更换头像
  • Java 设计 QQ登陆界面

    千次阅读 2018-07-18 22:26:08
    ... ...import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,513
精华内容 9,805
关键字:

如何用java做一个注册登录界面

java 订阅