《软件工程》 实发项目系统开发——河北省重大技术需求征集系统原型

功能要求

1、用户注册:首次用户使用需要进行注册,然后登录本系统。(1.5分)

zhuce.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPass(){
  var pwd1=document.getElementById("password").value;
  var pwd2=document.getElementById("chong").value;
  if(pwd1!=pwd2){
      document.getElementById("errorpwd").style.display = "block";
  }
  else{
	  document.getElementById("errorpwd").style.display = "none";
  }
}
function checkPhone(){
    var a = document.getElementById("phone");
        if(a.value.length!=11){
        	document.getElementById("errors").style.display = "block";
        	}
        else{
      	  document.getElementById("errors").style.display = "none";
        }
    }
</script>
<meta charset="UTF-8">
<title>注册</title>
<style type="text/css">
.a{margin-top:20px;}
.b{font-size:20px;width:160px;color:white; background-color:greenyellow;}
</style>
</head>
<body>
<%
	     Object message = request.getAttribute("message");
	     if(message!=null && !"".equals(message)){

	%>
	     <script type="text/javascript">
	          alert("<%=request.getAttribute("message")%>");
	     </script>
	<%} %>
<div align="center">
<form action="../../ShangServlet" method="post" onsubmit="return check()">
<div class="a">用户姓名:<input type="text" name="name" id="name"></div>
<div class="a">设置密码:<input type="password" name="password" id="password"></div>
<div class="a">重复密码:<input type="password" name="chong" id="chong" onblur="return checkPass();" ></div>
<span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
<div class="a">手机号码:<input type="text" name="phone" id="phone" onblur="return checkPhone();"></div>
<span id="errors" style="display:none; color:red">手机号码应该为11位</span>
<div class="a">所属单位:<input type="text" name="place" id="place"></div>
<div class="a"><button type="submit" class="b">保   存</button></div>
</form>
</div>
<script type="text/javascript">
function check(){
	var name=document.getElementById("name");
	var password=document.getElementById("password");
	var chong=document.getElementById("chong");
	var phone=document.getElementById("phone");
	var place=document.getElementById("place");
	if(name.value==‘‘){
		alert(‘用户名称为空‘);
		name.focus();
		return false;
	}
	if(password.value==‘‘){
		alert(‘设置密码为空‘);
		password.focus();
		return false;
	}
	if(chong.value==‘‘){
		alert(‘重复密码为空‘);
		chong.focus();
		return false;
	}
	if(phone.value==‘‘){
		alert(‘手机号码为空‘);
		phone.focus();
		return false;
	}
	if(place.value==‘‘){
		alert(‘所属单位为空‘);
		place.focus();
		return false;
	}
}
</script>
</body>
</html>

(1)用户注册需要填报用户姓名、密码、重复密码、手机号码、所属单位五项内容(0.5分)

(2)验证密码和重复密码保持一致(0.5分);

实现方法如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPass(){
  var pwd1=document.getElementById("password").value;
  var pwd2=document.getElementById("chong").value;
  if(pwd1!=pwd2){
      document.getElementById("errorpwd").style.display = "block";
  }
  else{
	  document.getElementById("errorpwd").style.display = "none";
  }
}
</script>
<body>
<div class="a">设置密码:<input type="password" name="password" id="password"></div>
<div class="a">重复密码:<input type="password" name="chong" id="chong" onblur="return checkPass();" ></div>
<span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
</body>
</html>

(3)验证手机号码为11位数字。(0.5分)

实现方法如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPhone(){
    var a = document.getElementById("phone");
        if(a.value.length!=11){
        	document.getElementById("errors").style.display = "block";
        	}
        else{
      	  document.getElementById("errors").style.display = "none";
        }
    }
</script>
<body>
<div class="a">手机号码:<input type="text" name="phone" id="phone" onblur="return checkPhone();"></div>
<span id="errors" style="display:none; color:red">手机号码应该为11位</span>
</body>
</html>

  

2、用户登录功能:根据登录信息错误类型,提示用户名、密码、注册码错误;(2.5分)

dengluServlet.java

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

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 dao.StudentDao;

/**
 * Servlet implementation class dengluServlet
 */
@WebServlet("/WJDC/dengluServlet")
public class dengluServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	StudentDao dao = new StudentDao();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public dengluServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @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.setContentType("text/html;charset=utf-8");
		String username = request.getParameter("user");
		String password = request.getParameter("pwd");
		String verifyc  = request.getParameter("randcode");
		String svc =(String) request.getSession().getAttribute("rand");
		String psw =new StudentDao().findUsername(username);
		if(!svc.equalsIgnoreCase(verifyc)){
			PrintWriter out = response.getWriter();
			out.println(" <script type=‘text/javascript‘> alert(‘验证码码错误‘);window.location.href=‘login.html‘</script>");
			out.println("</HTML>");
			out.flush();
			out.close();
		}
		if(psw ==null){
			PrintWriter out = response.getWriter();
			out.println(" <script type=‘text/javascript‘> alert(‘该用户不存在‘);window.location.href=‘login.html‘</script>");
			out.println("</HTML>");
			out.flush();
			out.close();
		}
		if(psw!=null&&!psw.equals(password)){
			PrintWriter out = response.getWriter();
			out.println(" <script type=‘text/javascript‘> alert(‘密码错误,请重新录入‘);window.location.href=‘login.html‘</script>");
			out.println("</HTML>");
			out.flush();
			out.close();
		}
		if(psw.equals(password)){
			PrintWriter out = response.getWriter();
			out.println(" <script type=‘text/javascript‘> alert(‘登陆成功!‘);window.location.href=‘main.html‘</script>");
			out.println("</HTML>");
			out.flush();
			out.close();
			out.print(true);
		}
	}

	/**
	 * @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);
	}

}

 StudentDao.java

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import student.Student;
import util.DBUtil;

public class StudentDao {
	//添加
	public boolean add(Student course) {
		String sql = "insert into hebei(name,password,phone,place) values(‘"+ course.getName() + "‘,‘" + course.getPassword()+"‘,‘"+ course.getPhone()+"‘,‘" + course.getPlace() +  "‘)";
		Connection conn = DBUtil.getConn();
		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;
	}

	public String findUsername(String username){
		String psw = null;
		Connection con =null;
		PreparedStatement pstmt =null;
		ResultSet rs = null;
		try {
			String driver ="com.mysql.cj.jdbc.Driver";
			String url ="jdbc:mysql://127.0.0.1:3306/db_database17?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
			String user ="root";
			String password ="123456";//改为自己的用户名密码和数据库名</span>
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, password);
			String sql = "select * from hebei where name=?";
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, username);
			rs = pstmt.executeQuery();
			if(rs==null){
				return null;
			}
			if(rs.next()){
				psw=rs.getString("password");
			}else{
				psw=null;
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				if(pstmt!=null)pstmt.close();
				if(con!=null)con.close();
				}
			catch (SQLException e) {
									}
		}
		return psw;
	}
}

  

(1)用户名不在数据库中,提示“该用户不存在”。(0.5分)

(2)密码错误,提示“密码错误,请重新录入”。(0.5分)

(3)录入验证码信息与界面显示验证码码信息不一致,提示“验证码码错误”。(0.5分)

(4)上述信息录入正确,页面跳转到系统主界面。(0.5分)

(5)根据提供的登录界面素材(login.html)完成登陆界面的展示;(0.5分)

原文地址:https://www.cnblogs.com/mawangwang/p/10468490.html

时间: 2024-10-13 22:41:16

《软件工程》 实发项目系统开发——河北省重大技术需求征集系统原型的相关文章

基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析

架构在软件发明时的N多年以前,就已经存在了,这个词最早是跟随着建筑出现的. 架构的定义:体系架构包含建筑的过程和规划,产品设计,以及建筑和其他物理结构. 架构的产生:最开始的产生,是在原始生活中通过每个人完成不同的分工,以使得使得每个个体都拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情,并具备一定的交易能力即可.形成社会架构. 重新定义架构:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使

JAVA课程结课实验题目(河北省重大技术需求征集系统设计)

为了充分利用京津科技资源,破解河北省省产业转型升级.绿 色崛起所面临的重大技术难题,现面向重点产业.重点领域.重点 企业(单位)征集产业或领域关键技术难题,构建河北省重大技术 需求数据库. 3.数据结构要求:(10分) 定义 Infomati on 类,其中包括六个私有变量(infonumber,infoname, infocontent,infosum,infostate,infoyear). (1)各成员 的含义如下:(5 分) ① 变量 infonumber  为字符串类型 String,

JAVA课程结课实验代码(河北省重大技术需求征集系统设计)

第一部分:账号密码类 package IOP; /** * 数1401班 * 20143253 * 吕鹏博 * 时间 2016年12月21日17:45:42 */ import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.StringToke

结合《需求征集系统》谈MVC框架

结合<需求征集系统>分析MVC框架. 六个质量属性: 可用性:在系统压力过大时,会提示系统繁忙. 可修改性:使用配置文件,修改配置文件即可.对于一些公共的方法,进行封装,修改时,只需修改封装的方法,不必修改调用方法的代码. 性能:提高系统响应时间,不让用户感到延迟. 安全性:对密码等信息进行MD5加密存储. 可测试性:使用Junit进行单元测试. 易用性:在填报需求时填入登录用户已有的信息,用户校验提醒,多种方式查询. 具体功能模块分析: 需求查询模块:使用mvc方式实现. model:从数据

简要分析《XXX需求征集系统》采用的可用性和可修改性战术

        网站的页面能完整呈现在最终用户面前,需要经过很多个环节,人一个环节出了问题,都可能导致网站不可访问.DNS会被劫持,网卡会送掉,程序有Bug等等,要保证一个网扎很难永远完全可用几乎是一件不可能完成的使命. 1.了解网站可用性的度量与考核. 度量 1. 业界通常用多少个9来衡量网站可用性. 2. 网站不可用也称网站故障. 3. 网站不可用时间公式:网站不可用时间(故障时间)= 故障修复时间点-故障发现(报告)时间点 4. 网站年度可用性指标公式:网站年度可用性指标 =(1-网站不可

四方支付系统开发支付接口解决方案聚合支付系统开发

什么是聚合支付? 所谓聚合支付,就是依托银行.三方支付或清算组织的支付通道与清算能力,为客户提供接口.集成.对接.订单处理.数据统计等的支付服务机构. 通过锋锐程序搭建的的聚合系统,可实现聚合SDK,聚合支付场景.聚合支付方式.聚合支付通道,无需寻找想要的支付通道.无需重复对接集成繁琐的支付接口,链接商户和通道.降低接入的技术.沟通门槛.降低通道成本,方便快捷的实现支付接入. 聚合支付是移动互联网时代的结构性的支付服务解决方案! 最近人民银行关于<提升收单服务水平规范和促进收单服务市场的指导意见

溯源系统开发,区块链技术应用系统app开发

溯源系统是在产品时候生长及供应整个过程中对产品的各种相关信息进行记录存储的质量保障系统,其目的是让消费者对所购的产品放心,不仅能够快速有效地查询到生产地点和加工环节.产品溯源系统是追踪农产品进入市场各个阶段(从生产到流通的全过程)的系统,有助于质量控制和安全.溯源系统开发 Tel: 前面138中间2315后面3201 区块链溯源的技术和架构 数据溯源技术的关键,在于数据模型的构建,它决定了数据起源的获取.存储以及后期的使用等操作.首先,需要对不同业务和不同应用的数据进行抽象建模,并对数据接入进行

能源管控系统开发,智能电能能源管控系统开发

大型高耗能工厂管理系统开发,智慧能源管理系统开发,智能水电煤能源管理平台搭建,智慧工厂管控系统开发解决方案.如今能源危机日益严峻,能源短缺已成为制约国民经济持续发展的重要因素能源:能源价格不断上涨,这也成为制约企业发展的重要因素. 节能降耗成为必须完成的艰巨任务."十三五"节能减排任务将更加艰巨,考核指标也更加严格.作为实现节能减排和可持续发展的中坚力量,企业必须进一步认清时代发展潮流,增强紧迫感和责任意识,结合自身实际,明确可持续发展的方向.目标.重点和措施. 源中瑞认为管理节能具有

分布式监控系统开发【day30】:需求讨论

本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设计思路及架构解藕原则 常用监控系统设计讨论 Zabbix Nagios 监控系统需求讨论 1.可监控常用系统服务.应用.网络设备等 2.一台主机上可监控多个不同服务.不同服务的监控间隔可不同 3.同一个服务在不同主机上的监控间隔.报警阈值可不同 4.可以批量的给一批主机添加.删除.修改要监控的服务