错误原因

这次测试是实现网页链接数据库,实现添加功能。其实我的代码没有什么问题(我把代码发给其它电脑测试就可以运行),但是一直出现404网页查找不到的问题,但是没有保任何的问题,只有一条警告(如下)。

我一开始以为是tomcat的配置有问题,就重新下载了最新的tomcat9,但还是出现这个原因。然后我把eclipse重装也是解决不了,最后重置了电脑把所有的配置重新安装,运行了一个最简单的登入注册的web项目,然后能够实现,那就不是tomcat的配置原因,然后就去测试能否连接上数据库,也能连接实现增添功能。然后我在一个博客里看到了有关jar包导入的文章。

将这两个jar文件拷贝到我们的web project中的lib文件夹下(没有这个文件的话,自己创建一个folder) 

        

然后需要将我们的jar文件加到我们的路径下,这里注意一下,我们开发的是web project,除了将jar文件加到java中,还需要将路径加到tomcat服务器中,不然以后web project运行起来可能会出现:无法找到驱动的情况。路径加载如下:

a.java中导入jar1.右击要导入jar包的项目,点properties

2.左边选择java build path,右边选择libraries

3.选择add External jars 4.选择jar包的按照路径下的确定后就行了。

b.tomcat导入jar:project->properties-->myeclipse-->DeploymentAssembly-->选择需要复制到lib下的libraries说明:在这里jar包的导入,如果你自定义了一个lib文件,然后copy我们的jar包,使用a步骤导入还不够,也许你的数据库能够在控制台显示输出,但是在java web程序运行的时候会出现找不到驱动这样的情况,这是因为你没有在tomcat服务器下面导入jar,导致tomcat在运行的时候找不到驱动。

我发现是tomcat的服务器下没有导入jar包,导致tomcat在运行时找不到驱动。

我的代码如下:

首先是建一个user的包,在里面定义一个Ueserben的类,便于将网页上输入的数据添加到数据库中

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;
    }
}

然后是建立数据库连接的包:

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/login?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","xp20010307..");
            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();
            }
        }
    }
}

然后是往数据库中实现添加功能的包

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;
    }        
    
}

还有一个是从网页中获取数据传递给dao包的包:

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);
    }

}

然后是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">姓&nbsp;&nbsp;&nbsp;别:</label>
<select name="p">
  <option value ="nan">男</option>
  <option value ="nv">女</option>
<select>
</div>

<div > 
<label for="gs4"  >姓&nbsp;&nbsp;&nbsp;名:</label>
<input type="text" id="gs4" placeholder="请输入姓名" class="input-text input-long" name="gs4"> 
</div>

<div > 
<label for="gs5"  >学&nbsp;&nbsp;&nbsp;号:</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>

猜你喜欢

转载自www.cnblogs.com/chenaiiu/p/11747357.html