十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
界面建议用可视化来做,美观且便捷。下面这个是完全用代码写的,仅供参考。\x0d\x0aimport javax.swing.*;\x0d\x0aimport java.awt.event.*;\x0d\x0aimport java.awt.*;\x0d\x0aimport java.sql.*;\x0d\x0apublic class Register extends JFrame {\x0d\x0a JLabel jl1 = new JLabel("用户名");\x0d\x0a JTextField jt1 = new JTextField();\x0d\x0a JLabel jl2 = new JLabel("邮箱");\x0d\x0a JTextField jt2 = new JTextField();\x0d\x0a JLabel jl3 = new JLabel("密码");\x0d\x0a JPasswordField jpw1 = new JPasswordField();\x0d\x0a JLabel jl4 = new JLabel("密码确认");\x0d\x0a JPasswordField jpw2 = new JPasswordField();\x0d\x0a JButton register = new JButton("注册");\x0d\x0a JButton clean = new JButton("清空");\x0d\x0a public Register(){\x0d\x0a setLayout(new GridLayout(5,2));\x0d\x0a add(jl1);\x0d\x0a add(jt1);\x0d\x0a add(jl2);\x0d\x0a add(jt2);\x0d\x0a add(jl3);\x0d\x0a add(jpw1);\x0d\x0a add(jl4);\x0d\x0a add(jpw2);\x0d\x0a add(register);\x0d\x0a add(clean);\x0d\x0a String name = jt1.getText();\x0d\x0a String email = jt2.getText();\x0d\x0a String pw = jpw1.getText();\x0d\x0a register.addActionListener(new ActionListener(){\x0d\x0a public void actionPerformed(ActionEvent e){\x0d\x0a try{\x0d\x0a Class.forName("com.mysql.jdbc.Driver");\x0d\x0a Connection con = DriverManager.getConnection("jdbc:mysql://localhost/db","root","");\x0d\x0a Statement sta = con.createStatement();\x0d\x0a sta.executeUpdate("INSERT INTO register VALUES(name,email,pw)");\x0d\x0a JOptionPane.showMessageDialog(null,"注册成功","提示",JOptionPane.INFORMATION_MESSAGE);\x0d\x0a }\x0d\x0a catch(Exception ex){\x0d\x0a ex.getStackTrace();\x0d\x0a }\x0d\x0a }\x0d\x0a });\x0d\x0a clean.addActionListener(new ActionListener(){\x0d\x0a public void actionPerformed(ActionEvent e){\x0d\x0a jt1.setText("");\x0d\x0a jt2.setText("");\x0d\x0a jpw1.setText("");\x0d\x0a jpw2.setText("");\x0d\x0a }\x0d\x0a });\x0d\x0a }\x0d\x0a public static void main(String[] args){\x0d\x0a Register frame = new Register();\x0d\x0a frame.setTitle("用户注册");\x0d\x0a frame.setLocationRelativeTo(null);\x0d\x0a frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\x0d\x0a frame.setSize(400,400);\x0d\x0a frame.setVisible(true);\x0d\x0a }\x0d\x0a}
成都创新互联专业为企业提供蓟州网站建设、蓟州做网站、蓟州网站设计、蓟州网站制作等企业网站建设、网页设计与制作、蓟州企业网站模板建站服务,十余年蓟州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
首先,我们得明白用户登录使用什么登陆的,即用户在线的原理。这只是将用户的对象存放在了session中而已,然后再frame中进行调用,其他特定页面也进行直接引用就行。那么实现“挤下来”的功能就是让新生成的session有效,让原来存放用户的session失效就行。到此,大体思路已经有了。那怎么实现呢?
想要知道怎么实现,就必须要明白session存放用户对象的过程了。在用户登录之后,我们可以得到用户的对象user,而存放到session中需要执行session.setAttribute(key,value); 我们将用户的userId或是其他的唯一标识存为key,将用户对象存为值。这样就能随时随地调用唯一用户了。user存放的问题解决了,那相同 登录 时session废除的问题呢?

这个其实也不难,我们可以更具session的特性一样,用map进行存贮,将用户的标识存为key,而将其所对应的session存为value,那么当重复用户登录时,只需要取出对应的session,将其invalidate就行了。
至此,实现思路已经明了,聒噪了这么久,大家都急不可耐地想看代码了吧?以下是代码:
前置准备,jsp界面
界面很简单,只是一个简单的登录界面
form action ="%=request.getContextPath()%/UserWXPServlet" method = "post"
用户名šinput type = "text" name = "username"/br/
密码šinput type = "text" name = "password"/br/
input type = "submit" value ="提交"/
/form
成功后跳转页面
欢迎:${sessionScope.user.username}登陆!br/
我这没有写失败页面,大家可以自己写,失败页面也没什么好说的了
entity和登录的实现
user的javabean
private String username;
private String password;
public User() {
}
public User(String user, String password) {
super();
this.username = user;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
登录user的service实现方法,这里就不写dao和接口了,一切以简单为
public boolean dologin(User user){
Properties pro = new Properties();
InputStream is = UserWXPServlet.class.getClassLoader().getResourceAsStream("user_wxp.properties");
String password = null;
System.out.println(is+"---------"+pro);
if(user==null){
return false;
}
try {
pro.load(is);
password = pro.getProperty(user.getUsername());
if(user.getPassword()!=nulluser.getPassword().equals(password)){
System.out.println("登陆成功");
return true;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}
登录成功返回true,失败则返回false。
hibernate-mapping
class name="com.model.Member" table="t_member"
id name="member_id" type="java.lang.Integer"
column name="member_id" /
generator class="native"
/generator
/id
property name="member_truename" type="java.lang.String"
column name="member_truename" /
/property
property name="member_birth" type="java.util.Date"
column name="member_birth" /
/property
property name="member_qq" type="java.lang.String"
column name="member_qq" /
/property
property name="member_provinceid" type="java.lang.Integer"
column name="member_provinceid" /
/property
property name="member_cityid" type="java.lang.Integer"
column name="member_cityid" /
/property
property name="member_areaid" type="java.lang.Integer"
column name="member_areaid" /
/property
/class
/hibernate-mapping
@Service
@SuppressWarnings({ "rawtypes", "unchecked" })
public class MemberService {
MemberDaoMember memberDao = new MemberDao();
public void saveMember(Member member) {
memberDao.save(member);
}
}
@Repository
public class MemberDaoMember {
@Autowired
public SessionFactory sessionFactory;
/**
* 获得当前事物的session
*
* @return org.hibernate.Session
*/
public Session getCurrentSession() {
return this.sessionFactory.getCurrentSession();
}
public Serializable save(Member member) {
if (member != null) {
return this.getCurrentSession().save(member);
}
return null;
}
}
这篇文章主要介绍了java通过JFrame做一个登录系统的界面完整代码示例,具有一定借鉴价值,需要的朋友可以参考下。
在java的JFrame内通过创建匿名对象的方式做登录界面
package com.sxt;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginFrame extends JFrame{
JTextField txtname=new JTextField();
JPasswordField txtpass=new JPasswordField();
JButton bl=new JButton("登录");
JButton bg=new JButton("关闭");
//构造无参构造器把主要的方法放在构造器里,然后在main方法里面调
public LoginFrame(){
setBounds(25,25,250,250);
Container c = getContentPane();
c.setLayout(new GridLayout(4,2,10,10));
c.add(new JLabel("用户名"));
c.add(txtname);
c.add(new JLabel("密码"));
c.add(txtpass);
c.add(bl);
c.add(bg);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
//注意:此处是匿名内部类
bg.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
}
);
//注意:此处是匿名内部类
bl.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Java写提示注册成功的方法如下:
1、首先用户注册完成后,返回一个boolean值的变量;
2、利用Servlet类判断这个变量,如果为true,跳转到提示界面,提示用户注册成功,如果为false,跳转到提示界面,提示用户注册失败;
3、具体代码如下所示:
public class DemoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String usepwd= request.getParameter("usepwd");
boolean flag = Dao.register(username,usepwd);//注册方法
if(flag){
//提示注册成功
request.getRequestDispatcher("/success.jsp").forward(request, response);
}else{
//提示注册失败
request.getRequestDispatcher("/success.jsp").forward(request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4、至此,就完成了提示注册成功的功能。