ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:27.43KB ,
资源ID:8123152      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8123152.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx

1、User类具体代码如下:复制代码 1 package me.gacl.domain; 2 3 import java.io.Serializable; 4 import java.util.Date; 5 /* 6 * author gacl 7 * 用户实体类 8 */ 9 public class User implements Serializable 10 11 private static final long serialVersionUID = -4313782718477229465L;12 13 / 用户ID14 private String id;15 / 用户名16 pr

2、ivate String userName;17 / 用户密码18 private String userPwd;19 / 用户邮箱20 private String email;21 / 用户生日22 private Date birthday;23 24 public String getId() 25 return id;26 27 28 public void setId(String id) 29 this.id = id;30 31 32 public String getUserName() 33 return userName;34 35 36 public void setU

3、serName(String userName) 37 this.userName = userName;38 39 40 public String getUserPwd() 41 return userPwd;42 43 44 public void setUserPwd(String userPwd) 45 this.userPwd = userPwd;46 47 48 public String getEmail() 49 return email;50 51 52 public void setEmail(String email) 53 this.email = email;54

4、55 56 public Date getBirthday() 57 return birthday;58 59 60 public void setBirthday(Date birthday) 61 this.birthday = birthday;62 63 3.2、开发数据访问层(dao、dao.impl)在me.gacl.dao包下创建一个IUserDao接口类,对于开发接口类,我习惯以字母I作类的前缀,这样一眼就看出当前这个类是一个接口,这也算是一种良好的开发习惯吧,通过看类名就可以方便区分出是接口还是具体的实现类。IUserDao接口的具体代码如下: 1 package me.g

5、acl.dao; 3 import me.gacl.domain.User; 4 5 public interface IUserDao 6 7 /* 8 * 根据用户名和密码来查找用户 9 * param userName10 * param userPwd11 * return 查到到的用户12 */13 User find(String userName, String userPwd);14 15 /*16 * 添加用户17 * param user18 */19 void add(User user);20 21 /*根据用户名来查找用户22 * param userName23 *

6、 return 查到到的用户24 */25 User find(String userName); 对于接口中的方法定义,这个只能是根据具体的业务来分析需要定义哪些方法了,但是无论是多么复杂的业务,都离不开基本的CRUD(增删改查)操作,Dao层是直接和数据库交互的,所以Dao层的接口一般都会有增删改查这四种操作的相关方法。在me.gacl.dao.impl包下创建一个UserDaoImpl类UserDaoImpl类是IUserDao接口的具体实现类,对于接口的实现类命名方式,我习惯以接口名(去除前缀I)+impl形式或者接口名+impl形式来命名:IUserDao(接口)UserDaoImp

7、l(实现类)或者IUserDao(接口)IUserDaoImpl(实现类),这也算是一些个人的编程习惯吧,平时看到的代码大多数都是以这两种形式中的一种来来命名接口的具体实现类的,反正就是要能够一眼看出接口对应的实现类是哪一个就可以了。UserDaoImpl类的具体代码如下: 1 package me.gacl.dao.impl; 3 import java.text.SimpleDateFormat; 4 import org.dom4j.Document; 5 import org.dom4j.Element; 6 import me.gacl.dao.IUserDao; 7 import

8、me.gacl.domain.User; 8 import me.gacl.util.XmlUtils; 9 10 /*11 * IUserDao接口的实现类12 * author gacl13 */14 public class UserDaoImpl implements IUserDao 15 16 Override17 public User find(String userName, String userPwd) 18 try19 Document document = XmlUtils.getDocument();20 /使用XPath表达式来操作XML节点21 Element

9、e = (Element) document.selectSingleNode(/useruserName=+userName+ and userPwd=+userPwd+);22 if(e=null)23 return null;24 25 User user = new User();26 user.setId(e.attributeValue(id);27 user.setEmail(e.attributeValue(email28 user.setUserPwd(e.attributeValue(userPwd29 user.setUserName(e.attributeValue(u

10、serName30 String birth = e.attributeValue(birthday31 SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd32 user.setBirthday(sdf.parse(birth);33 34 return user;36 catch (Exception e) 37 throw new RuntimeException(e);39 40 41 SuppressWarnings(deprecation)42 Override43 public void add(User user) 44

11、try45 Document document = XmlUtils.getDocument();46 Element root = document.getRootElement();47 Element user_node = root.addElement(user /创建user结点,并挂到root48 user_node.setAttributeValue(, user.getId();49 user_node.setAttributeValue(, user.getUserName();50 user_node.setAttributeValue(, user.getUserPwd

12、();51 user_node.setAttributeValue(, user.getEmail();52 53 SimpleDateFormat sdf=new SimpleDateFormat(54 user_node.setAttributeValue(, sdf.format(user.getBirthday();56 XmlUtils.write2Xml(document);57 58 catch (Exception e) 59 throw new RuntimeException(e);60 61 62 63 Override64 public User find(String

13、 userName) 65 try66 Document document = XmlUtils.getDocument();67 Element e = (Element) document.selectSingleNode(68 if(e=null)69 return null;70 71 User user = new User();72 user.setId(e.attributeValue(73 user.setEmail(e.attributeValue(74 user.setUserPwd(e.attributeValue(75 user.setUserName(e.attrib

14、uteValue(76 String birth = e.attributeValue(77 SimpleDateFormat sdf = new SimpleDateFormat(78 user.setBirthday(sdf.parse(birth);79 80 return user;81 82 catch (Exception e) 83 throw new RuntimeException(e);84 85 86 87 3.3、开发service层(service层对web层提供所有的业务服务) 在me.gacl.service包中创建IUserService接口类IUserServ

15、ice接口的具体代码如下: 1 package me.gacl.service; 4 import me.gacl.exception.UserExistException; 5 6 public interface IUserService 7 8 /* 9 * 提供注册服务10 * param user11 * throws UserExistException13 void registerUser(User user) throws UserExistException;16 * 提供登录服务17 * param userName18 * param userPwd19 * retur

16、n20 */21 User loginUser(String userName, String userPwd);22 在me.gacl.service.impl包中创建UserServiceImpl类UserServiceImpl类为IUserService接口的具体实现类,具体代码如下: 1 package me.gacl.service.impl; 3 import me.gacl.dao.IUserDao; 4 import me.gacl.dao.impl.UserDaoImpl; 5 import me.gacl.domain.User; 6 import me.gacl.exce

17、ption.UserExistException; 7 import me.gacl.service.IUserService; 8 9 public class UserServiceImpl implements IUserService 11 private IUserDao userDao = new UserDaoImpl();13 Override14 public void registerUser(User user) throws UserExistException 15 if (userDao.find(user.getUserName()!=null) 16 /chec

18、ked exception 17 /unchecked exception18 /这里抛编译时异常的原因:是我想上一层程序处理这个异常,以给用户一个友好提示19 throw new UserExistException(注册的用户名已存在!20 21 userDao.add(user);24 Override25 public User loginUser(String userName, String userPwd) 26 return userDao.find(userName, userPwd);27 28 29 3.4、开发web层3.4.1、 开发注册功能 1、在me.gacl.w

19、eb.UI包下写一个RegisterUIServlet为用户提供注册界面RegisterUIServlet收到用户请求后,就跳到register.jspRegisterUIServlet的代码如下: 1 package me.gacl.web.UI; 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax

20、.servlet.http.HttpServletResponse; 9 * author gacl10 * 为用户提供注册的用户界面的Servlet11 * RegisterUIServlet负责为用户输出注册界面12 * 当用户访问RegisterUIServlet时,就跳转到WEB-INF/pages目录下的register.jsp页面14 public class RegisterUIServlet extends HttpServlet 16 public void doGet(HttpServletRequest request, HttpServletResponse respo

21、nse)17 throws ServletException, IOException 18 request.getRequestDispatcher(/WEB-INF/pages/register.jsp).forward(request, response);19 21 public void doPost(HttpServletRequest request, HttpServletResponse response)22 throws ServletException, IOException 23 doGet(request, response);25 2、在/WEB-INF/pag

22、es/目录下编写用户注册的jsp页面register.jsp凡是位于WEB-INF目录下的jsp页面是无法直接通过URL地址直接访问的,在开发中如果项目中有一些敏感web资源不想被外界直接访问,那么可以考虑将这些敏感的web资源放到WEB-INF目录下,这样就可以禁止外界直接通过URL来访问了。register.jsp页面的代码如下: 1 2 3 4 5 用户注册 6 8 9 form action=$pageContext.request.contextPath/servlet/RegisterServlet method=post10 table width=60% border=111 12 用户名13 15 input type=text name=16 17 1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2