题目要求:

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

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

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

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

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

5电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;(1分)

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

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

思路:

先建立一个web项目,制作网页。然后在src目录下建立四个包。

第一个包,bean包,包括userbean类,代码如下,主要进行,数据的声明,和get()、set()、有参构造方法和无参构造方法

 package com.user.bean;

 public class UserBean {
private String id;
private String pass;
private String sex;
private String name;
private String xue;
private String e_mail;
private String yuan;
private String xi;
private String ban;
private String nian;
private String di;
private String bei; public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getXue() {
return xue;
}
public void setXue(String xue) {
this.xue = xue;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public String getYuan() {
return yuan;
}
public void setYuan(String yuan) {
this.yuan = yuan;
}
public String getXi() {
return xi;
}
public void setXi(String xi) {
this.xi = xi;
}
public String getBan() {
return ban;
}
public void setBan(String ban) {
this.ban = ban;
}
public String getNian() {
return nian;
}
public void setNian(String nian) {
this.nian = nian;
}
public String getDi() {
return di;
}
public void setDi(String di) {
this.di = di;
}
public String getBei() {
return bei;
}
public void setBei(String bei) {
this.bei = bei;
} public UserBean() {}
public UserBean(String Id,String Pass,String Sex,String Name,String Xue,String E_mail,String Yuan,String Xi,String Ban,String Nian,String Di,String Bei)
{
this.id=Id;
this.pass=Pass;
this.sex=Sex;
this.name=Name;
this.xue=Xue;
this.e_mail=E_mail;
this.yuan=Yuan;
this.xi=Xi;
this.ban=Ban;
this.nian=Nian;
this.di=Di;
this.bei=Bei;
}
}

第二个包,dao层封装方法

 package com.user.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.user.bean.UserBean;
import com.util.DBUtil; public class UserDao {
public static void main(String[] args) {
// List<UserBean> users=new ArrayList<UserBean>();
// UserBean user=new UserBean();
// user=list("1");
// System.out.println(user.getId_zaibu());
// checkLogin("root","root"); } /**
* 注册
* @param userBean
*/
public void reg(UserBean userBean) {
String sql = "insert into login(Id,Pass,Sex,Name,Xue,E_mail,Yuan,Xi,Ban,Nian,Di,Bei) values('"+userBean.getId()+"','"+userBean.getPass()+"','"+userBean.getSex()+"','"+userBean.getName()+"','"+userBean.getXue()+"','"+userBean.getE_mail()+"','"+userBean.getYuan()+"','"+userBean.getXi()+"','"+userBean.getBan()+"','"+userBean.getNian()+"','"+userBean.getDi()+"','"+userBean.getBei()+"')";
Connection conn = DBUtil.getConn();
Statement state = null;
try {
state = conn.createStatement();
state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
DBUtil.close(state, conn);
}
}
}

第三个包,servlet层,连接页面和数据库;

package com.user.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import com.user.bean.UserBean;
import com.user.dao.UserDao; /**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
HttpSession session=req.getSession(); String Id = req.getParameter("Id");
String Pass = req.getParameter("Pass");
String Name = req.getParameter("Name");
String Sex = req.getParameter("Sex");
String Xue = req.getParameter("Xue");
String Di = req.getParameter("Di");
String Yuan = req.getParameter("Yuan");
String E_mail = req.getParameter("E_mail");
String Xi = req.getParameter("Xi");
String Ban = req.getParameter("Ban");
String Nian = req.getParameter("Nian");
String Bei = req.getParameter("Bei"); UserDao adminDao = new UserDao();
UserBean a=new UserBean();
a.setId(Id);
a.setPass(Pass);
a.setName(Name);
a.setXue(Xue);
a.setSex(Sex);
a.setDi(Di);
a.setXi(Xi);
a.setBan(Ban);
a.setNian(Nian);
a.setBei(Bei);
a.setE_mail(E_mail);
a.setYuan(Yuan);
adminDao.reg(a);
resp.sendRedirect(req.getContextPath() + "/Sussess.jsp");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

第四个包,封装工具层

 package com.util;

 public class Constants {
public static final String SESSION_LOGIN_BEAN="loginbean"; }
 package com.util;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 数据库的工具类
* @author zm
*
*/
public class DBUtil {
//eshop为数据库名称,db_user为数据库用户名db_password为数据库密码
public static String db_url ="jdbc:mysql://localhost:3306/daer?&useSSL=false&serverTimezone=UTC";
public static String db_user = "root";
public static String db_password = "root";
public static Connection getConn() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(db_url, db_user, db_password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
} public static void close(Statement state, Connection conn) {
if(state!=null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void close(ResultSet rs, Statement state, Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(state!=null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
package com.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class StringUtil { /**
* @param str
* @return
*/
public static int StringToInt(String str) {
int result = 0;
try {
result = Integer.parseInt(str);
} catch (NumberFormatException e) {
result = 0;
//e.printStackTrace();
}
return result;
}
/**
* @param length
* @return
*/
public static String getRandomString(int length) {
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
} public static List<String> splitProperties (String properties){
List<String> options = new ArrayList<String>();
String option = null;
String[] strings = properties.split(",");
for (String string : strings) {
if(!"0".equals(string)){
option = string.charAt(3)+"";
options.add(option); }
}
return options; }
/**
* @param str
* @return
*/
public static float strToFlo(String str) {
float i = 0;
try {
i = Integer.parseInt(str);
} catch (Exception e) {
}
return i;
}
}

网页界面:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>登录</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
.code
{
background-image:url(code.jpg);
font-family:Arial;
font-style:italic;
color:Red;
border:0;
padding:2px 3px;
letter-spacing:3px;
font-weight:bolder;
}
.unchanged
{
border:0;
}
</style>
<script type="text/javascript">
function validate()
{ var Id=document.forms["myForm"]["Id"].value;
var reg= /^[A-Za-z0-9]{6,12}$/; if(!Id.match(reg))
{
alert("登陆账号必须由六到十二英文字符或数字组成,以英文字母开头");
return false;
}
var Pass=document.forms["myForm"]["Pass"].value;
reg= /^[A-Za-z0-9]{8,20}$/;
if(!Pass.match(reg))
{
alert("密码必须由八位以上英文字符或数字组成");
return false;
} var Xue=document.forms["myForm"]["Xue"].value;
reg= /^[0-9]{8}$/;
if(!Xue.match(reg))
{
alert("要求八位数字组成,前四位为“2018”开头");
return false;
}
var E_mail=document.forms["myForm"]["E_mail"].value;
reg=/^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g;
if(!E_mail.match(reg))
{
alert("邮箱请输入正确格式");
return false;
}
} </script>
</head>
<body >
<form name="myForm" action="${pageContext.request.contextPath}/LoginServlet" onsubmit="return validate()" method="post" >
<label>登陆账号</label>
<input name="Id" type="text" value="" /><br>
<label >登陆密码</label>
<input type="Pass" name="Pass" ><br>
<label >性别</label>
<input name="Sex" type="radio" value="女">女&nbsp;&nbsp;
<input name="Sex" type="radio" value="男">男<br>
<label >姓名</label>
<input name="Name" type="text" value="" /><br>
<label >学号</label>
<input name="Xue" type="text" value="" /><br>
<label >电子邮件</label>
<input name="E_mail" type="text" value="" /><br>
<label >所在学院</label>
<input name="Yuan" type="text" value="" /><br>
<label >所在系</label>
<input name="Xi" type="text" value="" /><br>
<label >所在班级</label>
<input name="Ban" type="text" value="" /><br>
<label >入学年份(届)</label>
<select name="Nian">
<%for(int i=1998;i<2020;i++){ %>
<option value="<%=i%>"><%=i %></option>
<%} %>
</select><br>
<label >生源地</label>
<input name="Di" type="textarea" value="" /><br>
<label >备注</label>
<textarea name="Bei" rows="20" cols="20"></textarea><br>
<button type="submit">注册</button>
<button type="reset" >重置</button>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
alert("成功!");
</script>
</body>
</html>

sql语句:

 /*
Navicat MySQL Data Transfer Source Server : MySQL
Source Server Version : 80015
Source Host : localhost:3306
Source Database : daer Target Server Type : MYSQL
Target Server Version : 80015
File Encoding : 65001 Date: 2019-10-21 15:21:01
*/ SET FOREIGN_KEY_CHECKS=0; -- ----------------------------
-- Table structure for login
-- ----------------------------
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
`Id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`Pass` varchar(255) DEFAULT NULL,
`Sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`Name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`Xue` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`E_mail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`Yuan` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`Xi` varchar(255) DEFAULT NULL,
`Ban` varchar(255) DEFAULT NULL,
`Nian` varchar(255) DEFAULT NULL,
`Di` varchar(255) DEFAULT NULL,
`Bei` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of login
-- ----------------------------

运行结果如下:

 

以下分别是条件不满足,和最后满足添加成功以及数据库保存的内容

体会:以后做大项目的时候,尤其要注意分层完成,条理清晰,哪里出了问题可以去改,而且做完一个小类就要去测试,是否正确,不要等到所有内容全部完成,因为全部完成的话,代码量很大,出问题了你也不知道如何去改,很费时间,相反,保证每个小项目都没有错,那么大的错误也不会有。初次做java web项目有些不熟悉,连数据库也不太会,只有多多练习,别人的代码不是你的代码,别人告诉你的代码,你不一定会,同样,从网上找到的模板你不一定会,因此一定要自己写代码,写明白,这样才是自己真的会了,否则,你这次找别人要的代码,下次也还会是,你永远也不会进步,就像是愚公一样,哪怕自己一次弄不明白,可以千次万次,这样也会进步,可就是不能去复制粘贴,别人的代码,一知半解或者压根都不明白,这才是最可怕的,表面上很厉害,但是真拿出来,自己又是不会,因此,要培养自己独立动手思考还有改错的能力

初次Java web项目的建立以及与数据库的连接的更多相关文章

  1. Java Web项目里开发获取上个页面连接地址的问题

    近期做的项目有个问题,就是需要获取上个页面连接地址,我用的IE浏览器,在用location.href连接到新地址的时候,在新地址页面用document.referrer的方法获取不到原地址,我测试了下 ...

  2. Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  3. step2-------使用myeclipse创建maven java web项目

    1.文章内容概述: 在对项目需求进行分析之后,决定使用maven对我的java web项目进行管理,这篇文章记录了使用myeclipse创建maven java web项目的过程. 2.开发环境: j ...

  4. 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...

  5. 转:在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    本文是一篇在Myeclipse下构建Java Web项目的初级教程.图文并茂,非常详细.所用的Myeclipse版本是7.5. 第一步:新建Web Project,如下图. 第二步,在弹出的窗口填写下 ...

  6. Java web 项目 tomcat部署方式.

    本地做Java Web项目的时候常常会用到tomcat部署测试的问题, 这里介绍项目的部署方法: 1,配置文件的形式: 例如: 你的项目目录为:f:\workspaces\MyProject,此时使用 ...

  7. IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目

    以往的Eclipse.NetBeans等开发工具不同,IDEA的Project相当与Eclipse的Workspace,而Module相当于Project. 下边就给出Eclipse与IDEA的概念的 ...

  8. 使用MyEclipse搭建java Web项目开发

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...

  9. IntelliJ IDEA新建JAVA WEB项目(转载)

    IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本控制工具(git.svn ...

随机推荐

  1. RabbitMq的环境安装

    1.如图第一个是erlang语言的安装包,第二个是rabbitmq的安装包. 2.配置erlang语言环境,因为rabbitmq由erlang语言编写的,所以需要配置erlng语言环境. erlang ...

  2. SpinWait

    其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧. 我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发 ...

  3. html如何点击子元素事件而不触发父元素的点击事件——阻止冒泡

    如果子元素和父元素都有点击事件,会出现点击事件冒泡的情况. 1.如何避免冒泡: html: <html> <head></head> <body> &l ...

  4. (一)Struts2 基础

    一.Struts简介 1.1 历史 虽然Struts 2号称是一个全新的框架,但这仅仅是相对Struts 1而言.Struts 2与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框 ...

  5. 数据库及MySQL基础(1)

    1.数据库概述 关系型数据库:面对关系,Java面向对象. ·常见数据库 Oracle(神喻):甲骨文 DB2:IBM SQL Server:微软 Sybase:赛尔斯 MySQL:甲骨文,最早是开源 ...

  6. C# Task.WhenAll

    1.有时候我们需要同时执行一些操作,然后把这些操作的结果进行汇总,以达到用异步处理降低操作耗时的效果,此时我们会考虑使用Task,而Task.WhenAll则排上了用场. public void Is ...

  7. spring.factories配置文件的工厂模式

    在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factories文件的内容基本上都是这样的格式: # Initialize ...

  8. List · leetcode-24. 交换相邻节点

    题面 Given a linked list, swap every two adjacent nodes and return its head. You may not modify the va ...

  9. zend studio 13.6.1汉化包安装方法

    1.这里介绍的是离线汉化包的安装,在线汉化安装总是失败,还是离线的方便 2.汉化安装过程中系统可能会弹出报错,忽略就可以(反正我现在就是忽略了在用着) 下面图片中的链接就是在线安装的链接,不管是在线还 ...

  10. 图卷积神经网络(GCN)入门

    图卷积网络Graph Convolutional Nueral Network,简称GCN,最近两年大热,取得不少进展.不得不专门为GCN开一个新篇章,表示其重要程度.本文结合大量参考文献,从理论到实 ...