初次Java web项目的建立以及与数据库的连接
题目要求:

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="女">女
<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项目的建立以及与数据库的连接的更多相关文章
- Java Web项目里开发获取上个页面连接地址的问题
近期做的项目有个问题,就是需要获取上个页面连接地址,我用的IE浏览器,在用location.href连接到新地址的时候,在新地址页面用document.referrer的方法获取不到原地址,我测试了下 ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- step2-------使用myeclipse创建maven java web项目
1.文章内容概述: 在对项目需求进行分析之后,决定使用maven对我的java web项目进行管理,这篇文章记录了使用myeclipse创建maven java web项目的过程. 2.开发环境: j ...
- 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...
- 转:在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
本文是一篇在Myeclipse下构建Java Web项目的初级教程.图文并茂,非常详细.所用的Myeclipse版本是7.5. 第一步:新建Web Project,如下图. 第二步,在弹出的窗口填写下 ...
- Java web 项目 tomcat部署方式.
本地做Java Web项目的时候常常会用到tomcat部署测试的问题, 这里介绍项目的部署方法: 1,配置文件的形式: 例如: 你的项目目录为:f:\workspaces\MyProject,此时使用 ...
- IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目
以往的Eclipse.NetBeans等开发工具不同,IDEA的Project相当与Eclipse的Workspace,而Module相当于Project. 下边就给出Eclipse与IDEA的概念的 ...
- 使用MyEclipse搭建java Web项目开发
转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...
- IntelliJ IDEA新建JAVA WEB项目(转载)
IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本控制工具(git.svn ...
随机推荐
- IntelliJ IDEA 之 配置JDK 的 4种方式
一.新建项目前配置JDK 打开IDEA集成开发环境工具,点击:File--Project Structure,如下图 在打开的页面中,选择SDKs属性,并点击中间的加号+,选择JDK,如下图 在打开的 ...
- (四)自定义多个Realm以及Authenticator与AuthenticationStrategy
多Realm配置 #声明一个realm myRealm1=com.github.zhangkaitao.shiro.chapter2.realm.MyRealm1 myRealm2=com.githu ...
- JDBC 学习复习9 配置Tomcat数据源
在实际开发中,我们有时候还会使用服务器提供给我们的数据库连接池,比如我们希望Tomcat服务器在启动的时候可以帮我们创建一个数据库连接池,那么我们在应用程序中就不需要手动去创建数据库连接池,直接使用T ...
- JS错误信息类型
1.SyntaxError 语法错误 ①变量名不规范 // 变量名不规范 var 1 = 1; 未被捕获的语法错误,这个错误是js机制自动抛出来的 意外的数字 // 下面两个是同一种情况 var 1a ...
- JS密码强度检测
//校验密码强度---沒有匹配到以下級別就提示 function checkPassWord(value){ // 0: 表示第一个级别 1:表示第二个级别 2:表示第三个级别 // 3: 表示第四个 ...
- 6.NIO2-Path、Paths、Files
NIO.2 jdk1.7中,java对 NIO 极大的扩展,主要增强的是对文件处理 和 文件系统特性的支持 关于其中一些API的使用 public class TestNIO_2_Path_File ...
- 用mybatis将SQL查询语句”select * from user”的封装为配置文件
用mybatis将SQL查询语句”select * from user”的封装为配置文件 定义一个xml映射文件,文件名见名知意.如user-mapper.xml,文件内容如下: <?xml v ...
- IDEA部署项目到远程服务器
一.idea安装阿里插件Alibaba Cloud Toolkit 二.添加Host 三.应用部署 四.修改源程序重新部署 五.查看实时日志 欲买桂花同载酒,终不似,少年游
- JAVA静态方法是否可以被继承?
结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用 ...
- 【OGG 故障处理】 丢失归档恢复
OGG 有两天由于某种原因没有启动,而这段时间的备份文件缺失了一部分归档.恢复过程记录如下: GGSCI (xxxx) > info all Program Status Group Lag a ...