使用ssh框架写一个基本的登录注册页面
2015-07-17 20:50
543 查看
Java基础只限于本科时上过Java课。考试成绩60。看了李刚的Java EE有一个月了,今天做一个简单的登录页面。
参考链接</p><p>http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky
1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。
2、新建web工程。
3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。
第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path
4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。
上图配置自动在ApplicationContext.xml文件中自动生成dataSorce bean
选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件
5、建立UserDao.java
6、UserDaoHibernate.java
7、UserService.java
8、UserManageImpl.java
9、UserAction.java
10、Bean注入
11、配置Action及校验配置
为了完成登录校验使用了Ajax技术,首先要为Structs添加JSON插件,将Structs解压缩目录的lib子目录下的structs-json-plugin-2.2.1.jar文件复制到web应用的WEB-INF、lib目录下。
上面的文件为第一个action配置了返回值为Json(JavaScript Object Notation即JavaScript对象符号)类型的result。json插件可以将action中的状态信息序列化成json格式的字符串,并将该字符串返回给客户端的浏览器。在客户端页面就可以用JavaScript异步调用Action,并且Action可以不使用视图资源来显示该Action里的状态信息。通过这种方式就可以完成Ajax(Asynchronous JavaScript And XML即异步JavaScript和XML技术)交互。
配置json数据类型的result时还配置了root参数,该参数可以为OGNL表达式,确定Action内的某个属性。配置该参数说明不再把整个Action对象序列化成JSON字符串,而是只将该参数指定的Action属性序列化成JSON字符串返回给客户端。
12、login.jsp建立登录页面
主要的提交数据表单代码如下:
13、regist.jsp页面中使用了Ajax和jQuery检测用户名和注册邮箱是否重复。
http://www.2cto.com/kf/201308/238557.html(网上的另一种实现)
上面的UserService和UserDao中都已经定义了findByUserName和findByEmail方法。在UserAction中写checkUsername和checkUserEmail方法,前台的js代码把取得的username和email分别使用Json数据传递给后台调用check方法,check方法给warnMes赋值并在此使用Json格式传递。
regist.jsp代码如下:
初学还有很多不足,欢迎大家批评指正。
Java基础只限于本科时上过Java课。考试成绩60。看了李刚的Java EE有一个月了,今天做一个简单的登录页面。<p></p><p>参考链接</p><p>http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky</p><p></p><p>1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。</p><p>2、新建web工程。</p><p>3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。</p><p>
第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path</p><p>4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。</p><p><img src="" alt="" /></p><p>上图配置自动在ApplicationContext.xml文件中自动生成dataSorce
bean</p><p><img src="" alt="" /></p><p>选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件</p><p><img src="" alt="" /><img src="" alt="" /></p><p>5、建立UserDao.java</p><p></p><pre name="code" class="java">package dao;
参考链接</p><p>http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky
1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。
2、新建web工程。
3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。
第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path
4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。
上图配置自动在ApplicationContext.xml文件中自动生成dataSorce bean
选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件
5、建立UserDao.java
import java.util.List; import com.domain.User; public interface UserDao { User get(Integer id); Integer save(User user); void update(User user); void delete(User user); void delete(Integer id); List<User> findByNameAndPass(User user); User findByName(String name); User findByEmail(String email); }
6、UserDaoHibernate.java
package dao.persistence.impl; import java.util.*; import com.common.hibernate3.support.YeekuHibernateDaoSupport; import com.domain.*; import dao.UserDao; public class UserDaoHibernate extends YeekuHibernateDaoSupport implements UserDao{ @Override public User get(Integer id){ return getHibernateTemplate().get(User.class, id); } @Override public Integer save(User user) { // TODO Auto-generated method stub Integer inte = (Integer)getHibernateTemplate().save(user); return inte; } @Override public void update(User user) { // TODO Auto-generated method stub getHibernateTemplate().update(user); } @Override public void delete(User user) { // TODO Auto-generated method stub getHibernateTemplate().delete(user); } @Override public void delete(Integer id) { // TODO Auto-generated method stub getHibernateTemplate().delete(get(id)); } @SuppressWarnings("unchecked") @Override public List<User> findByNameAndPass(User user) { // TODO Auto-generated method stub return (List<User>)getHibernateTemplate() .find("from User u where u.userName=? and u.pass=?", user.getUserName(), user.getPass()); } @Override public User findByName(String name) { // TODO Auto-generated method stub @SuppressWarnings("unchecked") List<User> us = (List<User>)getHibernateTemplate() .find("from User where userName = ? " , name); if (us!= null && us.size() >= 1) { return us.get(0); } return null; } @Override public User findByEmail(String email) { // TODO Auto-generated method stub @SuppressWarnings("unchecked") List<User> us = (List<User>)getHibernateTemplate() .find("from User where email = ? " , email); if (us!= null && us.size() >= 1) { return us.get(0); } return null; } }
7、UserService.java
package com.service; import com.domain.*; import java.util.*; public interface UserService { public User getByName(String name); public User getByEmail(String email); public boolean checkUser(User user); public boolean addUser(User user); }
8、UserManageImpl.java
package com.service.impl; import java.util.List; import com.domain.User; import com.service.UserService; import dao.*; public class UserManagerImpl implements UserService { private UserDao userdao; public UserDao getUserdao() { return userdao; } public void setUserdao(UserDao userdao) { this.userdao = userdao; } @Override public User getByName(String name) { return userdao.findByName(name); } @Override public User getByEmail(String email) { // TODO Auto-generated method stub return userdao.findByEmail(email); } public boolean checkUser(User user){ List<User> users= (userdao.findByNameAndPass(user)); if(users.size()>0) return true; else return false; } @Override public boolean addUser(User user) { // TODO Auto-generated method stub Integer ref=(Integer) userdao.save(user); if(ref!=null) return true; else return false; } }
9、UserAction.java
<pre name="code" class="java">package com.action; import net.sf.json.JSONObject; import com.domain.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.service.UserService; @SuppressWarnings("serial") public class UserAction extends ActionSupport implements ModelDriven { private String result; private UserService userservice; private User user; public User getUser() { return user; } public void setUser(User user) { this.user.setUserName(user.getUserName()); this.user.setPass(user.getPass()); this.user = user; } public UserService getUserservice() { return userservice; } public void setUserservice(UserService userservice) { this.userservice = userservice; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } @Override public Object getModel() { // TODO Auto-generated method stub if (user == null) user = new User(); return user; } public String checkUserName() { String warnMsg = ""; User user = userservice.getByName(this.user.getUserName()); if (user == null) warnMsg = "该用户名可用"; else warnMsg = "该用户名已经存在"; JSONObject jo = new JSONObject(); jo.put("warnMsg", warnMsg); result = jo.toString();//向jsp页面传递一个result值 return SUCCESS; } public String checkUserEmail() { User user = userservice.getByEmail(this.user.getEmail()); String warnMsg = ""; if (user == null) warnMsg = "该邮箱可用"; else warnMsg = "该邮箱已注册"; JSONObject jo = new JSONObject(); jo.put("warnMsg", warnMsg); result = jo.toString(); return SUCCESS; } public String login() { if (userservice.checkUser(user)) return "success"; else return "input"; } public String add() { if (userservice.addUser(user) == true) return "success"; else return "input"; } }
10、Bean注入
11、配置Action及校验配置
为了完成登录校验使用了Ajax技术,首先要为Structs添加JSON插件,将Structs解压缩目录的lib子目录下的structs-json-plugin-2.2.1.jar文件复制到web应用的WEB-INF、lib目录下。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="userjson" namespace="/" extends="json-default"> <action name="userJSONAction_*" method="{1}" class="UserA"> <result type="json"> <param name="root">result</param> </result> </action> </package> <package name="default" extends="struts-default" namespace="/"> <action name="Login" class="UserA" method="login"> <result name="input">/login.jsp</result> <result name="success">/main.jsp</result> </action> <action name="regist" class="UserA" method="add"> <result name="input">/regist.jsp</result> <result name="success">/main.jsp</result> </action> <action name="*"> <result>{1}.jsp</result> </action> </package> </struts>
上面的文件为第一个action配置了返回值为Json(JavaScript Object Notation即JavaScript对象符号)类型的result。json插件可以将action中的状态信息序列化成json格式的字符串,并将该字符串返回给客户端的浏览器。在客户端页面就可以用JavaScript异步调用Action,并且Action可以不使用视图资源来显示该Action里的状态信息。通过这种方式就可以完成Ajax(Asynchronous JavaScript And XML即异步JavaScript和XML技术)交互。
配置json数据类型的result时还配置了root参数,该参数可以为OGNL表达式,确定Action内的某个属性。配置该参数说明不再把整个Action对象序列化成JSON字符串,而是只将该参数指定的Action属性序列化成JSON字符串返回给客户端。
12、login.jsp建立登录页面
主要的提交数据表单代码如下:
<form method="post" action="Login.action"> 用户名:<input name="username" type="text"><br/> 密码:<input name="password" type="password"> <br/> <input name="Submits" type="submit" value="登录"/> <input name="ReSet" type="reset" value="重置"/> <a href="regist.jsp"><input type="button" value="注册"/></a> </form>
13、regist.jsp页面中使用了Ajax和jQuery检测用户名和注册邮箱是否重复。
http://www.2cto.com/kf/201308/238557.html(网上的另一种实现)
上面的UserService和UserDao中都已经定义了findByUserName和findByEmail方法。在UserAction中写checkUsername和checkUserEmail方法,前台的js代码把取得的username和email分别使用Json数据传递给后台调用check方法,check方法给warnMes赋值并在此使用Json格式传递。
regist.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'regist.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script src="js/jQuery.js"></script> <script type="text/javascript"> function checkEmail(){ var emailifo=$("#email").val(); $.ajax({ type: "GET", url: "userJSONAction_checkUserEmail.action", data: {email:emailifo}, dataType: "json", success: function(data){ var obj=$.parseJSON(data); $("#emailMes").html(""); $("#emailMes").text(obj.warnMsg); } }); } function checkUserName(){ var nameInfo=$("#userName").val(); $.ajax({ type: "GET", url: "userJSONAction_checkUserName.action", data: {userName:nameInfo}, dataType: "json", success: function(data){ var obj=$.parseJSON(data); $("#nameMes").html(""); $("#nameMes").text(obj.warnMsg); } }); } </script> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 註冊 <br> <form action="regist.action" method="post"> 邮箱:<input type="text" id="email" name="email" onblur="checkEmail()"><p id="emailMes"></p> <br /> 用户名:<input type="text" id="userName" name="userName" onblur="checkUserName()"><p id="nameMes"></p> <br /> 密码:<input type="text" name="pass" value=""> <br /> <input type="submit" name="submit" value="注册"> </form> </body> </html>
初学还有很多不足,欢迎大家批评指正。
Java基础只限于本科时上过Java课。考试成绩60。看了李刚的Java EE有一个月了,今天做一个简单的登录页面。<p></p><p>参考链接</p><p>http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky</p><p></p><p>1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。</p><p>2、新建web工程。</p><p>3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。</p><p>
第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path</p><p>4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。</p><p><img src="" alt="" /></p><p>上图配置自动在ApplicationContext.xml文件中自动生成dataSorce
bean</p><p><img src="" alt="" /></p><p>选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件</p><p><img src="" alt="" /><img src="" alt="" /></p><p>5、建立UserDao.java</p><p></p><pre name="code" class="java">package dao;
相关文章推荐
- 锚点偏移问题的解决
- 记一次grub的修复or修改
- android webview中shouldOverrideUrlLoading方法的返回值问题
- OC-类目
- ecplise不会自动提示
- 关于php学习的一些小问题
- [第1章]界面:Table View Controller的使用
- 初步STL集装箱Vector
- 触发器原理
- 卡片游戏O(∩_∩)O
- HDU 3065 病毒侵袭持续中(AC自动机)
- 解决冲突(避免冲突)
- 汇编语言得玩转
- POJ 2003 Hire and Fire (多重链表 树结构 好题)
- 2015 HUAS Summer Training#1 B
- Oracle和SQL SERVER在SQL语句上的差别
- 【rqnoj39】 饮食问题
- php判断假图片的方法
- javaWeb面试题
- IP协议和TCP协议的分析