经过俩天的摸索,和学姐的帮助下终于做出来一个简单地网页版的学生信息添加的系统。接下来说一下答题的思路:

首先我个人习惯先做网页界面,创建3个jsp文件分别是添加界面,成功界面,失败界面。这件看起来更加分明一点。首先添加界面是这样的:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="textservlet" onsubmit="return check()">
<div >
<label for="gs1">登录账号:</label>
<input type="text" id="gs1" placeholder="请输入用户名" name="gs1">
</div>
<div >
<label for="gs2">登录密码:</label>
<input type="password" id="gs2" placeholder="请输入密码" class="input-text input-long" name="gs2">
</div>
<div >
<label for="gs3">姓   别:</label>
<select name="p">
<option value ="nan">男</option>
<option value ="nv">女</option>
</select>
</div>
<div >
<label for="gs4" >姓   名:</label>
<input type="text" id="gs4" placeholder="请输入姓名" class="input-text input-long" name="gs4">
</div>
<div >
<label for="gs5" >学   号:</label>
<input type="text" id="gs5" placeholder="请输入学号" class="input-text input-long" name="gs5">
</div>
<div >
<label for="gs6" >电子邮件:</label>
<input type="text" id="gs6" placeholder="请输入邮件" class="input-text input-long" name="gs6">
</div>
<div >
<label for="gs7" >所在学院:</label>
<input type="text" id="gs7" placeholder="请输入所在学院" class="input-text input-long" name="gs7">
</div>
<div >
<label for="gs8" >所在系:</label>
<input type="text" id="gs8" placeholder="请输入所在系" class="input-text input-long" name="gs8">
</div>
<div >
<label for="gs9" >所在班级:</label>
<input type="text" id="gs9" placeholder="请输入所在班级" class="input-text input-long" name="gs9">
</div>
<div >
<label for="gs10">入学年份(届):</label>
<select name="p2">
<option value ="2014">2014</option>
<option value ="2015">2015</option>
<option value ="2016">2016</option>
<option value ="2017">2017</option>
<option value ="2018">2018</option>
<option value ="2019">2019</option>
</select>
</div>
<div >
<label for="gs11" >生源地:</label>
<input type="text" id="gs11" name="gs11">
</div>
<div >
<label for="gs12" >备注:</label>
<input type="text" id="gs12" name="gs12">
</div>
<div>
<input type="submit" id="xuan" name="xuan" value="添加">
</div>
</form>
<!-- 输入字段验证部分 -->
<script type="text/javascript">
function check(){
var username=document.getElementById("gs1");
var password=document.getElementById("gs2");
var number=document.getElementById("gs5");
var mail=document.getElementById("gs6");
var sReg = /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/; //正则表达式
//判断用户名位数
if((username.value).length<6||(username.value).length>12){
alert('账号请输入6到12位英文字符或数字,以英文字母开头');
gs1.focus();
return false;
}
//判断用户名是否包含汉字
if(/.*[\u4e00-\u9fa5]+.*$/.test(username.value)){
alert('账号用户名不能包含汉字');
gs1.focus();
return false;
}
//判断用户名是否以英文字母开头
if(!isNaN(username.value[0])){
alert('登录账号请以英文字母开头');
gs1.focus();
return false;
}
//判断密码位数
if((password.value).length!=8){
alert('密码应为8位英文或数字');
gs2.focus();
return false;
}
//判断学号是否以2018开头
if(number.value<"20180000"|| number.value>"20189999")
{
alert(" 学号由2018开头的八位组成");
gs5.focus();
return false;
} //验证手机号是否合法 //判断邮箱格式是否正确
if(! sReg.test(mail.value)){
alert('邮箱格式错误');
gs6.focus();
return false;
}
}
</script>
<!-- 验证结束 -->
</body>
</html>

这里面用JavaScript写了邮箱,账号等等的格式判断。

添加成功界面如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 style="text-align:center;">添加成功</h1>
<h1 style="text-align:center;"><a href="text.jsp">返回继续添加信息</a></h1>
</body>
</ht

添加失败界面如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 style="text-align:center;">添加失败</h1>
<h1 style="text-align:center;"><a href="text.jsp">返回继续添加信息</a></h1>
</body>
</html>

接下来开始封装数据和数据库建立连接,首先创建一个Bean包,来封装数据用代码如下:

package text.jsp.bean;
public class UserBean {
private String id;
private String password;
private String sex;
private String name;
private String number;
private String mail;
private String yuan;
private String xi;
private String classes;
private String time;
private String place;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
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 getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = 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 getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public UserBean(String id,String password,String sex,String name,String number,String mail,String yuan,String xi,String classes,String time,String place){
this.id=id;
this.password=password;
this.sex=sex;
this.name=name;
this.number=number;
this.mail=mail;
this.yuan=yuan;
this.xi=xi;
this.classes=classes;
this.time=time;
this.place=place;
}
}

然后创建一个util包主要是连接数据库以及判断数据库是否连接成功,若不成功则在控制台输出报错信息,这个代码一般都是直接复制的 只需要改一下数据库的名字。代码如下:

package text.jsp.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DBUtil
{
private static Connection con;
private static Statement stm;
private static ResultSet rs;
private static String classname="com.mysql.cj.jdbc.Driver";
private static String url="jdbc:mysql://localhost:3306/gs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&&useSSL=false&&allowPublicKeyRetrieval=true";
public Connection getCon(){
try{
Class.forName(classname);
System.out.println("驱动加载成功");
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con=DriverManager.getConnection(url,"root","123456");
System.out.println("数据库连接成功"); }
catch(Exception e){
e.printStackTrace(System.err);
con=null;
}
return con;
}
public static void close(Statement stm, Connection conn) {
if(stm!=null) {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void close(ResultSet rs, Statement stm, Connection con) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stm!=null) {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

然后创建一个Dao包,这个主要是将数据传到数据库的相应位置,写代码的时候一定要变量一一对应,否则会报错。代码如下:

package text.jsp.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import text.jsp.bean.UserBean;
import text.jsp.util.DBUtil; public class UserDao {
public boolean add(UserBean user) {
String sql = "insert into text1021(id,password,sex,name,number,mail,yuan,xi,classes,time,place) values('" + user.getId() + "','" + user.getPassword() + "','" + user.getSex() + "','" + user.getName() + "','" + user.getNumber() + "','" + user.getMail() + "','" + user.getYuan() +"','"+user.getXi() + "','" +user.getClasses() + "','" +user.getTime() + "','" + user.getPlace()+"')";
DBUtil db=new DBUtil();
Connection conn = db.getCon();// ÷
Statement state = null;
boolean f = false;
int a = 0 ; try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally { DBUtil.close(state, conn);
} if (a > 0) {
f = true;
}
return f;
} }

最后就要比较重要的servlet包,这个主要作用就是从jsp里面接受请求并作出判断并返回成功或者失败界面

代码如下:

package text.jsp.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 text.jsp.dao.UserDao;
import text.jsp.bean.UserBean; /**
* Servlet implementation class textservlet
*/
@WebServlet("/textservlet")
public class textservlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public textservlet() {
super();
// TODO Auto-generated constructor stub
}
UserDao userDao=new UserDao();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("textml;charset=UTF-8");
response.setHeader("content-type", "textml;charset=UTF-8");
String id=request.getParameter("gs1");
String password=request.getParameter("gs2");
String sex=request.getParameter("p");
String name=request.getParameter("gs4");
String number=request.getParameter("gs5");
String mail=request.getParameter("gs6");
String yuan=request.getParameter("gs7");
String xi=request.getParameter("gs8");
String classes=request.getParameter("gs9");
String time=request.getParameter("p2");
String place=request.getParameter("gs11");
UserBean userbean=new UserBean( id, password, sex, name, number, mail, yuan, xi, classes, time, place);
if(userDao.add(userbean)) {
request.getRequestDispatcher("success.jsp").forward(request,response);
}
else {
request.getRequestDispatcher("fail.jsp").forward(request,response);
}
} /**
* @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);
} }

这样一个简单地web项目就做好了 ,主要难点就是数据库的连接,并将数据传到数据库里面。至于界面的设计应该是相对简单的。

简单java web制作思路的更多相关文章

  1. 简单java web应用程序搭建与部署

    1. 准备工作 工具:tomcat.editplus.jdk.windows操作系统 操作:在windows操作系统上安装jdk.tomcat.editplus,配置JAVA_HOME,Path,CL ...

  2. Idea创建简单Java Web项目并部署Servlet

    1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...

  3. Java Web制作登录 验证码

    具体操作如下: 新建一个servlet,代码如下:标记一个WebServlet, @WebServlet(urlPatterns = {"/checkCode"}) //验证码Se ...

  4. JAVA WEB 用servlet实现分页,思路比较清晰和简单。

    JAVA WEB 用servlet实现分页,思路比较清晰和简单.借鉴了其他大佬的思路.特别感谢. 是我第一次发表博客,如果有什么错误,欢迎大家指出!,谢谢 一.思路分析 前台一定是有类似这种的界面 点 ...

  5. JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)

    接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...

  6. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  7. 【Java学习笔记】如何写一个简单的Web Service

    本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...

  8. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

  9. 一个简单的Java web服务器实现

    前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...

随机推荐

  1. 【Detection】物体识别-制作PASCAL VOC数据集

    PASCAL VOC数据集 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge 默认为20类物体 1 数据集结构 ...

  2. Go语言实现:【剑指offer】二叉搜索树与双向链表

    该题目来源于牛客网<剑指offer>专题. 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. Go语言实现: type T ...

  3. Go语言实现:【剑指offer】矩阵中的路径

    该题目来源于牛客网<剑指offer>专题. 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向 ...

  4. Qt 中QPainter 使用中出现的问题

    这两天在使用QPainter的过程中出现了一些问题,记录一下. 测试程序很简单,写一个继承自QWidget的类,重载其paintEvent函数进行绘图. case1: 在paintEvent函数中使用 ...

  5. python笔记22(面向对象课程四)

    今日内容 讲作业 栈 顺序查找 可迭代对象 约束 + 异常 反射 内容详细 1.作业 1.1 代码从上到下执行 print('你好') def func(): pass func() class Fo ...

  6. Java压缩包(zip)【学习笔记】

    前言 Java实现Zip压缩解压可以使用JDK的原生类java.util.zip,但是JDK 7 之前存在中文文件名乱码问题. 使用 ant.jar 的org.apache.tools.zip包,可以 ...

  7. python 处理10000个txt,每个文件夹里面放1000个。

    fileNumberInDiretory = 1000 title_list = getChongFuTitle(cursor) DiretoryNums = math.ceil(len(title_ ...

  8. PHP独立环境配置

    php 下载地址: http://windows.php.net/download/ Apache 下载地址: http://www.apachelounge.com/download/ mysql ...

  9. jps jmap 的使用

    第一部分: 源代码: public class ObjectText { int a=0; public static void main(String[] args) { ObjectText ot ...

  10. Android Gradle报错 (Error:No such property: GradleVersion for class: JetGradlePlugin) 的原因与解决

    Error:No such property: GradleVersion for class: JetGradlePlugin 错误原因:IDE 版本(GradlePlugin)和 Gradle 版 ...