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

首先我个人习惯先做网页界面,创建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. 6.场景4:使用VRRP(L3HA)和Open vSwitch提供高可用性

    此场景描述了使用ML2插件和Open vSwitch(OVS)实现OpenStack网络服务的高可用性实现. 该高可用性实施方案增加了以下情景:带有虚拟路由器冗余协议(VRRP)的Open vSwit ...

  2. c/c++判断文件是否存在

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <fstream> #include <cstd ...

  3. asp.net core 3.x 身份验证-3cookie身份验证原理

    概述 上两篇(asp.net core 3.x 身份验证-1涉及到的概念.asp.net core 3.x 身份验证-2启动阶段的配置)介绍了身份验证相关概念以及启动阶段的配置,本篇以cookie身份 ...

  4. C# 接口和继承

    转:https://www.cnblogs.com/songhe123/p/9558545.html 接口是方法的抽象,如果不同的类有同样的方法,那么就应该考虑使用接口. 例1: using Syst ...

  5. POJ_3627_贪心

    题目描述: 给你N个数和一个总和,要求求出最少个数的数相加大于等于这个总和. 思路: 很简单的贪心,先排序,从大到小加一次,比较一次,直到符合条件. 我用了优先队列,运行时间好像多了一倍= = #in ...

  6. ARTS Week 5

    Nov 25, 2019 ~ Dec 1, 2019 Algorithm 深度优先搜索--书籍分配 题目描述:有b1-b5五本书,要分配给五个学生,分别是a1-a5.但每个学生都有其喜欢的书,要检查是 ...

  7. BZOJ 2733 [HNOI2012]永无乡 (权值线段树启发式合并+并查集)

    题意: n<=1e5的图里,在线连边.查询某连通块第k大 思路: 练习线段树合并的好题,因为依然记得上一次启发式合并trie的时候内存爆炸的恐怖,所以这次还是用了动态开点.回收 听说启发式合并s ...

  8. sqlserver install on linux chapter two

    The previous chapter is tell us how to install sqlerver on linuix Today, we will see how to make it ...

  9. SSL:GoDaddy SSL证书制作和安装

    简介 SSL证书是数字证书的一种类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书.SSL 证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁 ...

  10. 怎么理解Laravel的核心架构

    使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器.视图.模型)之外,还有中间件.门面.契约等,这些东西是如何在laravel框架运用起来的呢?今天就和大家详聊一 ...