新人:求个大神给添加一下注释,程序挺简单。小弟我看不懂多谢
新人:求个大神给添加一下注释,程序挺简单。我看不懂谢谢!
DAO
Mac
------解决思路----------------------
这不是有注释了么,这么简单的代码没法再写了,够细了,而且本身有很多问题,估计是学生写的。
你哪里不懂你说出来,不可能每行都你写吧。
大体就是:
GetConnection获取数据库连接
Dao 提供了 通过query查询用户,查到就登录 和 insert用户 的两个方法。
loginServlet 就是一个servlet,前台请求的时候会调用doPost方法,然后进行处理以后去调Dao里的登录方法。
------解决思路----------------------
各种注释也都有了呀,还好了
DAO
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.servlet.User;
import com.util.GetConnection;
public class Dao {
private Connection conn;
private PreparedStatement pstat;
String sql = "";
/**
*
* 用户登录
*/
public boolean logoin(User user) throws SQLException {
conn = GetConnection.getConnection();
boolean i = false;
sql = "select * from user where user=? and pwd=?";
pstat = conn.prepareStatement(sql);
pstat.setString(1, user.getUser());
pstat.setString(2, user.getPwd());
ResultSet rs1 = (ResultSet) pstat.executeQuery();
if (rs1.next()) {
i = true;
rs1.close();
pstat.close();
} else {
i = false;
rs1.close();
pstat.close();
}
conn.close();
return i;
}
/**
* 用户注册
*/
public void addUser(User user) {
conn = GetConnection.getConnection();
sql = "insert into user values(?,?,?,?)";
try {
pstat = conn.prepareStatement(sql);
pstat.setString(1, user.getUser());
pstat.setString(2, user.getPwd());
pstat.setString(3, user.getName());
pstat.setInt(5, user.getAge());
pstat.executeUpdate();
pstat.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Mac
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.servlet.User;
import com.util.GetConnection;
public class Dao {
private Connection conn;
private PreparedStatement pstat;
String sql = "";
/**
*
* 用户登录
*/
public boolean logoin(User user) throws SQLException {
conn = GetConnection.getConnection();
boolean i = false;
sql = "select * from user where user=? and pwd=?";
pstat = conn.prepareStatement(sql);
pstat.setString(1, user.getUser());
pstat.setString(2, user.getPwd());
ResultSet rs1 = (ResultSet) pstat.executeQuery();
if (rs1.next()) {
i = true;
rs1.close();
pstat.close();
} else {
i = false;
rs1.close();
pstat.close();
}
conn.close();
return i;
}
/**
* 用户注册
*/
public void addUser(User user) {
conn = GetConnection.getConnection();
sql = "insert into user values(?,?,?,?)";
try {
pstat = conn.prepareStatement(sql);
pstat.setString(1, user.getUser());
pstat.setString(2, user.getPwd());
pstat.setString(3, user.getName());
pstat.setInt(5, user.getAge());
pstat.executeUpdate();
pstat.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.dao.Dao;
import com.util.IpUtil;
public class loginServlet extends HttpServlet {
public void destroy() {
super.destroy();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = new String(request.getParameter("user").getBytes(
"ISO8859_1"), "GBK");
String pwd = new String(request.getParameter("pwd").getBytes(
"ISO8859_1"), "UTF-8");
User user = new User();
user.setUser(name);
user.setPwd(pwd);
Dao dao = new Dao();
boolean isLogin;
try {
isLogin = dao.logoin(user);
if (isLogin) {
InetAddress inetAddress = InetAddress.getLocalHost();
String m = inetAddress.getHostAddress();
int n = request.getRemotePort();
System.out.println(m+"*********"+ n);
String mac = getMacAddress(m);
HttpSession session = request.getSession();
session.setAttribute("username",name);
session.setAttribute("address", m);
session.setAttribute("mac", mac);
//response.sendRedirect("success.jsp");
boolean flag = false;//定义一个flag做判断
String ipSection1="192.168.2.0-192.168.2.4";//给ip设定范围权限
String ipSection2="192.168.2.6-192.168.2.32";//1.是192.168.2.0-192.168.2.120区间内的,且192.168.2.5 192.168.2.33 是无法访问的
String ipSection3="192.168.2.34-192.168.2.120";
String[] arrayIP = {ipSection1,ipSection2,ipSection3};
for (int i = 0; i < arrayIP.length; i++) {
flag = IpUtil.ipExistsInRange(m,arrayIP[i]);
}
if (flag == true) {//判断ip是否符合权限
response.sendRedirect("success.jsp");// 账号密码通过符合权限通过
}else{
response.sendRedirect("ipfail.jsp");//账号密码正确但是没有权限
}
} else {
response.sendRedirect("fail.jsp");//账号密码不对
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void init() throws ServletException {
}
/**
* 获取物理地址MAC
* @param host
* @return
*/
public String getMacAddress(String host)
{
String mac = "";
StringBuffer sb = new StringBuffer();
try
{
NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress.getByName(host));
byte[] macs = ni.getHardwareAddress();
for(int i=0; i<macs.length; i++)
{
mac = Integer.toHexString(macs[i] & 0xFF);
if (mac.length() == 1)
{
mac = '0' + mac;
}
sb.append(mac + "-");
}
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
}
mac = sb.toString();
mac = mac.substring(0, mac.length()-1);
return mac;
}
}
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class GetConnection {
//通过静态方法注册驱动,获得连接
public static Connection getConnection(){
String driver = "com.mysql.jdbc.Driver";//加载驱动
String url = "jdbc:mysql://localhost/test";//数据库名
Connection con = null;
try {
Class.forName(driver);
try {
con = DriverManager.getConnection(url,"root","root");
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("已获得数据库的连接");
return con;
}
}
package com.util;
public class IpUtil {
/*验证IP是否属于某个IP段
* ipSection IP段(以'-'分隔)
* ip 所验证的IP号码
*/
public static boolean ipExistsInRange(String ip,String ipSection) {
ipSection = ipSection.trim();
ip = ip.trim();
int idx = ipSection.indexOf('-');
String beginIP = ipSection.substring(0, idx);
String endIP = ipSection.substring(idx + 1);
return getIp2long(beginIP)<=getIp2long(ip) &&getIp2long(ip)<=getIp2long(endIP);
}
public static long getIp2long(String ip) {
ip = ip.trim();
String[] ips = ip.split("\\.");
long ip2long = 0L;
for (int i = 0; i < 4; ++i) {
ip2long = ip2long << 8 | Integer.parseInt(ips[i]);
}
return ip2long;
}
public static long getIp2long2(String ip) {
ip = ip.trim();
String[] ips = ip.split("\\.");
long ip1 = Integer.parseInt(ips[0]);
long ip2 = Integer.parseInt(ips[1]);
long ip3 = Integer.parseInt(ips[2]);
long ip4 = Integer.parseInt(ips[3]);
long ip2long =1L* ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4;
return ip2long;
}
/* public static void main(String[] args){
//10.10.10.116 是否属于固定格式的IP段10.10.1.00-10.10.255.255
String ip="192.168.8.51";
String ipSection="192.168.8.0-192.168.8.255";
http://www.crazyit.org/thread-10915-1-1.html
boolean exists=ipExistsInRange(ip,ipSection);//能够决断是不是在这个范围内
System.out.println(exists);
System.out.println(getIp2long(ip));
System.out.println(getIp2long2(ip));
}*/
}
------解决思路----------------------
这不是有注释了么,这么简单的代码没法再写了,够细了,而且本身有很多问题,估计是学生写的。
你哪里不懂你说出来,不可能每行都你写吧。
大体就是:
GetConnection获取数据库连接
Dao 提供了 通过query查询用户,查到就登录 和 insert用户 的两个方法。
loginServlet 就是一个servlet,前台请求的时候会调用doPost方法,然后进行处理以后去调Dao里的登录方法。
------解决思路----------------------
各种注释也都有了呀,还好了