文档库 最新最全的文档下载
当前位置:文档库 › servlet+JSP实现用户登录功能

servlet+JSP实现用户登录功能

servlet+JSP实现用户登录功能
servlet+JSP实现用户登录功能

servlet+JSP实现用户登录功能

一、Servlet+JSP+JavaBean开发模式(MVC)介绍

Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。

这里以一个最常用的用户登录注册程序来讲解Servlet+JSP+JavaBean开发模式,通过这个用户登录注册程序综合案例,把之前的学过的XML、Xpath、Servlet、jsp的知识点都串联起来。

二、创建MVC架构的Web项目

在MyEclipse中新创建一个webmvcframework项目,导入项目所需要的开发包(jar包),创建项目所需要的包,在java 开发中,架构的层次是以包的形式体现出来的

一个良好的JavaWeb项目架构应该具有以上的11个包,这样显得层次分明,各个层之间的职责也很清晰明了,搭建JavaWeb项目架构时,就按照上面的1~11的序号顺序创建包:domain→dao→dao.impl→service→service.impl→web.controller→web.UI→web.filter→web.listener→util→junit.test,包的层次创建好了,项目的架构也就定下来了,当然,在实际的项目开发中,也不一定是完完全全按照上面说的来创建包的层次结构,而是根据项目的实际情况,可能还需要创建其他的包,这个得根据项目的需要来定了

在src目录(类目录)下面,创建用于保存用户数据的xml文件(DB.xml)

在WEB-INF目录下创建一个pages目录,pages目录存放系统的一些受保护(不允许用户直接通过URL地址访问)的jsp 页面,用户要想访问这些受保护的jsp页面,那么只能通过me.gacl.web.UI这个包里面的Servlet

创建好的项目如下图(图-1)所示:

图-1

三、分层架构的代码编写

分层架构的代码也是按照【域模型层(domain)】→【数据访问层(dao、dao.impl)】→【业务处理层(service、service.impl)】→【表现层(web.controller、web.UI、web.filter、web.listener)】→【工具类(util)】→【测试类(junit.test)】的顺序进行编写的。

3.1、开发domain层

在me.gacl.domain包下创建一个User类

User类具体代码如下:

1 package me.gacl.domain;

2

3 import java.io.Serializable;

4 import java.util.Date;

5/**

6* @author gacl

7* 用户实体类

8*/

9public class User implements Serializable {

10

11private static final long serialVersionUID = -4313782718477229465L;

12

13// 用户ID

14private String id;

15// 用户名

16private String userName;

17// 用户密码

18private String userPwd;

19// 用户邮箱

20private String email;

21// 用户生日

22private Date birthday;

23

24public String getId() {

25return id;

26}

27

28public void setId(String id) {

29this.id = id;

30}

31

32public String getUserName() {

33return userName;

34}

35

36public void setUserName(String userName) {

https://www.wendangku.net/doc/2e12486918.html,erName = userName;

38}

39

40public String getUserPwd() {

41return userPwd;

42}

43

44public void setUserPwd(String userPwd) {

https://www.wendangku.net/doc/2e12486918.html,erPwd = userPwd;

46}

47

48public String getEmail() {

49return email;

50}

51

52public void setEmail(String email) {

53this.email = email;

54}

55

56public Date getBirthday() {

57return birthday;

58}

59

60public void setBirthday(Date birthday) {

61this.birthday = birthday;

62}

63 }

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

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

IUserDao接口的具体代码如下:

1package me.gacl.dao;

2

3import https://www.wendangku.net/doc/2e12486918.html,er;

4

5public interface IUserDao {

6

7/**

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

9* @param userName

10* @param userPwd

11* @return查到到的用户

12*/

13User find(String userName, String userPwd);

14

15/**

16* 添加用户

17* @param user

18*/

19void add(User user);

20

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

22* @param userName

23* @return查到到的用户

24*/

25User find(String userName);

26 }

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

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

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

UserDaoImpl类的具体代码如下:

1package me.gacl.dao.impl;

2

3import java.text.SimpleDateFormat;

4import org.dom4j.Document;

5import org.dom4j.Element;

6import me.gacl.dao.IUserDao;

7import https://www.wendangku.net/doc/2e12486918.html,er;

8import me.gacl.util.XmlUtils;

9

10/**

11* IUserDao接口的实现类

12* @author gacl

13*/

14public class UserDaoImpl implements IUserDao {

15

16@Override

17public User find(String userName, String userPwd) {

18try{

19Document document = XmlUtils.getDocument();

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

21Element e = (Element) document.selectSingleNode("//user[@userName='"+userName+"' and @userPwd='"+userPwd+"']");

22if(e==null){

23return null;

24}

25User user = new User();

26user.setId(e.attributeValue("id"));

27user.setEmail(e.attributeValue("email"));

28user.setUserPwd(e.attributeValue("userPwd"));

29user.setUserName(e.attributeValue("userName"));

30String birth = e.attributeValue("birthday");

31SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

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

33

34return user;

35

36}catch (Exception e) {

37throw new RuntimeException(e);

38}

39}

40

41@SuppressWarnings("deprecation")

42@Override

43public void add(User user) {

44try{

45Document document = XmlUtils.getDocument();

46Element root = document.getRootElement();

47Element user_node = root.addElement("user"); //创建user结点,并挂到root

48user_node.setAttributeValue("id", user.getId());

49user_node.setAttributeValue("userName", user.getUserName());

50user_node.setAttributeValue("userPwd", user.getUserPwd());

51user_node.setAttributeValue("email", user.getEmail());

52

53SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

54user_node.setAttributeValue("birthday", sdf.format(user.getBirthday()));

55

56XmlUtils.write2Xml(document);

57

58}catch (Exception e) {

59throw new RuntimeException(e);

60}

61}

62

63@Override

64public User find(String userName) {

65try{

66Document document = XmlUtils.getDocument();

67Element e = (Element) document.selectSingleNode("//user[@userName='"+userName+"']"); 68if(e==null){

69return null;

70}

71User user = new User();

72user.setId(e.attributeValue("id"));

73user.setEmail(e.attributeValue("email"));

74user.setUserPwd(e.attributeValue("userPwd"));

75user.setUserName(e.attributeValue("userName"));

76String birth = e.attributeValue("birthday");

77SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 78user.setBirthday(sdf.parse(birth));

79

80return user;

81

82}catch (Exception e) {

83throw new RuntimeException(e);

84}

85}

86

87 }

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

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

IUserService接口的具体代码如下:

1package me.gacl.service;

2

3import https://www.wendangku.net/doc/2e12486918.html,er;

4import https://www.wendangku.net/doc/2e12486918.html,erExistException;

5

6public interface IUserService {

7

8/**

9* 提供注册服务

10* @param user

11* @throws UserExistException

12*/

13void registerUser(User user) throws UserExistException;

14

15/**

16* 提供登录服务

17* @param userName

18* @param userPwd

19* @return

20*/

21User loginUser(String userName, String userPwd);

22 }

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

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

1package me.gacl.service.impl;

2

3import me.gacl.dao.IUserDao;

4import https://www.wendangku.net/doc/2e12486918.html,erDaoImpl;

5import https://www.wendangku.net/doc/2e12486918.html,er;

6import https://www.wendangku.net/doc/2e12486918.html,erExistException;

7import me.gacl.service.IUserService;

8

9public class UserServiceImpl implements IUserService {

10

11private IUserDao userDao = new UserDaoImpl();

12

13@Override

14public void registerUser(User user) throws UserExistException {

15if (userDao.find(user.getUserName())!=null) {

16//checked exception

17//unchecked exception

18//这里抛编译时异常的原因:是我想上一层程序处理这个异常,以给用户一个友好提示19throw new UserExistException("注册的用户名已存在!!!");

20}

21userDao.add(user);

22}

23

24@Override

25public User loginUser(String userName, String userPwd) {

26return userDao.find(userName, userPwd);

27}

28

3.4、开发web层

3.4.1、开发注册功能

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

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

RegisterUIServlet的代码如下:

1package me.gacl.web.UI;

2

3import java.io.IOException;

4import javax.servlet.ServletException;

5import javax.servlet.http.HttpServlet;

6import javax.servlet.http.HttpServletRequest;

7import javax.servlet.http.HttpServletResponse;

8/**

9* @author gacl

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

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

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

13*/

14public class RegisterUIServlet extends HttpServlet {

15

16public void doGet(HttpServletRequest request, HttpServletResponse response)

17throws ServletException, IOException {

18request.getRequestDispatcher("/WEB-INF/pages/register.jsp").forward(request, response); 19}

20

21public void doPost(HttpServletRequest request, HttpServletResponse response)

22throws ServletException, IOException {

23doGet(request, response);

24}

26 }

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

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

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

register.jsp页面的代码如下:

1 <%@ page language="java" pageEncoding="UTF-8"%>

2

3

4

5用户注册

6

7

8

9

10

11

12

13

17

18

19

20

23

24

25

26

29

30

31

32

35

36

37

38

41

42

43

46

49

50

用户名

14

15

16

密码

21

22

确认密码

27

28

邮箱

33

34

生日

39

40

44

45

47

48

51

52

53

register.jsp中的

指明表单提交后,交给RegisterServlet进行处理

3、在me.gacl.web.controller包下编写用于处理用户注册的RegisterServlet

RegisterServlet担任着以下几个职责:

1、接收客户端提交到服务端的表单数据。

2、校验表单数据的合法性,如果校验失败跳回到register.jsp,并回显错误信息。

3、如果校验通过,调用service层向数据库中注册用户。

为了方便RegisterServlet接收表单数据和校验表单数据,在此我设计一个用于校验注册表单数据RegisterFormbean,再写WebUtils工具类,封装客户端提交的表单数据到formbean中。

在me.gacl.web.formbean包下创建一个用于校验注册表单数据RegisterFormbean

RegisterFormbean代码如下:

1package me.gacl.web.formbean;

2

3import java.util.HashMap;

4import java.util.Map;

5

6import https://www.wendangku.net/doc/2e12486918.html,mons.beanutils.locale.converters.DateLocaleConverter;

7

8/**

9* 封装的用户注册表单bean,用来接收register.jsp中的表单输入项的值

10* RegisterFormBean中的属性与register.jsp中的表单输入项的name一一对应

11* RegisterFormBean的职责除了负责接收register.jsp中的表单输入项的值之外还担任着校验表单输入项的值的合法性

12* @author gacl

13*

14*/

15public class RegisterFormBean {

16

17//RegisterFormBean中的属性与register.jsp中的表单输入项的name一一对应

18//

19private String userName;

20//

21private String userPwd;

22//

23private String confirmPwd;

24//

25private String email;

26//

27private String birthday;

28

29

30/**

31* 存储校验不通过时给用户的错误提示信息

32*/

33private Map errors = new HashMap();

34

35public Map getErrors() {

36return errors;

37}

38

39public void setErrors(Map errors) {

40this.errors = errors;

41}

42

43/*

44* validate方法负责校验表单输入项

45* 表单输入项校验规则:

46* private String userName; 用户名不能为空,并且要是3-8的字母abcdABcd

47* private String userPwd; 密码不能为空,并且要是3-8的数字

48* private String confirmPwd; 两次密码要一致

49* private String email; 可以为空,不为空要是一个合法的邮箱

50* private String birthday; 可以为空,不为空时,要是一个合法的日期51*/

52public boolean validate() {

53

54boolean isOk = true;

55

56if (https://www.wendangku.net/doc/2e12486918.html,erName == null || https://www.wendangku.net/doc/2e12486918.html,erName.trim().equals("")) {

57isOk = false;

58errors.put("userName", "用户名不能为空!!");

59} else {

60if (!https://www.wendangku.net/doc/2e12486918.html,erName.matches("[a-zA-Z]{3,8}")) {

61isOk = false;

62errors.put("userName", "用户名必须是3-8位的字母!!"); 63}

64}

65

66if (https://www.wendangku.net/doc/2e12486918.html,erPwd == null || https://www.wendangku.net/doc/2e12486918.html,erPwd.trim().equals("")) {

67isOk = false;

68errors.put("userPwd", "密码不能为空!!");

69} else {

70if (!https://www.wendangku.net/doc/2e12486918.html,erPwd.matches("\\d{3,8}")) {

71isOk = false;

72errors.put("userPwd", "密码必须是3-8位的数字!!");

73}

74}

75

76// private String password2; 两次密码要一致

77if (this.confirmPwd != null) {

78if (!this.confirmPwd.equals(https://www.wendangku.net/doc/2e12486918.html,erPwd)) {

79isOk = false;

80errors.put("confirmPwd", "两次密码不一致!!");

81}

82}

83

84// private String email; 可以为空,不为空要是一个合法的邮箱

85if (this.email != null && !this.email.trim().equals("")) {

86if (!this.email.matches("\\w+@\\w+(\\.\\w+)+")) {

87isOk = false;

88errors.put("email", "邮箱不是一个合法邮箱!!");

89}

90}

91

92// private String birthday; 可以为空,不为空时,要是一个合法的日期93if (this.birthday != null && !this.birthday.trim().equals("")) {

94try {

95DateLocaleConverter conver = new DateLocaleConverter(); 96conver.convert(this.birthday);

97} catch (Exception e) {

98isOk = false;

99errors.put("birthday", "生日必须要是一个日期!!");

100}

101}

102

103return isOk;

104}

105

106public String getUserName() {

107return userName;

108}

109

110public void setUserName(String userName) {

https://www.wendangku.net/doc/2e12486918.html,erName = userName;

112}

113

114public String getUserPwd() {

115return userPwd;

116}

117

118public void setUserPwd(String userPwd) {

https://www.wendangku.net/doc/2e12486918.html,erPwd = userPwd;

120}

121

122public String getConfirmPwd() {

123return confirmPwd;

124}

125

126public void setConfirmPwd(String confirmPwd) {

127this.confirmPwd = confirmPwd;

128}

129

130public String getEmail() {

131return email;

132}

133

134public void setEmail(String email) {

135this.email = email;

136}

137

138public String getBirthday() {

139return birthday;

140}

141

142public void setBirthday(String birthday) {

143this.birthday = birthday;

144}

145 }

在me.gacl.util包下创建一个WebUtils工具类,该工具类的功能就是封装客户端提交的表单数据到formbean中

1package me.gacl.util;

2

3import java.util.Enumeration;

4import java.util.UUID;

5import javax.servlet.http.HttpServletRequest;

6import https://www.wendangku.net/doc/2e12486918.html,mons.beanutils.BeanUtils;

7

8/**

9* @author gacl

10* 把request对象中的请求参数封装到bean中

11*/

12public class WebUtils {

13

14/**

15* 将request对象转换成T对象

16* @param request

17* @param clazz

18* @return

19*/

20public static T request2Bean(HttpServletRequest request,Class clazz){

21try{

22T bean = clazz.newInstance();

23Enumeration e = request.getParameterNames();

24while(e.hasMoreElements()){

25String name = (String) e.nextElement();

26String value = request.getParameter(name);

27BeanUtils.setProperty(bean, name, value);

28}

29return bean;

30}catch (Exception e) {

31throw new RuntimeException(e);

32}

33}

34

35/**

36* 生成UUID

37* @return

38*/

39public static String makeId(){

40return UUID.randomUUID().toString();

41}

42

43 }

最后看一下负责处理用户注册的RegisterServlet完整代码:

1package me.gacl.web.controller;

2

3import java.io.IOException;

4import java.util.Date;

5import javax.servlet.ServletException;

6import javax.servlet.http.HttpServlet;

7import javax.servlet.http.HttpServletRequest;

8import javax.servlet.http.HttpServletResponse;

9import https://www.wendangku.net/doc/2e12486918.html,mons.beanutils.BeanUtils;

10import https://www.wendangku.net/doc/2e12486918.html,mons.beanutils.ConvertUtils;

11import https://www.wendangku.net/doc/2e12486918.html,mons.beanutils.locale.converters.DateLocaleConverter; 12import https://www.wendangku.net/doc/2e12486918.html,er;

13import https://www.wendangku.net/doc/2e12486918.html,erExistException;

14import me.gacl.service.IUserService;

15import https://www.wendangku.net/doc/2e12486918.html,erServiceImpl;

16import me.gacl.util.WebUtils;

17import me.gacl.web.formbean.RegisterFormBean;

18/**

19* 处理用户注册的Servlet

20* @author gacl

21*

22*/

23public class RegisterServlet extends HttpServlet {

24

25public void doGet(HttpServletRequest request, HttpServletResponse response)

26throws ServletException, IOException {

27//将客户端提交的表单数据封装到RegisterFormBean对象中

28RegisterFormBean formbean = WebUtils.request2Bean(request,RegisterFormBean.class);

29//校验用户注册填写的表单数据

30if (formbean.validate() == false) {//如果校验失败

31//将封装了用户填写的表单数据的formbean对象发送回register.jsp页面的form表单中进行显示32request.setAttribute("formbean", formbean);

33//校验失败就说明是用户填写的表单数据有问题,那么就跳转回register.jsp

34request.getRequestDispatcher("/WEB-INF/pages/register.jsp").forward(request, response); 35return;

36}

37

38User user = new User();

39try {

40// 注册字符串到日期的转换器

41ConvertUtils.register(new DateLocaleConverter(), Date.class);

42BeanUtils.copyProperties(user, formbean);//把表单的数据填充到javabean中

43user.setId(WebUtils.makeId());//设置用户的Id属性

44IUserService service = new UserServiceImpl();

45//调用service层提供的注册用户服务实现用户注册

46service.registerUser(user);

47String message = String.format(

48"注册成功!!3秒后为您自动跳到登录页面!!

content='3;url=%s'/>",

49request.getContextPath()+"/servlet/LoginUIServlet");

50request.setAttribute("message",message);

51request.getRequestDispatcher("/message.jsp").forward(request,response);

52

53} catch (UserExistException e) {

54formbean.getErrors().put("userName", "注册用户已存在!!");

55request.setAttribute("formbean", formbean);

56request.getRequestDispatcher("/WEB-INF/pages/register.jsp").forward(request, response);

57} catch (Exception e) {

58 e.printStackTrace(); // 在后台记录异常

59request.setAttribute("message", "对不起,注册失败!!");

60request.getRequestDispatcher("/message.jsp").forward(request,response);

61}

62}

63

64public void doPost(HttpServletRequest request, HttpServletResponse response)

65throws ServletException, IOException {

66doGet(request, response);

67}

68

69 }

用户注册时如果填写的表单数据校验不通过,那么服务器端就将一个存储了错误提示消息和表单数据的formbean对象存储到request对象中,然后发送回register.jsp页面,因此我们需要在register.jsp页面中取出request对象中formbean 对象,然后将用户填写的表单数据重新回显到对应的表单项上面,将出错时的提示消息也显示到form表单上面,让用户知道是哪些数据填写不合法!

修改register.jsp页面,代码如下:

1 <%@ page language="java" pageEncoding="UTF-8"%>

2

3

4

5用户注册

6

7

8

9

10

11

12

13

JSP JavaBean Servlet实现用户登录和注册

JSP JavaBean Servlet实现用户登录和注册 1 数据库: create database student; use student; create table user( id int primary key auto_increment, user varchar(50) not null, pwd varchar(50) not null, name varchar(50) not null, *** varchar(50) not null, age int(50) not null ); 2 index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/"; %> 欢迎来到学生管理系统

用户登录
用户名

14<%--使用EL表达式${}提取存储在request对象中的formbean对象中封装的表单数据(https://www.wendangku.net/doc/2e12486918.html,erName)以及错误提示消息(https://www.wendangku.net/doc/2e12486918.html,erName)--%>

15

value="${https://www.wendangku.net/doc/2e12486918.html,erName}">${https://www.wendangku.net/doc/2e12486918.html,erName}

16

APP注册登录功能设计全方位解析

注册登录功能设计全方位解析 用户注册功能对于一个的重要性毋庸置疑,然而注册功能又是公认的在设计中坑最多的功能,能够设计好注册功能是一个优秀项目经理的基本功。 那么,在设计注册功能过程中,你有没有纠结于这些问题呢: 1.邮箱注册、手机号注册、第三方账户注册,这么多方式应该选择哪种? 2.是应该先让用户注册还是先让用户使用?先让用户使用的话,应该在怎样的时机 注册? 3.怎样的注册流程用户体验最好? 4.一些细节问题:要不要加图片验证码?要不要让用户手动勾选用户协议?要不要 让用户设置头像?… … 这次我们来好好捋一捋注册登录设计过程中的遇到的那些问题吧。 注册登录功能的价值 首先我们来分析注册、登录功能的价值在哪里。换个角度说,为该产品设计注册登录功能的目的何在?对于每个产品来说,只有把握好产品的设计目标,才能找到适合该产品的设计思路。 我们从三个层面来分析: 用户层面

1.用户需要在产品中获得一个独立的,以体现其个性化的存在。 2.用户需要产品为其记录使用进度、状态、收藏的内容。 3.用户希望获得其它用户的真实信息或更详尽的信息。 4.用户希望产品通过对自己更详尽的了解提供更好的服务。比如大姨吗。 功能层面 1.便于跨设备同步数据,也便于在同一设备中切换不同的账户并保留账户之前的状 态。 2.有社交功能的产品必须注册账号以编写自己的的内容,同时便于其它用户辨识。 3.有交易功能的产品,为个人账户记录订单等交易信息,同时提高交易的安全性。 4.有应用内付费、会员增值功能的产品,注册登录可以确保用户权益。 业务层面 1.需要采集对于核心业务非常重要的用户信息,比如手机号、真实姓名等信息。 2.注册登录后便于采集推进运营的数据,以指导产品运营方向。 3.用户激励:通过注册得到手机号、邮箱账户后,一些产品通过给用户发短信或优 惠券(送优惠券、活动推荐)吸引用户,提高活跃度。 4.消费转化:某些产品得到手机号后,会利用电话营销的方式向客户推介其付费服 务。比如。 综上,在设计功能之前,产品经理应该弄清楚你的产品目标属于以上哪些,注册账户功能的重要性怎样,哪些核心功能与其相关联。 注册登录方式的分类

JAVA洗衣机仿真程序实验报告及代码

一.实验题目:用java编写洗衣机仿真程序 二.实验目的: 1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程. 2.学会软件工程设计中的一系列分析研究,对需求分析,可行性研究,软件 模型等有一定的了解,为以后的软件设计工作打下良好的基础。 3.通过的洗衣机仿真系统的编写与学习,加深了对Java这门语言的了解, 对其中的类的设计,类之间的关系,界面的设计(按钮及布局的设计)有了更深的了解与体会,为Java的学习做好准备工作。 三.实验要求: 了解全自动洗衣机的简单工作过程及实现。其中包括,洗衣的方式(标准或是柔和)、洗衣中的水位选择(高水位洗衣、低水位洗衣等)等方面需要在人们将衣服放入洗衣机洗衣服之后手动来选择;并且是必须选择的洗衣参数。当选择了一种洗衣参数后,按下启动按钮,洗衣机就会自动完成洗衣服的整个过程。在满足基本功能以外,还需要尽量考虑外观、造型、节水等方面的设计,符合人机界面的基本要求。 四.实验分析: 1.洗衣机需求分析: 标准清洗:浸泡/清洗/甩干 快速清洗:清洗/甩干 大件衣物(冬衣,牛仔类):浸泡(温水,延长浸泡/清洗(延长筒转时间)/甩干床单,窗帘类:浸泡(温水)/清洗 根据衣物的不同用按钮选择上述洗衣模式即可.其中甩干可选可不选. 尽量设计了一个节水功能,可以实现水回收.在无需甩干时水不流走,余下的水可做其他用途,实现节水. 2.主要的类实现 (1).继承类 (2).包括进水,排水,洗涤,漂洗,甩干等成员函数 (3).水位的选择通过参数传递决定进水函数 (4).其余通过调用筒的转动函数(run)并通过一定的参数控制实现

3.程序设计步骤 ≡≥选择水温 ≡≥放入衣物 ≡≥选择洗衣模式 ≡≥脱水 ≡≥排水 ≡≥烘干 ≡≥关闭 五.设计与实现过程: 1.洗衣机类的部分实现: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Washing extends JApplet{ private JFrame jf; private JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String[] args){ Washing flowTest=new Washing(); flowTest.setSize(270,160); flowTest.go(); //flowTest.show(true); } public void go(){ jf=new JFrame("洗衣机功能模拟器"); Container cp=jf.getContentPane(); cp.setLayout(null); jb1=new JButton("入水"); jb2=new JButton("加衣"); jb3=new JButton("脱水"); jb4=new JButton("排水"); jb5=new JButton("烘干"); jb6=new JButton("关闭"); // Container cp=jf.getContentPane(); // cp.setLayout(new BorderLayout()); jb1.setBounds(10, 10, 80, 80); cp.add(jb1); //指定组件追加到这个容器的末尾。这是一个方便的方法为addImpl。 //注意:如果一个组件已被添加到一个已显示的容器,验证必须在该容器调用,以显示新的组件。如果正在添加多个组件,你可以通过调用验证只有一次,已添加的所有组件后提高效率。 jb2.setBounds(110, 10, 80, 80); cp.add(jb2);

实训四__设计用户系统的注册及登录

实训四设计用户系统的注册及登录 一、实训目的 1.能正确设计用户注册程序。 2.能正确设计用户登录程序。 3.能正确设计用户的管理程序。 二、工作任务 任务1:将静态注册页面转换成动态ASP文件页面,设置表单对象。 任务2:为网页设置引用文件。 任务3:为注册页面编程,实现对填写的注册信息进行判断的功能,并将注册信息写入数据库。 任务4:为登录页面编程,实现登录功能,并出现欢迎用户登录的界面。 三、实训步骤 (一)编程实现用户注册功能 首先创建注册界面 图1注册界面 任务1操作方法: 1)用dreamweaver打开前面我们所创建的动态网站,将项目三中所设计的静态注册页面reguser.html复制一份并改名为reguser.asp,其中注册部分页面如图2如所。

图2注册界面 3)选择标签,将其属性按图3修改,将表单名称命名为fom1,动作右侧的文本框中输入reguser.asp?act=reg,其含义为此表单提交到本页处理,并附加参数act=reg,此参数含义为表单填写完成后提交表单进行注册的参数传递,方法右侧的列表中选择post,其它方面可以忽略。 图3表单属性 4)依照表1修改各个表单元素的名称,以方便程序的编写。 表1注册表单中各表单元素的名称 文本名称表单元素名称文本名称表单元素名称 用户名f_user固定电话f_tel1f_tel2 密码f_code手机号码f_mtel 姓名f_name其他联系f_contact 性别f_sex提交submit 详细地址f_addr 重置reset 设计思想: 当用户输入注册信息时,如果用户名或密码没有填写时系统出现提示信息“用户名或密码不能为空!”,并将重新注册; 如果用户名在数据库中已经存在通过判断语句系统会有弹出提示信息“用户名已经存在,请重新注册!”,本教材的其他信息并不要求必须输入,读者可以自己设计; 将用户信息写入到数据库的tbl_user表中保存,注册成功时会有弹出信息“注册成功!”,单击“确定”按钮将跳转到登录页面可供用户登录,如果注册失败弹出提示信息,并说明注册失败的原因。 任务2操作方法: 1)先创建一个数据库连接文件db.asp,代码: <% dim conn,dbpath set conn=Server.CreateObject("adodb.connection") DBPath = Server.MapPath("db/tygasp.mdb") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& DBPath %>

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

jsp实例:一个简单的用户登陆系统

三个文件如下: //登录界面 /** *//** * @(#)Login.Java * * * @author shiyi05 * @version 1.00 2008/5/10 */ package com.rao; import javax.Servlet.http.*; import java.io.*; public class Login extends HttpServlet { public Login() { } //处理Get请求 public void doGet(HttpServletRequest req,HttpServletResponse res) { try { //中文乱码 res.setContentType("text/html; charset=gbk");

PrintWriter pw=res.getWriter(); //返回登陆界面 pw.println(""); pw.println(""); pw.println("

登陆界面

"); pw.println(""); pw.println("用户名:
"); pw.println("密码:
"); pw.println("
"); pw.println(""); pw.println(""); } catch(Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest req,HttpServletResponse res) { this.doGet(req,res); } } //用户验证 /** *//** * @(#)LoginCl.java

Java实验报告及其源代码 Java基本程序设计

实验1 Java基本程序设计 一、实验目的 1.掌握设置Java 程序运行环境的方法; 2.了解Java 的数据类型; 3.掌握变量的声明方式; 4.理解运算符的优先级; 5.掌握Java 基本数据类型、运算符与表达式; 6.掌握Java基本输入输出方法。 二、实验环境 1.PC微机; 2.DOS操作系统或 Windows 操作系统; 3.Java sdk程序开发环境、eclipse集成环境。 三、实验内容 1.货币转换 在控制台下输入任意一个美元数值,将其转换成等价的人民币数值(假设100美元=636.99人民币)后在消息框中输出。 2.输出两个数的较大值 分别在两个对话框中输入两个任意的数值,显示其较大的数值。 四、实验步骤 1.新建Java项目,并创建package ; 2.创建两个java类文件,分别命名为 CurrencyConversion.java 和 valueCompare.java ; 3.在 CurrencyConversion.java 中写入代码: package FirstExperiment; import java.util.Scanner;

import javax.swing.JOptionPane; public class CurrencyConversion { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Please input the money(dollar): "); Scanner input = new Scanner(System.in); double moneyOfDollar = input.nextDouble(); double moneyOfRMB = moneyOfDollar * 6.3699 ; String output = "$" + moneyOfDollar + "=" + "¥" + moneyOfRMB ; JOptionPane.showMessageDialog(null, output); } } 4.在 valueCompare.java 中写入代码: package FirstExperiment; import javax.swing.JOptionPane; public class valueCompare { public static void main(String[] args) { String stringNumber1 = JOptionPane.showInputDialog("Please input the first number") ; double number1 = Double.parseDouble(stringNumber1) ; String stringNumber2 = JOptionPane.showInputDialog("Please input the second number") ; double number2 = Double.parseDouble(stringNumber2); if(number1 > number2) JOptionPane.showMessageDialog(null, number1 + " is bigger"); else

JavaWeb用户登录功能的实现

JavaWeb用户登录功能的实现 大四快毕业了,3年多的时间中,乱七八糟得学了一大堆,想趁找工作之前把所学的东西整理一遍,所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它。 我贴出此篇博客的目的是,将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以后万一用到的话再拿过来修修改改即可。 有可能用得到的部分:生成验证码的Java类、操作数据库的Java类 用户登录模块采用了多种语言: Html、css、query:页面 Servlet、java:后台 运行效果图: Login.html代码: 登录界面

登录
JQuery代码:login.js $(function(){ $(".loginform_submit").click(function(){ if(checkInput()) { $("form").action("/loginServlet"); }else{ return false;

用户注册、登录系统设计要点

用户注册、登录系统设计 采用的软件:Mysql+Tomcat6.0+Myeclipse 7.0 1.数据库的设计: 2.程序实现思路: 如果要完成用户登录,则一定要有一个表单页面,此页面可以输入登录用户名和密码,然后将这些信息提交到一个验证的jsp页面上进行数据库的操作验证,如果可以查询到用户名和密码,那么就表示此用户是合法用户,则可以跳转到登录成功页。如果没有查询到表示此用户是非法用户,应该跳转到错误页面提示。 3.用户注册页面:registerForm.jsp <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

跳转到的注册页面:register.jsp <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ page import="java.sql.*" %> <% request.setCharacterEncoding("gb2312");//设置接收编码格式 String requsername=request.getParameter("username");//接收参数username String reqpassword=request.getParameter("userpassword");//接收参数password %> <%

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。

二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.wendangku.net/doc/2e12486918.html,/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2

java实验报告(全)

学生学号0120910680526 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称软件工具与环境 开课学院计算机科学与技术学院 指导老师姓名付国江 学生姓名 学生专业班级软件工程0905 2011— 2012学年第1学期

实验课程名称: java语言程序设计 实验项目名称JDK安装与配置、简单的程序编写实验成绩 实验者专业班级软件0905 组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的: 熟悉JDK的安装、配置和使用,掌握Java Application程序的基本结构。 实验内容: (1)安装JDK,并练习设置JAVA_HOME、path和classpath环境变量; (2)编写一个打印出”HelloWorld”的Java Application程序,并编译运行; 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) (1)jdk的安装 (2)”HelloWorld”的编译运行 三、主要仪器设备及耗材 个人计算机,jdk 第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)jdk的安装步骤: 1:双击jdk-6u10-windows-i586.exe安装文件 2:点击接受 3:点击下一步 4:选择JRE路径 5:点击下一步 6:完成 配置环境变量: 1:右键我的电脑,找到属性,高级中的环境变量 2:点击环境变量:3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 4:在变量值末尾打上分号分隔,加入JDK库路径。 点击确定,完成! 5:变量配置好后。 6:测试环境是否好 在控制台中 输入javac指令,能显示参数,说明成功。

实验六用户注册功能的纯JSP 设计与实现

实验六用户注册功能的纯JSP 设计与实现 一、实验目的 掌握如何使用JSP 与form 表单交互获取用户注册信息; 掌握request 内建对象的使用; response 对象设置头信息刷新refresh。 二、实验环境 PC 系列微机,CPU1.2G 以上,内存256 以上,Windows XP,MyEclipse6.5。 三、实验步骤 1、在MyEclipse 中创建Web 项目jsp (1)设计用户注册页面register.html 和接收用户注册页面数据进行处理的页面 register_check.jsp。注意form 表单的中文乱码问题。这2 个页面显示格式如下:

(2)response 对象设置头信息刷新refresh 编写2 个JSP 页面,第一个responseRefresh.jsp 页面2 秒钟后跳转到第二个页面 useOut.jsp。 (3)编写3 个页面:redirect1.html,redirect2.jsp, redirect3.jsp,redirect1.html 中的请求参数 有userName,提交到redirect2.jsp 后再重定向到redirect3.jsp,在redirect3.jsp 中尝试取得 四、实验报告 1 提交用户注册页面register.html 和接收用户注册页面数 据进行处理的页面register_check.jsp 的代码。 <% String msg = "", uname = "", email = "", ulogo = ""; if (request.getParameter("msg") != null) { msg = request.getParameter("msg"); uname = request.getParameter("uname");

实验04 Java输入输出流报告

实验四 Java 输入输出流 1.实验目的 (1) 掌握输入输出流的总体结构; (2) 掌握流的概念; (3) 了解各种流(包括文件流、过滤流、对象的序列化、随机访问)的使用。2.实验内容 实验题1 编写一个Java Application程序,打印命令行输入的所有参数。 [基本要求] 编写完整程序。 运行结果: 代码如下: import java.util.Scanner; public class CommandOutPut { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Please input :"); Scanner in = new Scanner(System.in);

String str = in.nextLine(); System.out.println("The output results :"); System.out.println(str); in.close(); } } 实验题2 通过键盘输入路径,搜索指定路径下的全部内容。 运行结果: 代码如下: package https://www.wendangku.net/doc/2e12486918.html,.output; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Output { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String fileName = "d:\\xxx.txt"; File file = new File(fileName); byte[] b=new byte[(int)file.length()]; FileInputStream out=new FileInputStream(file);

使用JSP做了一个简单的登录框架

使用JSP做了一个简单的登录框架2008-05-05 11:47 功能分析:当用户提交表单时,在当前的页面判断用户的名称及密码是否正确,如果不正确则提示“登录失败”。如果正确则跳转到“欢迎界面”。 问题:防止用户未经登录而直接访问“欢迎界面”。 解决方法:在登录界面里设置session的属性值,在欢迎界面里判断session 的属性值不等于空。此时可以判断出用户是否是通过登录界面登录成功之后跳转到欢迎界面的! 共两个文档 login.jsp ; 登录界面,提供一个表单供用户输入,并判断是否正确 welcome.jsp : 欢迎界面,登录成功后显示信息,如果用户未经登录直接访问,则提示未登录,并自动跳转到登录界面! login.jsp 代码如下: <%@ page contentType="text/html;charset=gb2312"%>
用户名:
密  码:
<% //判断表单是否输入了内容

if(request.getParameter("uname")!=null && request.getParameter("upass")!=null){ //获取表单的内容 String name = request.getParameter("uname"); String password = request.getParameter("upass"); //判断输入的内容是否正确,此处使用字符串与变量进行比较,可以防止第一次运行时出现空指针错误 if("yk".equals(name)&&"123".equals(password)) { //设置Session的属性值,用于wellcome页面进行判断是否有属性 session.setAttribute("flag","ok"); //跳转到欢迎页面 response.sendRedirect("welcome.jsp"); }else { %>

登录失败!!!

<% } } %> welcome.jsp代码如下: <%@ page contentType="text/html;charset=gb2312"%> <% //判断属性是否为空,防止用户从另外的窗口中未经登录成功便打开此页面而出现登录成功的信息 if(session.getAttribute("flag")!=null) { %>

登录成功!

<% }else { //自动跳转到登录界面 response.setHeader("refresh","2;URL=login.jsp"); %>

您还没有登录,2秒后跳到登录页面

<%

使用JSP实现网站用户注册和登录

课程设计报告 课程名称 Web开发技术 系别:工程技术系 专业班级:计科0801 学号: 0811080105 姓名:方海入 课程题目:使用JSP实现网站用户注册和登录 完成日期: 2011年6月 指导老师:林宝平 2011年 6月 24日

课程设计目的1.培养综合运用所学知识解决实际问题的能力;2.培养独立查找资料进行自学的能力; 3.熟悉网站常用基本模块的实现方法。 课程设计要求1.使用HTML表单提交用户信息;2.使用JavaScript验证用户输入信息;3.使用AJAX技术检测用户名是否可用;4.使用JDBC连接数据库。 课程设计注意事项1.可以相互讨论,但应独立完成; 2.代码应当整洁规范,清晰易读; 3.界面应当简洁漂亮,各种提示清晰完整。 课程设计内容 设计一个公司用户登录和注册的网站,并使用JSP技术连接SQL数据库,实现网页的用户登录注册功能

课程设计简要操作步骤1.使用HTML语言编写设计网站登录页面代码。 2.使用SQL SERVER创建用户账户密码数据库。 3.使用ODBC连接数据库和登录界面。 4.连接输入数据测试是否正确。 课程设计心得体会通过此次课程实训,是我更加明白理论与实践相结合的重要性,光学习理论是远远不够的,还要能在实际的操作上熟练的运用才是最关键的,只有不断的提高自我的实际操作水平,才能学以致用,为以后的工作打下坚实的基础。 课 程设计评语及成绩评 语 成 绩 指导教师 (签名) 2011年6月日

附件: 摘要 本文的叙述围绕着如何实现一个功能完善的网站进行展开。依据本次毕业设计的要求,主要从可行性分析、需求分析、总体设计、详细设计、编码、测试几个阶段进行毕业设计论文的编写。 接着在需求分析中,根据用户的角度,分析了所设计的网站需要实现哪些基本功能;从设计者的角度,分析了设计一个网站所用的编辑工具和编程语言及网站的软硬件开发环境。根据分析的结果,主要采用FrontPage,Dreamweaver编辑器,SQL 2000结合https://www.wendangku.net/doc/2e12486918.html,(vbscript,j avascript)编程编程语言,进行网站的页面设计;网站的主要功能主要分为新闻、下载、友情链接、网上调查,图片几大模块。 详细设计阶段的任务就是把解法具体化。在详细设计阶段,依据总体分析的结果,进行具体页面的组织和数据库结构的设计。页面的组织主要是设计网页之间的联系,同时根据这些联系实现网页基本功能的构架;数据库的设计主要考虑各程序模块的基本功能,设计相应的表格、字段,用来存贮相应的数据记录,为页面的生成提供数据来源。 在编码阶段,进行具体网页的编码设计。在设计中,根据网页的程序界面,表单,需要的数据等,写出实际的程序代码。由于本次设计的页面比较多,不可能尽数地写出全部程序的代码,因此,在这一章节中,主要解释了在此次设计中主要用到的页面设计和数据库的编码技术。 测试的主要任务是为了发现程序中的错误,软件测试的过程亦是程序运行的过程。在本次设计中,主要采用边测试边修改的方法,在测试网页的同时根据结果及时进行相应的修改。在测试过程中,主要从外观、链接、速度方面测试网页是否能够实现相应的功能。 关键字JSP、WEB、Dreamweaver、SQL 2000 ABSTRACT The textual description is around how to realizes the perfect website of a function pr oceeds to launch.According to the request of this graduate design, primarily analyze from the viability assessment, analysis of need, total design, detailed design, code design, test this five stage to proceed this graduate design. Immediately after analyze the inside in the need, according to the customer's angle, analy zed basic functions of which demand in website for designing of realizeses;From angle of the design, analyzed to design a development environment of soft hardware for editor tool for us ing with weaving the language and website.According to the analysis's result, mostly use Drea mweaver , and connected JSP( vbscript, javascript) language, proceed the design of website's p age;The website's main function is primarily divided with the news, forums, message the guest book , net investigate, amusement. The mission of the detailed design stage is to embody the solution method.In the result o f the total analysis of detailed design stage, basis, proceed the buildup of the concrete page is with the design of construction database.Page for contact for of buildup primarily is°which design web paging, at the same time according to these contacts realizing basic function of web page;Main each procedure mold of consideration of the database's design piece form, wor

相关文档 最新文档
用户名: 用户注册: 用户名: 密码: