java 把学生信息存到mysql中_用javaweb写一个注册界面,并将数据保存到后台数据库(全部完成)(课堂测试)...

这篇博客介绍了如何使用Java Web创建一个注册界面,要求包括特定格式的登录账号和密码,性别选择,学号输入等,并详细说明了数据库连接、数据插入的实现步骤。通过users.jsp、DBUtil.java、Dao.java和Servlet.java文件的代码展示了从表单验证到数据存储的完整过程。
摘要由CSDN通过智能技术生成

一、题目:WEB界面链接数据库

1.考试要求:

e7c6c02208c3ea7955f6f73516a43b14.png

1登录账号:要求由6到12位字母、数字、下划线组成,只有字母可以开头;(1分)

2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)

3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)

4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号;(1分)

5姓名:输入自己的姓名;

6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)

7可以演示连接上数据库。(2分)

二、设计思路:

1、首先在users.jsp代码中,用HTML写一个添加表单即可

2、在DBUtil.java文件编写中对数据库进行连接和关闭的操作

3、在Dao.java文件中编写向数据库中插入数据的SQL语句,以及判断Servelet.java中传递的数据是否为空。

4、在 users.jsp 文件中对表单用javascript进行form表单校验,将满足所有添加要求的数据传入Servelet.java中,用post方式传递。

5、在Selvlet.java 文件调用DBUtil.java文件和Dao.java文件,得到Dao.java中判断Servelet.java中传递的数据是否为空的函数,并进行二次表单校验。

6、Servelet.java中若数据合理,调用DBUtil.java的方法,连接数据库将数据通过参数的形式传递给在Dao.java文件中向数据库中插入数据的SQL语句,将数据添加到数据库。若添加成功,给出提示信息并返回users.jsp代码中action跳转的Servlet?method=add页面。若添加失败,给出提示信息并返回users.jsp代码中action跳转的Servlet?method=add页面。

三、源代码

1、Dao.java文件

1 packageDao;2

3 importjava.sql.Connection;4 importjava.sql.Statement;5

6 importDBUtil.DBUtil;7

8 importEntity.User;9

10 public classDao {11

12 public booleanadd(User user) {13 //将数据插入数据库的SQL语句

14 String sql = "insert into uses1 (username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext) values('"+ user.getUsername() + "','"+ user.getPassword() +"','"+ user.getSex() +"','"+user.getName() +"','"+ user.getStuname() +"','"+user.getEmail()+"','"+ user.getXueyuan() +"','"+user.getXi()+"','"+user.getBanji()+"','"+user.getYear()+"','"+user.getAddress()+"','"+user.getAddtext()+"')";15 //创建数据库链接

16 Connection conn =DBUtil.getConn();17 Statement state = null;18 boolean f = false;19 int a = 0;20

21 try{22 state =conn.createStatement();23 a=state.executeUpdate(sql);24 } catch(Exception e) {25 e.printStackTrace();26 } finally{27 //关闭z 连接

28 DBUtil.close(state, conn);29 }30

31 if (a > 0) {32 f = true;33 }34 returnf;35

36 }37

38

39 }

2、DBUtil.java文件

1 packageDBUtil;2

3

4

5 importjava.sql.Connection;6 importjava.sql.DriverManager;7 importjava.sql.PreparedStatement;8 importjava.sql.ResultSet;9 importjava.sql.SQLException;10 importjava.sql.Statement;11

12 /**

13 *@authorHu14 *15 */

16 public classDBUtil {17

18 public static String db_url = "jdbc:mysql://localhost:3306/user?serverTimezone=UTC";//登录数据库

19 public static String db_user = "root";20 public static String db_pass = "123";21

22 public staticConnection getConn () {23 Connection conn = null;24

25 try{26 Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动

27 conn =DriverManager.getConnection(db_url, db_user, db_pass);28 } catch(Exception e) {29 e.printStackTrace();30 }31

32 returnconn;33 }34 /**

35 * 关闭与数据库的连接36 *@paramstate37 *@paramconn38 */

39 public static voidclose (Statement state, Connection conn) {40 if (state != null) {41 try{42 state.close();43 } catch(SQLException e) {44 e.printStackTrace();45 }46 }47

48 if (conn != null) {49 try{50 conn.close();51 } catch(SQLException e) {52 e.printStackTrace();53 }54 }55 }56

57 public static voidclose (ResultSet rs, Statement state, Connection conn) {58 if (rs != null) {59 try{60 rs.close();61 } catch(SQLException e) {62 e.printStackTrace();63 }64 }65

66 if (state != null) {67 try{68 state.close();69 } catch(SQLException e) {70 e.printStackTrace();71 }72 }73

74 if (conn != null) {75 try{76 conn.close();77 } catch(SQLException e) {78 e.printStackTrace();79 }80 }81 }82 public static void main(String[] args) throwsSQLException {83 Connection conn =getConn();84 PreparedStatement pstmt = null;85 ResultSet rs = null;86 String sql ="select * from users";87 pstmt =conn.prepareStatement(sql);88 rs =pstmt.executeQuery();89 if(rs.next()){90 System.out.println("空");91 }else{92 System.out.println("不空");93 }94 }95 }

3、User.java(用户属性类)文件

1 packageEntity;2

3 public classUser {4

5 privateString username;6 privateString password;7 privateString sex;8 privateString name;9 privateString stuname;10 privateString email;11 privateString xueyuan;12 privateString xi;13 privateString banji;14 privateString year;15 privateString address;16 privateString addtext;17

18 publicString getUsername() {19 returnusername;20 }21

22 public voidsetUsername(String username) {23 this.username =username;24 }25

26 publicString getPassword() {27 returnpassword;28 }29

30 public voidsetPassword(String password) {31 this.password =password;32 }33

34 publicString getSex() {35 returnsex;36 }37

38 public voidsetSex(String sex) {39 this.sex =sex;40 }41

42 publicString getName() {43 returnname;44 }45

46 public voidsetName(String name) {47 this.name =name;48 }49

50 publicString getStuname() {51 returnstuname;52 }53

54 public voidsetStuname(String stuname) {55 this.stuname =stuname;56 }57

58 publicString getEmail() {59 returnemail;60 }61

62 public voidsetEmail(String email) {63 this.email =email;64 }65

66 publicString getXueyuan() {67 returnxueyuan;68 }69

70 public voidsetXueyuan(String xueyuan) {71 this.xueyuan =xueyuan;72 }73

74 publicString getXi() {75 returnxi;76 }77

78 public voidsetXi(String xi) {79 this.xi =xi;80 }81

82 publicString getBanji() {83 returnbanji;84 }85

86 public voidsetBanji(String banji) {87 this.banji =banji;88 }89

90 publicString getYear() {91 returnyear;92 }93

94 public voidsetYear(String year) {95 this.year =year;96 }97

98 publicString getAddress() {99 returnaddress;100 }101

102 public voidsetAddress(String address) {103 this.address =address;104 }105

106 publicString getAddtext() {107 returnaddtext;108 }109

110 public voidsetAddtext(String addtext) {111 this.addtext =addtext;112 }113

114 publicUser() {}115

116 publicUser(String username,String password,String sex,String name,String stuname,String email,String xueyuan, String xi,String banji,String year,String address,String addtext) {117

118

119 this.username=username;120 this.password=password;121 this.sex=sex;122 this.name=name;123 this.stuname=stuname;124 this.email=email;125 this.xueyuan=xueyuan;126 this.xi=xi;127 this.banji=banji;128 this.year=year;129 this.address=address;130 this.addtext=addtext;131

132 }133

134

135 }

4、Servlet.java文件

1 packageServlet;2

3 importjava.io.IOException;4

5 importjavax.servlet.ServletException;6 importjavax.servlet.annotation.WebServlet;7 importjavax.servlet.http.HttpServlet;8 importjavax.servlet.http.HttpServletRequest;9 importjavax.servlet.http.HttpServletResponse;10

11 importDao.Dao;12

13 importEntity.User;14

15

16

17

18 @WebServlet("/Servlet")19 public class Servlet extendsHttpServlet {20 private static final long serialVersionUID = 1L;21

22

23 publicServlet() {24 super();25

26 }27 protected void service(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException {28 req.setCharacterEncoding("utf-8");29 String method = req.getParameter("method");30 if ("add".equals(method)) {31 add(req, resp);32 }33 }34

35

36 public void add(HttpServletRequest req, HttpServletResponse resp) throwsIOException, ServletException{37 req.setCharacterEncoding("utf-8");38 String username = req.getParameter("username");39 String password = req.getParameter("password");40 String sex = req.getParameter("sex");41 String name = req.getParameter("name");42 String stuname = req.getParameter("stuname");43 String email = req.getParameter("email");44 String xueyuan = req.getParameter("xueyuan");45 String xi= req.getParameter("xi");46 String banji= req.getParameter("banji");47 String year= req.getParameter("year");48 String address= req.getParameter("address");49 String addtext= req.getParameter("addtext");50 //调用用户属性类

51 User user = newUser(username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext);52 //接受判断函数返回值

53 Dao dao =newDao();54 boolean f=dao.add(user);55 //提示信息

56 if(f) {57 req.setAttribute("message", "注册成功!");58 req.getRequestDispatcher("users.jsp").forward(req,resp);59 }60 else{61 req.setAttribute("message", "已有账号,重复登录!");62 req.getRequestDispatcher("users.jsp").forward(req,resp);63 }64 }65 }

5、users.jsp文件

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9 //表单校验

10 function check() {11 flag=0;12 var rep = /^[\w\u4e00-\u9fa5]{6,8}$/; //判断字符串是否为数字和字母组合

13 var myPattern = new RegExp("^[a-zA-Z]"); //以英文字母开头

14 var username = document.getElementById("username").value;15 //alert(username.length);

16 if(!(username.length>5&&username.length<13)){17 alert("用户名长度错误!");return false;18 }19 else if(!(rep.test(username))){20 alert("用户名组成内容错误!");return false;21 }else if(!(myPattern.exec(username))){22 alert("用户名开头必须是字母!");return false;23 }24 var password = document.getElementById("password").value;25 if(password.length<8){26 alert("密码长度错误");27 return false;28 }29

30 var stuname = document.getElementById("stuname").value;31 if(stuname.length!=8){32 alert("学号长度错误!");33 return false;34 }35 if(stuname [0]=='2'&&stuname[1]=='0'&&stuname[2]=='1'&&stuname[3]=='8'){36 flag++;37 }38 else{39 alert("学号格式错误!");40 return false;41 }42

43 var email = document.getElementById("email").value;44 if(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){45 flag++;46 }47 else{48 alert("邮箱格式错误!");49 return false;50 }51 //标志法判断是否添加成功

52 if(flag>1){53 alert("添加成功");54 return true;55 }56 else{57 alert("添加失败");58 return false;59 }60 }61

62

63

64

65

66

67

68

69 style="width: 50%;margin:auto;background:rgb(195,195,195)" bordercolor="red" >

70

71 οnsubmit="return check()">

72

当前位置:添加学生信息

73

74

75

76

登录账号:

77

78

79

80

登录密码:

81

82

83

84

性别:

85

86

87 男

88 女

89

90

91

92

93

姓名:

94

95

96

97

学号:

98

99

100

101

电子邮箱:

102

103

104

105

所在学院:

106

107

108

109

所在系:

110

111

112

113

所在班级:

114

115

116

117

入学年份(届):

118

119

120 1998

121 1999

122 2000

123 2001

124 2002

125 2003

126 2004

127 2005

128 2006

129 2007

130 2008

131 2009

132 2010

133 2011

134 2012

135 2013

136 2014

137 2015

138 2016

139 2017

140 2018

141 2019

142

143

144

145

146

生源地:

147

148

149

150

151 备注:152

153

154

155

156

157

158

159

160

161

162

163

164

165

四、程序测试

d06b88fac17541b03192b4715c426c2d.png

a3d10a2e5732da652f5d170edf476288.png

e2650e5ddb2e687f826d6e26135fe6fb.png

f7943f62b555e69d0ed329fe368610a3.png

f52444eefead9039cad8a5104f0f69a2.png

6adb61e27c68e116adf70038ef6f3db7.png

f816672d8ad74cb20fea4e02eff7ebae.png

288aea099c71c9b6ae216adcf53873fe.png

### 回答1: 《JavaWeb程序开发入门》是由传智播客出版的一本介绍JavaWeb开发的教程,主要面向初学者。这本教程详细介绍了JavaWeb开发的基本概念、常用技术和实践方法。 首先,这本教程提供了JavaWeb开发的基础知识。它介绍了JavaWeb开发的基本原理,如Servlet、JSP等技术的概念和使用方法。它还讲解了JavaWeb开发的MVC架构模式,帮助读者理解Web应用程序的组织和开发方式。 第二,教程介绍了JavaWeb开发常用的技术和工具。例如,它讲解了如何使用JavaWeb开发常用的框架,如Struts、Spring和Hibernate。同时,它还介绍了JavaWeb开发数据库设计和访问技术,如MySQL和JDBC等。 第三,教程提供了大量的实例和案例。通过这些实例,读者可以学习如何搭建一个完整的JavaWeb应用程序,包括前端页面的设计和开发,后端业务逻辑的实现以及数据库的设计和使用。 总的来说,《JavaWeb程序开发入门》是一本适合初学者学习JavaWeb开发的教材。它清晰地介绍了JavaWeb开发的基本原理和常用技术,通过实例的演示,帮助读者掌握JavaWeb开发的基本技能。这本教程简洁明了,容易理解,是学习JavaWeb开发的好选择。 ### 回答2: javaweb程序开发入门指的是学习使用Java语言开发Web应用程序的基础知识和技能。而传智播客是一个培训机构,有提供相关的教材,其也包括了javaweb开发的PDF版本文档。 对于想要学习javaweb开发的人来说,传智播客的PDF文档是一种非常便利的学习资源。这些文档涵盖了javaweb开发的各个方面,包括基础的Java编程语法、常用的开发工具和框架、数据库的使用和设计以及常用的服务器配置等内容。它们提供了一个系统的学习路径,帮助学习者逐步了解和掌握javaweb开发的基本知识和技巧。 通过传智播客的PDF文档,学习者可以按照自己的进度和需求,有针对性地学习相关知识。这些文档也可以很好地配合传智播客的课程使用,帮助学员更好地理解和应用所学知识。 总的来说,传智播客的javaweb开发入门PDF文档是一种非常有用的学习资源,可以帮助初学者系统地学习javaweb开发,并为他们打下坚实的基础。 ### 回答3: 传智播客的Javaweb程序开发入门PDF是一本很受欢迎的教材,对于想要学习Javaweb开发的初学者来说,是一本很好的资源。这本PDF全面介绍了Javaweb的基础知识、开发环境搭建、Servlet、JSP、数据库操作等内容,几乎涵盖了Javaweb开发的方方面面。 在这本PDF,你将学习到如何搭建Javaweb开发环境,包括下载和安装Java JDK、Eclipse IDE、Tomcat服务器等。之后,你将学习到Servlet的基本概念和使用方法,如何处理HTTP请求和响应,如何使用Servlet来编后台逻辑代码等。接下来,你将学习到JSP的基础知识,包括JSP的语法、常用标签和表达式的使用方式等。在学习这些基础知识之后,你将学习到如何使用JDBC进行数据库操作,包括连接数据库、执行SQL语句、处理结果集等。 通过阅读这本PDF,你将对Javaweb程序开发的整个流程和步骤有一个全面的了解,并能够独立地开发简单的Javaweb应用程序。当然,这只是入门级别的学习资源,如果你希望进一步深入学习Javaweb开发,还需要进一步学习其他相关的知识,如框架的使用、前端开发等等。 总的来说,传智播客的Javaweb程序开发入门PDF是一本很好的学习资源,对于初学者来说是入门的重要材料。希望通过学习这本PDF,你能够对Javaweb开发有一个良好的基础认识,并能够进一步深入学习和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值