简单java web制作思路
经过俩天的摸索,和学姐的帮助下终于做出来一个简单地网页版的学生信息添加的系统。接下来说一下答题的思路:
首先我个人习惯先做网页界面,创建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制作思路的更多相关文章
- 简单java web应用程序搭建与部署
1. 准备工作 工具:tomcat.editplus.jdk.windows操作系统 操作:在windows操作系统上安装jdk.tomcat.editplus,配置JAVA_HOME,Path,CL ...
- Idea创建简单Java Web项目并部署Servlet
1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...
- Java Web制作登录 验证码
具体操作如下: 新建一个servlet,代码如下:标记一个WebServlet, @WebServlet(urlPatterns = {"/checkCode"}) //验证码Se ...
- JAVA WEB 用servlet实现分页,思路比较清晰和简单。
JAVA WEB 用servlet实现分页,思路比较清晰和简单.借鉴了其他大佬的思路.特别感谢. 是我第一次发表博客,如果有什么错误,欢迎大家指出!,谢谢 一.思路分析 前台一定是有类似这种的界面 点 ...
- JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- 【Java学习笔记】如何写一个简单的Web Service
本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...
- 【知了堂学习笔记】java web 简单的登录
最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...
- 一个简单的Java web服务器实现
前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...
随机推荐
- 中国天气网API接口
http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data/cityinfo/101010100.h ...
- C语言中typedef用法
C语言中typedef用法 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等) ...
- POJ_2941_矩阵
题目描述: 每组数据给定一个n*n的矩阵,选定不同行不同列的n个元素,求和,若所有选法所产生的和相等,则输出 homogeneous,否则输出not homogeneous. 描述: 数据挺大,爆搜肯 ...
- python批量删除子文件夹中的空子文件夹
例如A文件夹下有许多子文件夹,我需要获得的是子文件夹中的图片,但是现在子文件夹中不光有图片,还混入了空的文件夹(在使用OpenImages工具箱的时候,按照检索的方式下载的图片文件中是带有label的 ...
- HDU4195 Regular Convex Polygon (正多边形、外接圆)
题意: 给你正n边形上的三个点,问n最少为多少 思路: 三个点在多边形上,所以三个点的外接圆就是这个正多边形的外接圆,余弦定理求出每个角的弧度值,即该角所对边的圆周角,该边对应的圆心角为圆心角的二倍. ...
- c语言小游戏-扫雷的完成
C语言-扫雷游戏 本文将对此游戏做一个大致的概述,此代码适合初学者,编写软件使用了vs2017. 该代码可以实现如下功能: 1.用户可以选择3个难度,分别布置不同个数的雷. 2.随机数设置雷的位置. ...
- Go语言实现:【剑指offer】题目汇总
所列题目与牛客网<剑指offer>专题相对应. 数组: 和为S的两个数字 和为S的连续正数序列 连续子数组的最大和 数字在排序数组中出现的次数 数组中只出现一次的数字 旋转数组的最小数字 ...
- 一起了解 .Net Foundation 项目 No.1
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Akka.NET Akka ...
- 3803 register initialization
wim寄存器 window invalid mask,窗口无效屏蔽寄存器,如果某bit为1,则表示该窗口无效,不能使用. 初始化,设置%psr.CWP=0,即当前使用win0:设置wim=2,即只有w ...
- 5G和AI会碰撞出什么样的火花呢?
本文学习和分享一篇综述文章,这篇文章是东南大学移动通信国家重点实验室主任.长江学者特聘教授尤肖虎教授2019年发表在<中国科学 信息科学>(<SCIENCE CHINA Inform ...