基本使用方法
使用bean主要是加强了代码复用性,后台和前端的逻辑分离
类必须是具体的和公共的,并且具有无参数的构造器
不一定有变量
定义私有属性(私有是必须设置的)
Static 类变量不会封装到对象中,单独找了块地址
若果要创建构造方法,必须先创建无参构造方法
然后可继续创建构造方法
用public get()方法,set()方法查看和更改值,不同包里使用,public可以使所有包里的页面访问
创建方法函数,
在servelt里使用 XXXBean xxxBean =new XXXBean() 创建对象
xxxBean.set();
以下为jdbc放在bean里的实例
loginBean
package loginBean;
import java.sql.*;
public class loginbean {
private String sql1="jdbc:mysql://127.0.0.1:3306/one?user=root&password=123456&serverTimezone=Asia/Shanghai&useSSL=false";//jdbc
private String sql2="select * from login where username=? and password=?";//查询sql语句
private String sql3="insert into login values(?,?,?,?,?)";//插入sql语句
ResultSet resultSet1=null;
Connection connection=null;
ResultSet resultSet=null;
PreparedStatement preparedStatement=null;
public loginbean(){//构造方法,一旦调用直接连接
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(sql1);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
//查询方法executeQuery
public ResultSet lianjie1_chaxun(String username, String password){
try {
preparedStatement= connection.prepareStatement(sql2);
preparedStatement.setString(1,username);//set。。。与数据库字段类型对应
preparedStatement.setString(2,password);//set。。。与数据库字段类型对应
resultSet=preparedStatement.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
//插入方法executeUpdate()
public String lianjie1_charu(String username,String password,String specialty,String sex,int age){
try {
preparedStatement= connection.prepareStatement(sql3);
preparedStatement.setString(1,username);
preparedStatement.setString(2,password);
preparedStatement.setString(3,specialty);
preparedStatement.setString(4,sex);
preparedStatement.setInt(5,age);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return "插入成功";
}
//关闭连接
public void closeall(){
if (resultSet1!=null){
try {
resultSet1.close();
}catch (SQLException throwables){
throwables.printStackTrace();
}
}
if (preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
Servlet_login1
package zhucedenglu;
import loginBean.loginbean;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet(name = "Servlet_login1", value = "/Servlet_login1")
public class Servlet_login1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String u=request.getParameter("username");
String p=request.getParameter("password");
PrintWriter out=response.getWriter();
loginbean loginbean1=new loginbean();
try {
while (loginbean1.lianjie1_chaxun(u,p).next()) {
if (loginbean1.lianjie1_chaxun(u,p).next()) {
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/index.jsp");
requestDispatcher.forward(request,response);
} else {
out.println("滚");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
loginbean1.closeall();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
login1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="Servlet_login1" method="get">
用户名:<input type="text" name="username"><br>
密码: <input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
Servlet_register1
package zhucedenglu;
import loginBean.loginbean;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "Servlet_register1", value = "/Servlet_register1")
public class Servlet_register1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String u=request.getParameter("username");
String p=request.getParameter("password");
String s=request.getParameter("specialty");
String sex=request.getParameter("sex");
String a=request.getParameter("age");
int age=Integer.parseInt(a);
loginbean loginbean=new loginbean();
if (loginbean.lianjie1_charu(u,p,s,sex,age).equals("插入成功")){
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/login1.jsp");
requestDispatcher.forward(request,response);
}
loginbean.closeall();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
register1.jsp
<html>
<head>
<title>Title</title>
</head>
<body>
<script type="text/javascript">
function cancel(){
window.opener=null;
window.open("","_self");
window.close();
}
function test(){
if(logoin.username.value=="" ||
logoin.password.value=="" ||
logoin.password2.value=="" ||
logoin.specialty.value=="" ||
logoin.sex.value=="" ||
logoin.age.value==""){
alert("数据不能为空");return
}
if (logoin.password.value!=logoin.password2.value){
alert("两遍密码不一致");return;
}
else {
logoin.submit();
}
}
</script>
<form action="Servlet_register1" method="get" name="logoin">
昵称:<input type="text" name="username"><br>
密码: <input type="password" name="password"><br>
确认密码:<input type="password" name="password2"><br>
专业:<select name="specialty">
<option value="计科" selected>计科</option>
<option value="软件工程" selected>软件工程</option>
<option value="物联网工程" selected>物联网工程</option>
</select><br>
性别:<input type="radio" name="sex" value="male" checked>男
<input type="radio" name="sex" value="female">女<br>
年龄:<input type="text" name="age"><br>
<input type="button" value="注册" onclick="test()">
<input type="button" value="取消" onclick="cancel()">
</form>
</body>
</html>