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

上传人:b****3 文档编号:8123152 上传时间:2023-05-10 格式:DOCX 页数:33 大小:27.43KB
下载 相关 举报
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第1页
第1页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第2页
第2页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第3页
第3页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第4页
第4页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第5页
第5页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第6页
第6页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第7页
第7页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第8页
第8页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第9页
第9页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第10页
第10页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第11页
第11页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第12页
第12页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第13页
第13页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第14页
第14页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第15页
第15页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第16页
第16页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第17页
第17页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第18页
第18页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第19页
第19页 / 共33页
基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Servlet+JSP+JavaBean开发模式的用户登录注册Word文件下载.docx(33页珍藏版)》请在冰点文库上搜索。

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

  

  User类具体代码如下:

复制代码

1packageme.gacl.domain;

2

3importjava.io.Serializable;

4importjava.util.Date;

5/**

6*@authorgacl

7*用户实体类

8*/

9publicclassUserimplementsSerializable{

10

11privatestaticfinallongserialVersionUID=-4313782718477229465L;

12

13//用户ID

14privateStringid;

15//用户名

16privateStringuserName;

17//用户密码

18privateStringuserPwd;

19//用户邮箱

20privateStringemail;

21//用户生日

22privateDatebirthday;

23

24publicStringgetId(){

25returnid;

26}

27

28publicvoidsetId(Stringid){

29this.id=id;

30}

31

32publicStringgetUserName(){

33returnuserName;

34}

35

36publicvoidsetUserName(StringuserName){

37this.userName=userName;

38}

39

40publicStringgetUserPwd(){

41returnuserPwd;

42}

43

44publicvoidsetUserPwd(StringuserPwd){

45this.userPwd=userPwd;

46}

47

48publicStringgetEmail(){

49returnemail;

50}

51

52publicvoidsetEmail(Stringemail){

53this.email=email;

54}

55

56publicDategetBirthday(){

57returnbirthday;

58}

59

60publicvoidsetBirthday(Datebirthday){

61this.birthday=birthday;

62}

63}

3.2、开发数据访问层(dao、dao.impl)

  在me.gacl.dao包下创建一个IUserDao接口类,对于开发接口类,我习惯以字母I作类的前缀,这样一眼就看出当前这个类是一个接口,这也算是一种良好的开发习惯吧,通过看类名就可以方便区分出是接口还是具体的实现类。

  IUserDao接口的具体代码如下:

1packageme.gacl.dao;

3importme.gacl.domain.User;

4

5publicinterfaceIUserDao{

6

7/**

8*根据用户名和密码来查找用户

9*@paramuserName

10*@paramuserPwd

11*@return查到到的用户

12*/

13Userfind(StringuserName,StringuserPwd);

14

15/**

16*添加用户

17*@paramuser

18*/

19voidadd(Useruser);

20

21/**根据用户名来查找用户

22*@paramuserName

23*@return查到到的用户

24*/

25Userfind(StringuserName);

  对于接口中的方法定义,这个只能是根据具体的业务来分析需要定义哪些方法了,但是无论是多么复杂的业务,都离不开基本的CRUD(增删改查)操作,Dao层是直接和数据库交互的,所以Dao层的接口一般都会有增删改查这四种操作的相关方法。

  在me.gacl.dao.impl包下创建一个UserDaoImpl类

  UserDaoImpl类是IUserDao接口的具体实现类,对于接口的实现类命名方式,我习惯以"

接口名(去除前缀I)+impl"

形式或者"

接口名+impl"

形式来命名:

IUserDao(接口)→UserDaoImpl(实现类)或者IUserDao(接口)→IUserDaoImpl(实现类),这也算是一些个人的编程习惯吧,平时看到的代码大多数都是以这两种形式中的一种来来命名接口的具体实现类的,反正就是要能够一眼看出接口对应的实现类是哪一个就可以了。

  UserDaoImpl类的具体代码如下:

1packageme.gacl.dao.impl;

3importjava.text.SimpleDateFormat;

4importorg.dom4j.Document;

5importorg.dom4j.Element;

6importme.gacl.dao.IUserDao;

7importme.gacl.domain.User;

8importme.gacl.util.XmlUtils;

9

10/**

11*IUserDao接口的实现类

12*@authorgacl

13*/

14publicclassUserDaoImplimplementsIUserDao{

15

16@Override

17publicUserfind(StringuserName,StringuserPwd){

18try{

19Documentdocument=XmlUtils.getDocument();

20//使用XPath表达式来操作XML节点

21Elemente=(Element)document.selectSingleNode("

//user[@userName='

"

+userName+"

'

and@userPwd='

+userPwd+"

]"

);

22if(e==null){

23returnnull;

24}

25Useruser=newUser();

26user.setId(e.attributeValue("

id"

));

27user.setEmail(e.attributeValue("

email"

28user.setUserPwd(e.attributeValue("

userPwd"

29user.setUserName(e.attributeValue("

userName"

30Stringbirth=e.attributeValue("

birthday"

31SimpleDateFormatsdf=newSimpleDateFormat("

yyyy-MM-dd"

32user.setBirthday(sdf.parse(birth));

33

34returnuser;

36}catch(Exceptione){

37thrownewRuntimeException(e);

39}

40

41@SuppressWarnings("

deprecation"

42@Override

43publicvoidadd(Useruser){

44try{

45Documentdocument=XmlUtils.getDocument();

46Elementroot=document.getRootElement();

47Elementuser_node=root.addElement("

user"

//创建user结点,并挂到root

48user_node.setAttributeValue("

user.getId());

49user_node.setAttributeValue("

user.getUserName());

50user_node.setAttributeValue("

user.getUserPwd());

51user_node.setAttributeValue("

user.getEmail());

52

53SimpleDateFormatsdf=newSimpleDateFormat("

54user_node.setAttributeValue("

sdf.format(user.getBirthday()));

56XmlUtils.write2Xml(document);

57

58}catch(Exceptione){

59thrownewRuntimeException(e);

60}

61}

62

63@Override

64publicUserfind(StringuserName){

65try{

66Documentdocument=XmlUtils.getDocument();

67Elemente=(Element)document.selectSingleNode("

68if(e==null){

69returnnull;

70}

71Useruser=newUser();

72user.setId(e.attributeValue("

73user.setEmail(e.attributeValue("

74user.setUserPwd(e.attributeValue("

75user.setUserName(e.attributeValue("

76Stringbirth=e.attributeValue("

77SimpleDateFormatsdf=newSimpleDateFormat("

78user.setBirthday(sdf.parse(birth));

79

80returnuser;

81

82}catch(Exceptione){

83thrownewRuntimeException(e);

84}

85}

86

87}

3.3、开发service层(service层对web层提供所有的业务服务)

  在me.gacl.service包中创建IUserService接口类

  IUserService接口的具体代码如下:

1packageme.gacl.service;

4importme.gacl.exception.UserExistException;

5

6publicinterfaceIUserService{

7

8/**

9*提供注册服务

10*@paramuser

11*@throwsUserExistException

13voidregisterUser(Useruser)throwsUserExistException;

16*提供登录服务

17*@paramuserName

18*@paramuserPwd

19*@return

20*/

21UserloginUser(StringuserName,StringuserPwd);

22}

  在me.gacl.service.impl包中创建UserServiceImpl类

  UserServiceImpl类为IUserService接口的具体实现类,具体代码如下:

1packageme.gacl.service.impl;

3importme.gacl.dao.IUserDao;

4importme.gacl.dao.impl.UserDaoImpl;

5importme.gacl.domain.User;

6importme.gacl.exception.UserExistException;

7importme.gacl.service.IUserService;

8

9publicclassUserServiceImplimplementsIUserService{

11privateIUserDaouserDao=newUserDaoImpl();

13@Override

14publicvoidregisterUser(Useruser)throwsUserExistException{

15if(userDao.find(user.getUserName())!

=null){

16//checkedexception

17//uncheckedexception

18//这里抛编译时异常的原因:

是我想上一层程序处理这个异常,以给用户一个友好提示

19thrownewUserExistException("

注册的用户名已存在!

20}

21userDao.add(user);

24@Override

25publicUserloginUser(StringuserName,StringuserPwd){

26returnuserDao.find(userName,userPwd);

27}

28

29}

3.4、开发web层

3.4.1、开发注册功能

   1、在me.gacl.web.UI包下写一个RegisterUIServlet为用户提供注册界面

    

  RegisterUIServlet收到用户请求后,就跳到register.jsp

  RegisterUIServlet的代码如下:

1packageme.gacl.web.UI;

3importjava.io.IOException;

4importjavax.servlet.ServletException;

5importjavax.servlet.http.HttpServlet;

6importjavax.servlet.http.HttpServletRequest;

7importjavax.servlet.http.HttpServletResponse;

9*@authorgacl

10*为用户提供注册的用户界面的Servlet

11*RegisterUIServlet负责为用户输出注册界面

12*当用户访问RegisterUIServlet时,就跳转到WEB-INF/pages目录下的register.jsp页面

14publicclassRegisterUIServletextendsHttpServlet{

16publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

17throwsServletException,IOException{

18request.getRequestDispatcher("

/WEB-INF/pages/register.jsp"

).forward(request,response);

19}

21publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

22throwsServletException,IOException{

23doGet(request,response);

25

2、在/WEB-INF/pages/目录下编写用户注册的jsp页面register.jsp

    凡是位于WEB-INF目录下的jsp页面是无法直接通过URL地址直接访问的,

    在开发中如果项目中有一些敏感web资源不想被外界直接访问,那么可以考虑将这些敏感的web资源放到WEB-INF目录下,这样就可以禁止外界直接通过URL来访问了。

  register.jsp页面的代码如下:

1<

%@pagelanguage="

java"

pageEncoding="

UTF-8"

%>

2<

!

DOCTYPEHTML>

3<

html>

4<

head>

5<

title>

用户注册<

/title>

6<

/head>

8<

bodystyle="

text-align:

center;

>

9<

formaction="

${pageContext.request.contextPath}/servlet/RegisterServlet"

method="

post"

10<

tablewidth="

60%"

border="

1"

11<

tr>

12<

td>

用户名<

/td>

13<

15<

inputtype="

text"

name="

16<

17<

/tr>

1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

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

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