欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?web實(shí)現(xiàn)簡單注冊(cè)功能

 更新時(shí)間:2022年04月25日 11:15:42   作者:proven.  
這篇文章主要為大家詳細(xì)介紹了Java?web實(shí)現(xiàn)簡單注冊(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

今天寫了一個(gè)注冊(cè)功能,沒有用任何框架!發(fā)現(xiàn)不會(huì)寫了,中間查了好幾次百度。不過還是順利的寫完并且跑起來了。在這里記錄一下。我認(rèn)為有時(shí)候?qū)戇@些代碼還是對(duì)我們理解框架很有幫助的,因?yàn)榭蚣芤彩前凑者@些,對(duì)基礎(chǔ)進(jìn)行封裝后得到的。

首先是環(huán)境的搭建

1、環(huán)境的搭建:我用的jdk1.8 tomcat 7.0 eclipse neno 數(shù)據(jù)庫用的是mysql。

2、創(chuàng)建一個(gè)動(dòng)態(tài)的web工程(這個(gè)應(yīng)該都會(huì)的,這里就不再截圖說明了)

3、數(shù)據(jù)庫的創(chuàng)建

我這里創(chuàng)了一個(gè)名為t_t_user 的表,里面的字段也很簡單,就name password age 三個(gè)。

4、數(shù)據(jù)庫創(chuàng)建好之后就開始寫前端代碼

前端寫的很簡單

<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首頁</title>
</head>
<body>
?<p style="color:red;">${message}</p>

?<form action="${pageContext.request.contextPath }/login" method="post">
? ?姓名 <input ?type="text" name="name"/><br>
? ? 年齡 <input type="text" name="age"/><br>
? ? 密碼<input ?type="password" name="password"/><br>
? ? <input type="submit" value="提交">
?</form>
</body>
</html>

5、前端代碼寫好后就可以寫對(duì)應(yīng)的,上傳的請(qǐng)求的servlet,在這里我只判斷了姓名不能為空,其他的就一樣的寫就好了。還有這里有個(gè)問題,就是我沒有進(jìn)行編碼處理。在這里可能出現(xiàn)中文亂碼的問題,可以直接在servlet中加入處理中文亂碼的語句,或者是寫個(gè)過濾器,這里我就不再贅述了。

package com.proven.controller;

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 com.proven.service.UserService;
import com.proven.service.impl.UserServiceImpl;

/**
?* Servlet implementation class login
?*/
@WebServlet("/login")
public class login extends HttpServlet {
? ? private static final long serialVersionUID = 1L;
? ? protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
? ? ? ?String name=request.getParameter("name");
? ? ? ?String password = request.getParameter("password");
? ? ? ?String ages = request.getParameter("age");
? ? ? ?int age = Integer.parseInt(ages);
? ? ? ?String message="";

? ? ? ?if(name.equals("")){
? ? ? ? ? ?message="用戶名不能為空";
? ? ? ? ? ?request.setAttribute("message", message);
? ? ? ? ? ?request.getRequestDispatcher("/index.jsp").forward(request, response);
? ? ? ?}else{
? ? ? ? ? ?UserService userService = new UserServiceImpl();
? ? ? ? ? ?int info = userService.register(name,password,age);
? ? ? ? ? ?if(info==1){
? ? ? ? ? ? ? ?message="注冊(cè)成功";
? ? ? ? ? ?}else if(info ==0){
? ? ? ? ? ? ? ?message="注冊(cè)失敗";
? ? ? ? ? ?}else if(info==-2){
? ? ? ? ? ? ? ?message="sql錯(cuò)誤";

? ? ? ? ? ?}

? ? ? ? ? ?request.setAttribute("message", message);
? ? ? ? ? ?request.getRequestDispatcher("/index.jsp").forward(request, response);
? ? ? ?}

? ? }


? ? protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
? ? ? ? doGet(request, response);
? ? }

}

6、service 層,處理邏輯,在我們寫代碼的時(shí)候,盡量的把邏輯處理寫到service,最大的好處就是安全,畢竟寫程序不只是實(shí)現(xiàn)功能那么簡單。

接口:

package com.proven.service;
/**
?* @author ?曾煒龍 ?E-mail: 1501122784@qq.com
?* @date 創(chuàng)建時(shí)間:2017年6月26日 下午4:39:45?
?* @version 1.0?
?* @parameter ?
?* @since ?
?* @return ?
?*/
public interface UserService {

? ? int register(String name, String password, int age);

}

實(shí)現(xiàn)類:這里我忘記判斷數(shù)據(jù)庫中是否已經(jīng)存在賬號(hào),判斷的話很簡單,就是通過賬號(hào)去查數(shù)據(jù)庫中是否有相同的數(shù)據(jù),如果有了就返回給servlet:該賬號(hào)已存在,如果沒有的話就繼續(xù)注冊(cè)。

package com.proven.service.impl;

import com.proven.dao.UserDao;
import com.proven.dao.impl.UserDaoImpl;
import com.proven.model.User;
import com.proven.service.UserService;

/**
?* @author ?曾煒龍 ?E-mail: 1501122784@qq.com
?* @date 創(chuàng)建時(shí)間:2017年6月26日 下午4:40:01?
?* @version 1.0?
?* @parameter ?
?* @since ?
?* @return ?
?*/
public class UserServiceImpl implements UserService{

? ? @Override
? ? public int register(String name, String password, int age) {
? ? ? ? UserDao userDao = new UserDaoImpl();

? ? ? ? User user = new User();

? ? ? ? user.setName(name);
? ? ? ? user.setPassword(password);
? ? ? ? user.setAge(age);
? ? ? ? int info= userDao.register(user);

? ? ? ? return info;
? ? }

}

持久層:dao
接口:

package com.proven.dao;

import com.proven.model.User;

public interface UserDao {

? ? int register(User user);

? ? /**

? ? ?* @param username
? ? ?* @return
? ? ?*/
? ? //int findUserByName(String username);

? ? /**

? ? ?* @param user
? ? ?* @return
? ? ?*/
? ? //int register(User user);

? ? /**
? ? ?* 登錄方法
? ? ?* @param username
? ? ?* @param password
? ? ?* @return
? ? ?*/


}

實(shí)現(xiàn)類:

package com.proven.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.proven.dao.UserDao;
import com.proven.model.User;


public class UserDaoImpl implements UserDao {

? ? @Override
? ? public int register(User user) {
? ? ? ? PreparedStatement pstmt=null;
? ? ? ? Connection conn =null;
? ? ? ? ? try{ ??
? ? ? ? ? ? ? ? //加載MySql的驅(qū)動(dòng)類 ??
? ? ? ? ? ? ? ? Class.forName("com.mysql.jdbc.Driver") ; ??
? ? ? ? ? ? ? ? }catch(ClassNotFoundException e){ ??
? ? ? ? ? ? ? ? System.out.println("找不到驅(qū)動(dòng)程序類 ,加載驅(qū)動(dòng)失?。?); ??
? ? ? ? ? ? ? ? e.printStackTrace() ; ??
? ? ? ? ? ? ? ? } ??

? ? ? ? ? String url = "jdbc:mysql://localhost:3306/nokuangjia" ; ? ?
? ? ? ? ? ? ?String username = "root" ; ??
? ? ? ? ? ? ?String password = "" ;?

? ? ? ? ? ? ?String sql = "insert into t_t_user values(null,?,?,?)";
? ? ? ? ? ? ?try {
? ? ? ? ? ? ? ? ?conn = DriverManager.getConnection(url,username,password);
? ? ? ? ? ? ? ? ? pstmt = conn.prepareStatement(sql) ; ?
? ? ? ? ? ? ? ? ?pstmt.setString(1,user.getName() );
? ? ? ? ? ? ? ? ?pstmt.setString(2, user.getPassword());
? ? ? ? ? ? ? ? ?pstmt.setInt(3, user.getAge());
? ? ? ? ? ? ? ? ?int info = pstmt.executeUpdate();
? ? ? ? ? ? ? ? ?return info;
? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ?System.out.println("數(shù)據(jù)庫連接失?。?); ?
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? return -2;
? ? ? ? ? ? }finally {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? pstmt.close();
? ? ? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? conn.close();
? ? ? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ? ? // TODO Auto-generated catch block
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }

? ? }
/*
? ? public int findUserByName(String username) {

? ? ? ? QueryRunner qr = new QueryRunner(DBUtils.getDataSource());
? ? ? ? String sql = "select * from user where username = ?";
? ? ? ? try {
? ? ? ? ? ? User user = qr.query(sql, new BeanHandler<User>(User.class),
? ? ? ? ? ? ? ? ? ? username);
? ? ? ? ? ? if (user == null) {

? ? ? ? ? ? ? ? return 1;
? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return -1;
? ? ? ? ? ? }
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return -2;
? ? ? ? }
? ? }

? ? public int register(User user) {
? ? ? ? return 0;
? ? }*/

/* ?public int register(User user) {
? ? ? ? // 浣跨敤DBUtils灝唘ser瀵硅薄鍏ュ簱
? ? ? ? QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

? ? ? ? String sql = "insert into t_t_user values(null,?,?,?)";

? ? ? ? try {
? ? ? ? ? ? return qr.update(sql, user.getName(), user.getPassword(),
? ? ? ? ? ? ? ? ? ? user.getAge());
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return -2;
? ? ? ? }

? ? }

? ? */

}

在這里代碼就全部寫好。經(jīng)過測試,運(yùn)行良好!

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論