一、知识点概括
1.servlet
2.反射
3.注解
二、例题
实现下图效果我简单实现的,可以再添加中文乱码解决,返回指定用户名的欢迎界面功能
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class DBUtils {
private static DruidDataSource dataSource;
static {
Properties properties = new Properties();
InputStream is = DBUtils.class.getResourceAsStream("/database.properties");
try {
properties.load(is);
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getDataSource(){
return dataSource;
}
}
public class User {
String username;
String password;
public User() { }
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import java.sql.SQLException;
public class UserDaoImpl {
private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
public int insert(User user) {
Object[] params={user.getUsername(),user.getPassword()};
try {
return queryRunner.update("insert into user (username,password) values(?,?)",params);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
public User select(String username,String password) {
try {
return queryRunner.query("select * from user where username=? and password=?", new BeanHandler<User>(User.class), username,password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="/D55/registServlet" method="post">
账户:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
<button type="submit">注册</button>
</form>
</body>
</html>
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 java.io.IOException;
@WebServlet(name = "RegistServlet",urlPatterns = "/registServlet")
public class RegistServlet extends HttpServlet {
public static String username;
public static String password;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
username= request.getParameter("username");
password = request.getParameter("password");
System.out.println("username : " + username + " , password : " + password);
if (username !=null && password != null){
User users = new User(username,password);
UserDaoImpl userImpl = new UserDaoImpl();
userImpl.insert(users);
request.getRequestDispatcher("/login.html").forward(request,response);
return ;
}else {
response.sendRedirect("login");
return ;
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="/D55/loginServlet" method="post">
账户:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
<button type="submit">登录</button>
</form>
</body>
</html>
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 java.io.IOException;
@WebServlet(name = "LoginServlet",urlPatterns = "/loginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username1 = request.getParameter("username");
String password1 = request.getParameter("password");
System.out.println("username : " + username1 + " , password : " + password1);
UserDaoImpl userImpl = new UserDaoImpl();
User select = userImpl.select(username1, password1);
if(select.getUsername().equals(username1) && select.getPassword().equals(password1)){
request.getRequestDispatcher("/Welcome.html").forward(request,response);
return ;
} else {
response.sendRedirect("login");
return ;
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>welcome</title>
<style type="text/css">
#one{
color: red;
}
</style>
</head>
<body>
<span id="one">root</span>
<span>,欢迎回来</span>
</body>
</html>